plotLocalEffects

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

    Описание

    пример

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

    plotLocalEffects(Mdl,queryPoint,Name,Value) задает дополнительные опции с помощью одних или нескольких аргументов 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 object. The axes object with title Local Effects Plot contains an object of type bar.

    predict функция классифицирует первое наблюдение X(1,:) как 'g'. 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 objects. Axes object 1 with title GAM with linear and interaction terms contains an object of type bar. Axes object 2 with title GAM with only linear terms contains an object of type bar.

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

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

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

    load NYCHousing2015

    Набор данных включает 10 переменных с информацией о продажах свойств в Нью-Йорке в 2 015. Этот пример использует эти переменные, чтобы анализировать отпускные цены (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 object. The axes object with title Local Effects Plot contains an object of type bar.

    predict функция предсказывает отпускную цену за первое наблюдение как 4.4421e5. 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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

    Типы данных: логический

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

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

    Типы данных: логический

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

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

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

    Введенный в R2021a