Добавление терминов взаимодействия в одномерную обобщенную аддитивную модель (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' аргумент name-value для добавления терминов взаимодействия, значения 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 включает в себя пять из шести доступных пар терминов взаимодействия.
Mdl - Обобщенная аддитивная модельClassificationGAM объект модели | RegressionGAM объект моделиОбобщенная аддитивная модель, указанная как ClassificationGAM или RegressionGAM объект модели.
Interactions - Количество терминов взаимодействия или список терминов взаимодействия0 | неотрицательное целое | логическая матрица | 'all'Число или список терминов взаимодействия, включаемых в набор кандидатов 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,'all','MaxPValue',0.05,'Verbose',1,'NumPrints',10) указывает включить все доступные термины взаимодействия, значения p которых не превышают 0,05, и отображать диагностические сообщения каждые 10 итераций.'InitialLearnRateForInteractions' - Начальная скорость обучения градиентного повышения для членов взаимодействия1 (по умолчанию) | числовой скаляр в (0,1]Начальная скорость обучения градиентного повышения для членов взаимодействия, заданная как числовой скаляр в интервале (0,1].
Для каждой итерации повышения для деревьев взаимодействия, addInteractions начинает соответствовать начальной скорости обучения. Функция наполовину уменьшает скорость обучения до тех пор, пока не обнаружит скорость, которая улучшает аппроксимацию модели.
Обучение модели с использованием небольшой скорости обучения требует большего количества итераций обучения, но часто достигает лучшей точности.
Дополнительные сведения о повышении градиента см. в разделе Алгоритм повышения градиента.
Пример: 'InitialLearnRateForInteractions',0.1
Типы данных: single | double
'MaxNumSplitsPerInteraction' - Максимальное количество разделений решений на дерево взаимодействияМаксимальное количество разделений решений (или узлов ветвления) для каждого дерева взаимодействия (усиленное дерево для члена взаимодействия), указанное как положительный целочисленный скаляр.
Пример: 'MaxNumSplitsPerInteraction',5
Типы данных: single | double
'MaxPValue' - Максимальное значение p для обнаружения терминов взаимодействияМаксимальное значение p для обнаружения членов взаимодействия, заданное как числовой скаляр в интервале [0,1].
addInteractions сначала находит набор кандидатов S терминов взаимодействия из Interactions значение. Затем функция идентифицирует члены взаимодействия, значения p которых не превышают 'MaxPValue' и использует их для построения набора деревьев взаимодействия.
Значение по умолчанию ('MaxPValue',1) строит деревья взаимодействия для всех терминов взаимодействия в наборе кандидатов S.
Дополнительные сведения об обнаружении терминов взаимодействия см. в разделе Обнаружение терминов взаимодействия.
Пример: 'MaxPValue',0.05
Типы данных: single | double
'NumPrint' - Количество итераций между распечатками диагностических сообщенийMdl.ModelParameters.NumPrint (по умолчанию) | неотрицательный целочисленный скалярЧисло итераций между распечатками диагностических сообщений, указанных как неотрицательный целочисленный скаляр. Этот аргумент допустим только при указании 'Verbose' как 1.
При указании 'Verbose',1 и 'NumPrint',numPrint, то программное обеспечение отображает диагностические сообщения каждый numPrint итерации в окне команд.
Значение по умолчанию: Mdl.ModelParameters.NumPrint, который является NumPrint значение, указанное при создании объекта GAM Mdl.
Пример: 'NumPrint',500
Типы данных: single | double
'NumTreesPerInteraction' - Количество деревьев на один термин взаимодействияЧисло деревьев на член взаимодействия, указанное как положительный целочисленный скаляр.
'NumTreesPerInteraction' значение эквивалентно количеству итераций повышения градиента для членов взаимодействия для предикторов. Для каждой итерации addInteractions добавляет в модель набор деревьев взаимодействия, по одному дереву для каждого члена взаимодействия. Сведения об алгоритме повышения градиента см. в разделе Алгоритм повышения градиента.
Можно определить, имеет ли подогнанная модель указанное количество деревьев, просматривая диагностическое сообщение, отображаемое при 'Verbose' равно 1 или 2, или путем проверки ReasonForTermination значение свойства модели Mdl.
Пример: 'NumTreesPerInteraction',500
Типы данных: single | double
'Verbose' - Уровень детализацииMdl.ModelParameters.VerbosityLevel (по умолчанию) | 0 | 1 | 2Уровень детализации, указанный как 0, 1, или 2. Verbose значение определяет объем информации, отображаемой программой в окне команд.
В этой таблице представлены доступные параметры уровня детализации.
| Стоимость | Описание |
|---|---|
0 | Программное обеспечение не отображает никакой информации. |
1 | Программа отображает диагностические сообщения каждый numPrint итерации, где numPrint является 'NumPrint' значение. |
2 | Программа отображает диагностические сообщения на каждой итерации. |
В каждой строке диагностических сообщений отображается информация о каждой итерации повышения и содержатся следующие столбцы:
Type - тип обученных деревьев, 1D (деревья предикторов или усиленные деревья для линейных терминов для предикторов) или 2D (деревья взаимодействия или усиленные деревья для терминов взаимодействия для предикторов)
NumTrees - Количество деревьев на линейный член или член взаимодействия, которые addInteractions добавлено к модели до настоящего времени
Deviance - Отклонение модели
RelTol - Относительное изменение предсказаний модели: y ^ k − )/ y^k′y^k, где y ^ k - вектор-столбец предсказаний модели при итерации k
LearnRate - Коэффициент обучения, используемый для текущей итерации
Значение по умолчанию: Mdl.ModelParameters.VerbosityLevel, который является Verbose значение, указанное при создании объекта GAM Mdl.
Пример: 'Verbose',1
Типы данных: single | double
UpdatedMdl - Обновленная обобщенная аддитивная модельClassificationGAM объект модели | RegressionGAM объект моделиОбновленная обобщенная аддитивная модель, возвращенная как 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 свойство обучаемой модели.
Для каждого парного члена взаимодействия xixj (определяется Interactions), программное обеспечение выполняет F-тест, чтобы проверить, является ли термин статистически значимым.
Чтобы ускорить процесс, addInteractions суммирует числовые предикторы не более чем в 8 четких бункеров. Количество ячеек может быть меньше 8, если предиктор имеет менее 8 уникальных значений. F-тест рассматривает нулевую гипотезу о том, что бункеры, созданные xi и xj, имеют равные ответы по сравнению с альтернативой того, что по меньшей мере один бункер имеет отличное от других значение ответа. Небольшое значение p указывает на то, что различия значительны, что подразумевает, что соответствующий член взаимодействия значителен и, следовательно, включение термина может улучшить подгонку модели.
addInteractions строит набор деревьев взаимодействия с использованием терминов, значения p которых не превышают 'MaxPValue' значение. Можно использовать значение по умолчанию 'MaxPValue' стоимость 1 для построения деревьев взаимодействия с использованием всех терминов, указанных в Interactions.
addInteractions добавляет в модель условия взаимодействия в порядке важности на основе значений p. Используйте Interactions свойство возвращаемой модели для проверки порядка терминов взаимодействия, добавленных в модель.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.