plotLocalEffects

Постройте график локальных эффектов терминов в обобщенной аддитивной модели (GAM)

    Описание

    пример

    plotLocalEffects(Mdl,queryPoint) создает штриховой график, показывающий локальные эффекты членов обобщенной аддитивной модели Mdl о предсказании в указанной точке запроса queryPoint.

    plotLocalEffects(Mdl,queryPoint,Name,Value) задает дополнительные опции, используя один или несколько аргументов имя-значение. Для примера, 'IncludeIntercept',true задает включение термина точки пересечения в штриховой график.

    пример

    b = plotLocalEffects(___) возвращает объект гистограммы b использование любой комбинации входных аргументов в предыдущих синтаксисах. Использование b запрос или изменение свойств панели гистограммы после ее создания.

    Примеры

    свернуть все

    Обучите одномерную обобщенную аддитивную классификационную модель, которая содержит линейные условия для предикторов. Классифицируйте новое наблюдение с помощью объекта эффективной памяти модели. Затем интерпретируйте предсказание для заданного образца данных с помощью plotLocalEffects функция.

    Загрузите ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный ответ для радиолокационных возвратов, либо плохо ('b') или хорошо ('g').

    load ionosphere

    Обучите одномерную GAM, которая определяет, является ли возврат радара плохим ('b') или хорошо ('g').

    Mdl = fitcgam(X,Y);

    Mdl является ClassificationGAM объект модели.

    Сохраните память путем уменьшения размера обученной модели.

    CMdl = compact(Mdl);

    Классифицируйте первое наблюдение обучающих данных и постройте график локальных эффектов терминов в Mdl на предсказании.

    label = predict(CMdl,X(1,:))
    label = 1x1 cell array
        {'g'}
    
    
    plotLocalEffects(CMdl,X(1,:))

    Figure contains an axes. The axes with title Local Effects Plot contains an object of type bar.

    The predict функция классифицирует первые X(1,:) наблюдения как 'g'. The plotLocalEffects функция создает горизонтальный столбчатый график, которая показывает локальные эффекты 10 наиболее важных членов на предсказание. Каждое значение локального эффекта показывает вклад каждого члена в классификационную оценку для 'g', который является логитом апостериорной вероятности того, что классификация 'g' для наблюдения.

    Обучите GAM для двоичной классификации с линейными и условиями взаимодействия для предикторов. Создать график локальных эффектов можно с помощью как линейных, так и члены в модели взаимодействия, а затем создать график используя только линейные членов в модели. Укажите, включать ли условия взаимодействия при создании графика локальных эффектов.

    Загрузите ionosphere набор данных. Этот набор данных имеет 34 предиктора и 351 двоичный ответ для радиолокационных возвратов, либо плохо ('b') или хорошо ('g').

    load ionosphere

    Обучите GAM с помощью предикторов X и метки классов Y. Рекомендуемая практика состоит в том, чтобы задать имена классов. Укажите, чтобы включить 10 наиболее важных условий взаимодействия.

    Mdl = fitcgam(X,Y,'ClassNames',{'b','g'},'Interactions',10);

    Mdl является ClassificationGAM объект модели.

    Создайте локальные графики эффектов для 10-го наблюдения. Используйте как линейные, так и условия взаимодействия в Mdl для первого графика и используйте только линейные условия в Mdl для второго графика. Чтобы исключить условия взаимодействия, задайте 'IncludeInteractions',false.

    t = tiledlayout(2,1);
    title(t,'Local Effects Plots for 10th Observation')
    nexttile
    plotLocalEffects(Mdl,X(10,:))
    title('GAM with linear and interaction terms')
    nexttile
    plotLocalEffects(Mdl,X(10,:),'IncludeInteractions',false)
    title('GAM with only linear terms')

    Figure contains 2 axes. Axes 1 with title GAM with linear and interaction terms contains an object of type bar. Axes 2 with title GAM with only linear terms contains an object of type bar.

    На графиках отображаются 10 наиболее важных терминов. Оба графика включают девять простых терминов и один редкий термин. Первый график включает термин взаимодействия для x1 и x5, тогда как второй график включает линейный термин x14.

    Обучите одномерную GAM для регрессии, которая содержит линейные условия для предикторов. Затем интерпретируйте предсказание для заданного образца данных с помощью plotLocalEffects функция.

    Загрузите набор данных NYCHousing2015.

    load NYCHousing2015

    Набор данных включает 10 переменных с информацией о продажах недвижимости в Нью-Йорке в 2015 году. Этот пример использует эти переменные для анализа продажных цен (SALEPRICE).

    Предварительно обработайте набор данных. Удалите выбросы, преобразуйте datetime массив (SALEDATE) на номера месяцев и переместите переменную отклика (SALEPRICE) до последнего столбца.

    idx = isoutlier(NYCHousing2015.SALEPRICE);
    NYCHousing2015(idx,:) = [];
    NYCHousing2015.SALEDATE = month(NYCHousing2015.SALEDATE);
    NYCHousing2015 = movevars(NYCHousing2015,'SALEPRICE','After','SALEDATE');

    Отобразите первые три строки таблицы.

    head(NYCHousing2015,3)
    ans=3×10 table
        BOROUGH    NEIGHBORHOOD       BUILDINGCLASSCATEGORY        RESIDENTIALUNITS    COMMERCIALUNITS    LANDSQUAREFEET    GROSSSQUAREFEET    YEARBUILT    SALEDATE    SALEPRICE
        _______    ____________    ____________________________    ________________    _______________    ______________    _______________    _________    ________    _________
    
           2       {'BATHGATE'}    {'01  ONE FAMILY DWELLINGS'}           1                   0                4750              2619            1899           8           0    
           2       {'BATHGATE'}    {'01  ONE FAMILY DWELLINGS'}           1                   0                4750              2619            1899           8           0    
           2       {'BATHGATE'}    {'01  ONE FAMILY DWELLINGS'}           1                   1                1287              2528            1899          12           0    
    
    

    Обучите одномерный GAM по продажным ценам. Задайте переменные для BOROUGH, NEIGHBORHOOD, BUILDINGCLASSCATEGORY, и SALEDATE как категориальные предикторы.

    Mdl = fitrgam(NYCHousing2015,'SALEPRICE','CategoricalPredictors',[1 2 3 9]);

    Mdl является RegressionGAM объект модели.

    Отображение предполагаемого срока точки пересечения (константы) Mdl.

    Mdl.Intercept
    ans = 3.7518e+05
    

    Значение точки пересечения термина близко к среднему значению переменной отклика в регрессионом GAM, если обучающие данные не включают NaN значения. Вычислите среднее значение переменной отклика.

    mean(NYCHousing2015.SALEPRICE)
    ans = 3.7518e+05
    

    Спрогнозируйте цену продажи для первого наблюдения обучающих данных и постройте график локальных эффектов терминов в Mdl на предсказании. Задайте 'IncludeIntercept',true включить в график термин точки пересечения.

    yFit = predict(Mdl,NYCHousing2015(1,:))
    yFit = 4.4421e+05
    
    plotLocalEffects(Mdl,NYCHousing2015(1,:),'IncludeIntercept',true)

    Figure contains an axes. The axes with title Local Effects Plot contains an object of type bar.

    The predict функция предсказывает цену продажи для первого наблюдения следующим 4.4421e5. The plotLocalEffects функция создает горизонтальный столбчатый график, которая показывает локальные эффекты членов в Mdl на предсказании. Каждое значение локального эффекта показывает вклад каждого термина в прогнозируемую цену продажи.

    Входные параметры

    свернуть все

    Обобщенная аддитивная модель, заданная как ClassificationGAM, CompactClassificationGAM, RegressionGAM, или CompactRegressionGAM объект модели.

    Точка запроса, в которой plotLocalEffects отображает локальные эффекты, заданные как вектор-строка с числовыми значениями или таблица с одной строкой.

    • Для вектора-строки с числовыми значениями:

      • Переменные, составляющие столбцы queryPoint должен иметь тот же порядок, что и переменные предиктора, которые обучали Mdl.

      • Если вы тренировались Mdl использование таблицы (для примера, Tbl), затем queryPoint может быть числовой матрицей, если Tbl содержит все числовые переменные.

    • Для таблицы с одной строкой:

      • Если вы тренировались Mdl использование таблицы (для примера, Tbl), затем все переменные предиктора в queryPoint должны иметь те же имена переменных и типы данных, что и в Tbl. Однако порядок столбцов queryPoint не должен соответствовать порядку столбцов Tbl.

      • Если вы тренировались Mdl используя числовую матрицу, затем имена предикторов в Mdl.PredictorNames и соответствующие имена переменных предиктора в queryPoint должно быть то же самое. Чтобы задать имена предикторов во время обучения, используйте 'PredictorNames' аргумент имя-значение. Все переменные предиктора в queryPoint должны быть числовыми векторами.

      • queryPoint может содержать дополнительные переменные (переменные отклика, веса наблюдений и так далее), но plotLocalEffects игнорирует их.

      • plotLocalEffects не поддерживает многополюсные переменные или массивы ячеек, отличные от массивов ячеек векторов символов.

    Типы данных: single | double | table

    Аргументы в виде пар имя-значение

    Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

    Пример: plotLocalEffects(Mdl,queryPoint,'IncludeInteractions',false,'NumTerms',5) задает создание столбиковой диаграммы, содержащего пять наиболее важных линейных членов для предикторов в Mdl исключая условия взаимодействия в Mdl.

    Флаг для включения условий взаимодействия модели в график, заданный как true или false.

    Значение по умолчанию 'IncludeInteractions' значение true если Mdl содержит условия взаимодействия. Значение должно быть false если модель не содержит членов взаимодействия.

    Пример: 'IncludeInteractions',false

    Типы данных: logical

    Флаг для включения в график термина точки пересечения модели, заданный как true или false.

    Пример: 'IncludeIntercept',true

    Типы данных: logical

    Количество членов для построения, заданное как положительный целочисленный скаляр. plotLocalEffects строит графики заданного количества членов с наивысшими абсолютными локальными значениями эффекта.

    Пример: 'NumTerms',5 задает график для пяти наиболее важных терминов. plotLocalEffects определяет порядок важности при помощи абсолютных локальных значений эффекта.

    Типы данных: single | double

    Введенный в R2021a