exponenta event banner

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.

    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. 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.

    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 должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как 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