addInteractions

Добавьте периоды взаимодействия в одномерную обобщенную аддитивную модель (GAM)

    Описание

    пример

    UpdatedMdl = addInteractions(Mdl,Interactions) возвращает обновленную модель UpdatedMdl путем добавления периодов взаимодействия в Interactions к одномерной обобщенной аддитивной модели Mdl. Модель Mdl должен содержать только линейные члены для предикторов.

    Если вы хотите возобновить обучение существующим условиям в Mdl, используйте resume функция.

    пример

    UpdatedMdl = addInteractions(Mdl,Interactions,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов значения имени. Например, 'MaxPValue',0.05 задает, чтобы включать только периоды взаимодействия, p которых - значения не больше 0.05.

    Примеры

    свернуть все

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

    Загрузите carbig набор данных, который содержит измерения автомобилей, сделанных в 1970-х и в начале 1980-х.

    load carbig

    Составьте таблицу, которая содержит переменные предикторы (Acceleration, Displacement, Horsepower, и Weight) и переменная отклика (MPG).

    tbl = table(Acceleration,Displacement,Horsepower,Weight,MPG);

    Обучите одномерный GAM, который содержит линейные члены для предикторов в tbl.

    Mdl = fitrgam(tbl,'MPG');

    Добавьте пять самых важных периодов взаимодействия в обученную модель.

    UpdatedMdl = addInteractions(Mdl,5);

    Mdl одномерный GAM и UpdatedMdl обновленный GAM, который содержит все условия в Mdl и пять дополнительных периодов взаимодействия. Отобразите периоды взаимодействия в UpdatedMdl.

    UpdatedMdl.Interactions
    ans = 5×2
    
         2     3
         1     2
         3     4
         1     4
         1     3
    
    

    Каждая строка Interactions свойство представляет один период взаимодействия и содержит индексы столбца переменных предикторов в течение периода взаимодействия. Можно использовать Interactions свойство проверять периоды взаимодействия в модель и порядок, в который fitrgam добавляет их в модель.

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

    Загрузите ирисовый набор данных Фишера. Составьте таблицу, которая содержит наблюдения для versicolor и virginica.

    load fisheriris
    inds = strcmp(species,'versicolor') | strcmp(species,'virginica');
    Tbl = array2table(meas(inds,:),'VariableNames',["x1","x2","x3","x4"]);
    Tbl.Y = species(inds,:);

    Обучите одномерный GAM, который содержит линейные члены для предикторов в Tbl.

    Mdl = fitcgam(Tbl,'Y');

    Добавьте важные периоды взаимодействия в обученную модель Mdl. Задайте 'all' для Interactions аргумент и набор 'MaxPValue' аргумент значения имени к 0,05. Среди всех доступных периодов взаимодействия, addInteractions идентифицирует тех, p-значения которых не больше 'MaxPValue' значение и добавляет их в модель. 'MaxPValue' по умолчанию 1 так, чтобы функция добавила все заданные периоды взаимодействия в модель.

    UpdatedMdl = addInteractions(Mdl,'all','MaxPValue',0.05);
    UpdatedMdl.Interactions
    ans = 5×2
    
         3     4
         2     4
         1     4
         2     3
         1     3
    
    

    Mdl одномерный GAM и UpdatedMdl обновленный GAM, который содержит все условия в Mdl и пять дополнительных периодов взаимодействия. UpdatedMdl включает пять из шести доступных пар периодов взаимодействия.

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

    свернуть все

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

    Номер или список периодов взаимодействия, чтобы включать в кандидата устанавливают S в виде неотрицательного целочисленного скаляра, логической матрицы или 'all'.

    • Номер периодов взаимодействия в виде неотрицательного целого числа — S включает конкретное количество важных периодов взаимодействия, выбранных на основе p - значения условий.

    • Список периодов взаимодействия в виде логической матрицы — S включает условия, заданные t- p логическая матрица, где t номер периодов взаимодействия и p количество предикторов, используемых, чтобы обучить модель. Например, logical([1 1 0; 0 1 1]) представляет две пары периодов взаимодействия: пара первых и вторых предикторов и пара вторых и третьих предикторов.

      Если addInteractions использует подмножество входных переменных как предикторы, затем функция индексирует предикторы с помощью только подмножество. Таким образом, индексы столбца логической матрицы не считают переменные веса ответа и наблюдения. Индексы также не считают переменные не используемыми функцией.

    • 'all'S включает все возможные пары периодов взаимодействия, который является   p*(p – 1)/2 количество условий всего.

    Среди периодов взаимодействия в S, addInteractions функция идентифицирует тех, p которых - значения не больше 'MaxPValue' значение и использует их, чтобы создать набор деревьев взаимодействия. Используйте значение по умолчанию ('MaxPValue', 1) создавать деревья взаимодействия, использующие все термины в S.

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

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

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

    Пример: addInteractions (Mdl, 'все', 'MaxPValue', 0.05, 'Многословный', 1, 'NumPrints', 10) задает, чтобы включать все доступные периоды взаимодействия, p которых - значения не больше 0.05, и отобразить диагностику передает каждые 10 итераций.

    Начальная скорость обучения повышения градиента в течение многих периодов взаимодействия в виде числового скаляра в интервале (0,1].

    Для каждой повышающей итерации для деревьев взаимодействия, addInteractions начинает соответствовать начальной скорости обучения. Функциональные половины скорость обучения, пока это не находит уровень, который улучшает подгонку модели.

    Обучение модель с помощью небольшой скорости обучения требует большего количества итераций изучения, но часто достигает лучшей точности.

    Для получения дополнительной информации о повышении градиента, смотрите, что Градиент Повышает Алгоритм.

    Пример: 'InitialLearnRateForInteractions',0.1

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

    Максимальное количество разделений решения (или узлы ветви) для каждого дерева взаимодействия (повышенное дерево в течение периода взаимодействия) в виде положительного целочисленного скаляра.

    Пример: 'MaxNumSplitsPerInteraction',5

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

    Максимальный p - значение для обнаружения периодов взаимодействия в виде числового скаляра в интервале [0,1].

    addInteractions сначала находит, что кандидат установил S периодов взаимодействия от Interactions значение. Затем функция идентифицирует периоды взаимодействия, p которых - значения не больше 'MaxPValue' значение и использует их, чтобы создать набор деревьев взаимодействия.

    Значение по умолчанию ('MaxPValue',1) деревья взаимодействия сборок в течение всех периодов взаимодействия в кандидате устанавливают S.

    Для получения дополнительной информации об обнаружении периодов взаимодействия, смотрите Обнаружение Периода взаимодействия.

    Пример: 'MaxPValue',0.05

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

    Количество итераций между диагностическими распечатками сообщения в виде неотрицательного целочисленного скаляра. Этот аргумент допустим только, когда вы задаете 'Verbose' как 1.

    Если вы задаете 'Verbose',1 и 'NumPrint',numPrint, затем программное обеспечение отображается, диагностика передает каждый numPrint итерации в Командном окне.

    Значением по умолчанию является Mdl.ModelParameters.NumPrint, который является NumPrint значение, которое вы задаете при создании объекта GAM Mdl.

    Пример: 'NumPrint',500

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

    Количество деревьев в период взаимодействия в виде положительного целочисленного скаляра.

    'NumTreesPerInteraction' значение эквивалентно количеству итераций повышения градиента в течение периодов взаимодействия для предикторов. Для каждой итерации, addInteractions добавляет набор деревьев взаимодействия к модели, одного дерева в течение каждого периода взаимодействия. Чтобы узнать об алгоритме повышения градиента, смотрите, что Градиент Повышает Алгоритм.

    Можно определить, имеет ли подобранная модель конкретное количество деревьев путем просмотра диагностического сообщения, отображенного когда 'Verbose' 1 или 2, или путем проверки ReasonForTermination значение свойства модели Mdl.

    Пример: 'NumTreesPerInteraction',500

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

    Уровень многословия в виде 0, 1, или 2. Verbose значение управляет объемом информации, который программное обеспечение отображает в Командном окне.

    Эта таблица суммирует доступные опции уровня многословия.

    ЗначениеОписание
    0Программное обеспечение не отображает информации.
    1Программное обеспечение отображается, диагностика передает каждый numPrint итерации, где numPrint 'NumPrint' значение.
    2Программное обеспечение отображает диагностические сообщения в каждой итерации.

    Каждая линия диагностических сообщений показывает информацию о каждой повышающей итерации и включает следующие столбцы:

    • Type — Тип обученных деревьев, 1D (деревья предиктора или повышенные деревья для линейных членов для предикторов) или 2D (деревья взаимодействия или повышенные деревья в течение многих периодов взаимодействия для предикторов)

    • NumTrees — Количество деревьев на линейный член или период взаимодействия это addInteractions добавленный к модели до сих пор

    • DevianceОтклонение модели

    • RelTol — Относительное изменение предсказаний модели: (y^ky^k1)(y^ky^k1)/y^ky^k, где y^k вектор-столбец предсказаний модели в итерации k

    • LearnRate — Скорость обучения используется для текущей итерации

    Значением по умолчанию является Mdl.ModelParameters.VerbosityLevel, который является Verbose значение, которое вы задаете при создании объекта GAM Mdl.

    Пример: 'Verbose',1

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

    Выходные аргументы

    свернуть все

    Обновленная обобщенная аддитивная модель, возвращенная как ClassificationGAM или RegressionGAM объект модели. UpdatedMdl имеет тот же тип объекта как входная модель Mdl.

    Перезаписывать входной параметр Mdl, присвойте выход addInteractions к Mdl:

    Mdl = addInteractions(Mdl,Interactions);

    Больше о

    свернуть все

    Отклонение

    Отклонение является обобщением остаточной суммы квадратов. Это измеряет качество подгонки по сравнению с влажной моделью.

    Отклонение подобранной модели является дважды различием между логарифмической правдоподобностью модели и влажной модели:

    - 2 (logL - logLs),

    где L и Ls являются вероятностями подобранной модели и влажной модели, соответственно. Влажная модель является моделью с максимальным количеством параметров, которые можно оценить.

    addInteractions использует отклонение, чтобы измерить совершенство подгонки модели и находит скорость обучения, которая уменьшает отклонение в каждой итерации. Задайте 'Verbose' как 1 или 2, чтобы отобразить отклонение и скорость обучения в Командном окне.

    Алгоритмы

    свернуть все

    Алгоритм повышения градиента

    addInteractions добавляют наборы деревьев взаимодействия (повышенные деревья в течение многих периодов взаимодействия для предикторов) к одномерной обобщенной аддитивной модели при помощи алгоритма повышения градиента (Повышение Наименьших квадратов для регрессии и Адаптивная Логистическая регрессия для классификации). Алгоритм выполняет итерации для в большей части 'NumTreesPerInteraction' времена для деревьев взаимодействия.

    Для каждой повышающей итерации, addInteractions создает набор деревьев взаимодействия с начальной скоростью обучения 'InitialLearnRateForInteractions'.

    • При создании набора деревьев функция обучает одно дерево за один раз. Это соответствует дереву к невязке, которая является различием между ответом (наблюдаемые значения отклика для регрессии или множества наблюдаемых классов для классификации) и агрегированным предсказанием от всех деревьев, выращенных ранее. Чтобы контролировать скорость изучения повышения, функция уменьшает дерево скоростью обучения и затем добавляет дерево в модель и обновляет невязку.

      • Обновленная модель = текущая модель + (скорость обучения) · (новое дерево)

      • Обновленная невязка = текущая невязка – (скорость обучения) · (ответ, объясненный новым деревом)

    • Если добавление набора деревьев улучшает подгонку модели (то есть, уменьшает отклонение подгонки), затем addInteractions перемещения к следующей итерации.

    • В противном случае, addInteractions половины скорость обучения и использование это, чтобы обновить модель и невязку. Функция продолжает делить на два скорость обучения, пока это не находит уровень, который улучшает подгонку модели.

      Если функция не может найти такую скорость обучения для деревьев взаимодействия, то это отключает подбор кривой модели. Можно определить, почему обучение зашло в проверку ReasonForTermination свойство обученной модели.

    Обнаружение периода взаимодействия

    В течение каждого попарного периода взаимодействия xi xj (заданный Interactions), программное обеспечение выполняет F - тест, чтобы исследовать, является ли термин статистически значительным.

    Ускорять процесс, addInteractions интервалы числовые предикторы в самое большее 8 равновероятных интервалов. Количество интервалов может быть меньше 8, если предиктор имеет меньше чем 8 уникальных значений. F - тест исследует нулевую гипотезу, что интервалы, созданные xi и xj, имеют равные ответы по сравнению с альтернативой в наименьшем количестве одного интервала, имеет различное значение отклика от других. Маленький p - значение указывает, что различия являются значительными, который подразумевает, что соответствующий период взаимодействия является значительным и, поэтому, включая термин может улучшить подгонку модели.

    addInteractions создает набор деревьев взаимодействия, использующих термины, p которых - значения не больше 'MaxPValue' значение. Можно использовать 'MaxPValue' по умолчанию значение 1 создавать деревья взаимодействия, использующие все термины, заданные Interactions.

    addInteractions добавляют периоды взаимодействия к модели в порядке важности на основе p - значения. Используйте Interactions свойство возвращенной модели проверять порядок периодов взаимодействия, добавленных к модели.

    Введенный в R2021a