Добавьте условия взаимодействия в одномерную обобщенную аддитивную модель (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
включает пять из шести доступных пар терминов взаимодействия.
Mdl
- Обобщенная аддитивная модельClassificationGAM
объект модели | RegressionGAM
объект моделиОбобщенная аддитивная модель, заданная как ClassificationGAM
или RegressionGAM
объект модели.
Interactions
- Количество условий взаимодействия или список условий взаимодействия0
| неотрицательное целое число | логическая матрица | 'all'
Количество или список членов взаимодействия для включения в S набора кандидатов, заданные как неотрицательный целочисленный скаляр, логическая матрица или 'all'
.
Количество членов взаимодействия, заданное как неотрицательное целое число - S включает указанное количество важных членов взаимодействия, выбранных исходя из p - значений членов.
Список условий взаимодействия, заданных как логическая матрица - S включает условия, заданные t
-by- 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'
- Количество деревьев на срок взаимодействияКоличество деревьев на один член взаимодействия, заданное как положительный целочисленный скаляр.
The 'NumTreesPerInteraction'
значение эквивалентно количеству итераций ускорения градиента для членов взаимодействия для предикторов. Для каждой итерации, addInteractions
добавляет к модели набор деревьев взаимодействия, по одному дереву для каждого термина взаимодействия. Чтобы узнать о алгоритме ускорения градиента, см. «Алгоритм ускорения градиента».
Можно определить, имеет ли подобранная модель заданное количество деревьев, просмотрев диагностическое сообщение, отображаемое при 'Verbose'
равен 1 или 2, или путем проверки ReasonForTermination
значение свойства модели Mdl
.
Пример: 'NumTreesPerInteraction',500
Типы данных: single
| double
'Verbose'
- Уровень подробностейMdl.ModelParameters.VerbosityLevel
(по умолчанию) | 0 | 1
| 2
Уровень подробностей, заданный как 0
, 1
, или 2
. The Verbose
значение управляет объемом информации, отображаемой программным обеспечением в Командном окне.
В этой таблице представлены доступные опции уровня подробностей.
Значение | Описание |
---|---|
0 | Программа не отображает никакой информации. |
1 | Программа отображает диагностические сообщения каждый numPrint итерации, где numPrint является 'NumPrint' значение. |
2 | Программа отображает диагностические сообщения при каждой итерации. |
Каждая линия диагностических сообщений показывает информацию о каждой усиливающей итерации и включает следующие столбцы:
Type
- Тип обученных деревьев, 1D
(деревья предикторов или усиленные деревья для линейных терминов для предикторов) или 2D
(деревья взаимодействия или усиленные деревья для условий взаимодействия для предикторов)
NumTrees
- Количество деревьев на линейный термин или термин взаимодействия, который addInteractions
добавлено к модели до сих пор
Deviance
- Отклонение модели
RelTol
- Относительное изменение предсказаний модели: , где является вектор-столбец предсказаний модели при итерации 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 (log L - log Ls),
где L и Ls являются вероятностями подобранной модели и насыщенной модели, соответственно. Насыщенная модель является моделью с максимальным количеством параметров, которые вы можете оценить.
addInteractions
использует отклонение для измерения качества модели и находит скорость обучения, которая уменьшает отклонение при каждой итерации. Задайте 'Verbose'
равным 1 или 2, чтобы отобразить отклонение и скорость обучения в Командном окне.
addInteractions
добавляет наборы деревьев взаимодействия (усиленные деревья для терминов взаимодействия для предикторов) в одномерную обобщенную аддитивную модель с помощью градиентного алгоритма бустинга (ускорение методом наименьших квадратов для регрессии и адаптивная логистическая регрессия для классификации). Алгоритм итерирует самое большее 'NumTreesPerInteraction'
время для деревьев взаимодействия.
Для каждой итерации увеличения, addInteractions
создает набор деревьев взаимодействия с начальной скоростью обучения 'InitialLearnRateForInteractions'
.
При построении набора деревьев функция обучает по одному дереву за раз. Он подбирает дерево к невязке, который является различием между откликом (наблюдаемые значения отклика для регрессии или счетов наблюдаемых классов для классификации) и агрегированным предсказанием от всех деревьев, выращенных ранее. Чтобы контролировать ускоряющую скорость обучения, функция сжимает дерево по скорости обучения, а затем добавляет дерево к модели и обновляет невязку.
Обновленная модель = текущая модель + (темп обучения)· (новое дерево)
Обновлённая невязка = текущая невязка - (темп обучения)· (ответ объясняется новым деревом)
Если добавление набора деревьев улучшает подгонка модели (то есть уменьшает отклонение подгонки), то addInteractions
переходит к следующей итерации.
В противном случае, addInteractions
уменьшает вдвое скорость обучения и использует его, чтобы обновить модель и невязку. Функция продолжает уменьшать скорость обучения вдвое, пока не найдет скорость, которая улучшает подгонку модели.
Если функция не может найти такую скорость обучения для деревьев взаимодействия, то она прекращает подбор кривой модели. Можно определить, почему обучение остановлено, проверив ReasonForTermination
свойство обученной модели.
Для каждого парного термина взаимодействия xi xj (задается Interactions
), программное обеспечение выполняет F-тест, чтобы выяснить, является ли термин статистически значимым.
Чтобы ускорить процесс, addInteractions
заключает числовые предикторы в самое большее 8 уравнительных интервалов. Количество интервалов может быть меньше 8, если предиктор имеет меньше 8 уникальных значений. F-test исследует нулевую гипотезу о том, что интервалы, созданные xi и xj, имеют одинаковые отклики по сравнению с альтернативой, что, по крайней мере, одно интервал имеет отличное значение отклика от других. Небольшое p -значение указывает, что различия значительны, что подразумевает, что соответствующий термин взаимодействия значителен и, следовательно, включая термин может улучшить подгонку модели.
addInteractions
создает набор деревьев взаимодействия с помощью членов, значения p которых не больше 'MaxPValue'
значение. Можно использовать 'MaxPValue'
по умолчанию значение
1
для построения деревьев взаимодействия с использованием всех терминов, заданных Interactions
.
addInteractions
добавляет к модели условия взаимодействия в порядке важности на основе p значений. Используйте Interactions
свойство возвращаемой модели для проверки порядка добавленных в модель членов взаимодействия.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.