Возобновите обучение обобщенной аддитивной модели (GAM)
возвращает обновленную обобщенную аддитивную модель UpdatedMdl
= resume(Mdl
,numTrees
)UpdatedMdl
учебным Mdl
для numTrees
больше итераций с теми же опциями, используемыми, чтобы обучить Mdl
.
Для каждой итерации, resume
обучает одно дерево предиктора на линейный член или одно дерево взаимодействия в период взаимодействия.
Если Mdl
содержит только линейные члены для предикторов (деревья предиктора), затем resume
обучает дополнительный numTrees
количество деревьев на предиктор.
Если Mdl
содержит и линейные члены и периоды взаимодействия для предикторов (деревья предиктора и деревья взаимодействия), затем resume
обучает дополнительный numTrees
количество деревьев в период взаимодействия.
resume
не добавляют новые термины к модели. Если вы хотите добавить периоды взаимодействия в модель, которая содержит только линейные члены, используйте addInteractions
функция.
задает дополнительные опции с помощью одних или нескольких аргументов name-value. Например, UpdatedMdl
= resume(Mdl
,numTrees
,Name,Value
)
задает уровень многословия как 2, чтобы отобразить диагностические сообщения в каждой итерации.'Verbose'
,2
Обучите одномерную классификацию GAM (который содержит только линейные члены) для небольшого количества итераций. После обучения модель для большего количества итераций сравните потерю перезамены.
Загрузите ionosphere
набор данных. Этот набор данных имеет 34 предиктора, и 351 бинарный ответ для радара возвращается, любой плохо ('b'
) или хороший ('g'
).
load ionosphere
Обучите одномерный GAM, который идентифицирует, плох ли радарный возврат ('b'
) или хороший ('g'
). Задайте количество деревьев на линейный член как 2. fitcgam
выполняет итерации повышающего алгоритма для конкретного количества итераций. Для каждой повышающей итерации функция добавляет одно дерево на линейный член. Задайте 'Verbose'
как 2, чтобы отобразить диагностические сообщения в каждой итерации.
Mdl = fitcgam(X,Y,'NumTreesPerPredictor',2,'Verbose',2);
|========================================================| | Type | NumTrees | Deviance | RelTol | LearnRate | |========================================================| | 1D| 0| 486.59| - | - | | 1D| 1| 166.71| Inf| 1| | 1D| 2| 78.336| 0.58205| 1|
Проверять ли fitcgam
обучает конкретное количество деревьев, отобразите ReasonForTermination
свойство обученной модели и представления отображенное сообщение.
Mdl.ReasonForTermination
ans = struct with fields:
PredictorTrees: 'Terminated after training the requested number of trees.'
InteractionTrees: ''
Вычислите потерю классификации для обучающих данных.
resubLoss(Mdl)
ans = 0.0142
Возобновите обучение модель еще для 100 итераций. Поскольку Mdl
содержит только линейные члены, resume
функционируйте возобновляет обучение линейным членам и добавляет больше деревьев для них (деревья предиктора). Задайте 'Verbose'
и 'NumPrint'
отобразить диагностические сообщения в каждых 10 итерациях.
UpdatedMdl = resume(Mdl,100,'Verbose',1,'NumPrint',10);
|========================================================| | Type | NumTrees | Deviance | RelTol | LearnRate | |========================================================| | 1D| 0| 78.336| - | - | | 1D| 1| 38.364| 0.17429| 1| | 1D| 10| 0.16311| 0.011894| 1| | 1D| 20| 0.00035693| 0.0025178| 1| | 1D| 30| 8.1191e-07| 0.0011006| 1| | 1D| 40| 1.7978e-09| 0.00074607| 1| | 1D| 50| 3.6113e-12| 0.00034404| 1| | 1D| 60| 1.7497e-13| 0.00016541| 1|
UpdatedMdl.ReasonForTermination
ans = struct with fields:
PredictorTrees: 'Unable to improve the model fit.'
InteractionTrees: ''
resume
отключает обучение, когда добавление большего количества деревьев не улучшает отклонение подгонки модели.
Вычислите потерю классификации с помощью обновленной модели.
resubLoss(UpdatedMdl)
ans = 0
Уменьшения классификации потерь после resume
обновляет модель с большим количеством итераций.
Обучите регрессию GAM, который содержит и линейные члены и периоды взаимодействия. Задайте, чтобы обучить периоды взаимодействия небольшому количеству итераций. После обучения периоды взаимодействия для большего количества итераций сравните потерю перезамены.
Загрузите carbig
набор данных, который содержит измерения автомобилей, сделанных в 1970-х и в начале 1980-х.
load carbig
Задайте Acceleration
, Displacement
, Horsepower
, и Weight
как переменные предикторы (X
) и MPG
как переменная отклика (Y
).
X = [Acceleration,Displacement,Horsepower,Weight]; Y = MPG;
Обучите GAM, который включает все доступные линейные члены и периоды взаимодействия в X
. Задайте количество деревьев в период взаимодействия как 2. fitrgam
выполняет итерации повышающего алгоритма 300 раз (значение по умолчанию) для линейных членов и выполняет итерации алгоритма конкретное количество итераций в течение многих периодов взаимодействия. Для каждой повышающей итерации функция добавляет одно дерево на линейный член или одно дерево в период взаимодействия. Задайте 'Verbose'
как 1, чтобы отобразить диагностические сообщения в каждых 10 итерациях.
Mdl = fitrgam(X,Y,'Interactions','all','NumTreesPerInteraction',2,'Verbose',1);
|========================================================| | Type | NumTrees | Deviance | RelTol | LearnRate | |========================================================| | 1D| 0| 2.4432e+05| - | - | | 1D| 1| 9507.4| Inf| 1| | 1D| 10| 4470.6| 0.00025206| 1| | 1D| 20| 3895.3| 0.00011448| 1| | 1D| 30| 3617.7| 3.5365e-05| 1| | 1D| 40| 3402.5| 3.7992e-05| 1| | 1D| 50| 3257.1| 2.4983e-05| 1| | 1D| 60| 3131.8| 2.3873e-05| 1| | 1D| 70| 3019.8| 2.2967e-05| 1| | 1D| 80| 2925.9| 2.8071e-05| 1| | 1D| 90| 2845.3| 1.6811e-05| 1| | 1D| 100| 2772.7| 1.852e-05| 1| | 1D| 110| 2707.8| 1.6754e-05| 1| | 1D| 120| 2649.8| 1.651e-05| 1| | 1D| 130| 2596.6| 1.1723e-05| 1| | 1D| 140| 2547.4| 1.813e-05| 1| | 1D| 150| 2501.1| 1.8659e-05| 1| | 1D| 160| 2455.7| 1.386e-05| 1| | 1D| 170| 2416.9| 1.0615e-05| 1| | 1D| 180| 2377.2| 8.534e-06| 1| | 1D| 190| 2339| 7.6771e-06| 1| | 1D| 200| 2303.3| 9.5866e-06| 1| | 1D| 210| 2270.7| 8.4276e-06| 1| | 1D| 220| 2240.1| 8.5778e-06| 1| | 1D| 230| 2209.2| 9.6761e-06| 1| | 1D| 240| 2178.7| 7.0622e-06| 1| | 1D| 250| 2150.3| 8.3082e-06| 1| | 1D| 260| 2122.3| 7.9542e-06| 1| | 1D| 270| 2097.7| 7.6328e-06| 1| | 1D| 280| 2070.4| 9.4322e-06| 1| | 1D| 290| 2044.3| 7.5722e-06| 1| | 1D| 300| 2019.7| 6.6719e-06| 1| |========================================================| | Type | NumTrees | Deviance | RelTol | LearnRate | |========================================================| | 2D| 0| 2019.7| - | - | | 2D| 1| 1795.5| 0.0005975| 1| | 2D| 2| 1523.4| 0.0010079| 1|
Проверять ли fitrgam
обучает конкретное количество деревьев, отобразите ReasonForTermination
свойство обученной модели и представления отображенные сообщения.
Mdl.ReasonForTermination
ans = struct with fields:
PredictorTrees: 'Terminated after training the requested number of trees.'
InteractionTrees: 'Terminated after training the requested number of trees.'
Вычислите потерю регрессии для обучающих данных.
resubLoss(Mdl)
ans = 3.8277
Возобновите обучение модель еще для 100 итераций. Поскольку Mdl
содержит и линейные члены и периоды взаимодействия, resume
функционируйте возобновляет обучение в течение периодов взаимодействия и добавляет больше деревьев для них (деревья взаимодействия).
UpdatedMdl = resume(Mdl,100);
|========================================================| | Type | NumTrees | Deviance | RelTol | LearnRate | |========================================================| | 2D| 0| 1523.4| - | - | | 2D| 1| 1363.9| 0.00039695| 1| | 2D| 10| 594.04| 8.0295e-05| 1| | 2D| 20| 359.44| 4.3201e-05| 1| | 2D| 30| 238.51| 2.6869e-05| 1| | 2D| 40| 153.98| 2.6271e-05| 1| | 2D| 50| 91.464| 8.0936e-06| 1| | 2D| 60| 61.882| 3.8528e-06| 1| | 2D| 70| 43.206| 5.9888e-06| 1|
UpdatedMdl.ReasonForTermination
ans = struct with fields:
PredictorTrees: 'Terminated after training the requested number of trees.'
InteractionTrees: 'Unable to improve the model fit.'
resume
отключает обучение, когда добавление большего количества деревьев не улучшает отклонение подгонки модели.
Вычислите потерю регрессии с помощью обновленной модели.
resubLoss(UpdatedMdl)
ans = 0.0944
Уменьшения регрессии потерь после resume
обновляет модель с большим количеством итераций.
Mdl
— Обобщенная аддитивная модельClassificationGAM
объект модели | RegressionGAM
объект моделиОбобщенная аддитивная модель в виде ClassificationGAM
или RegressionGAM
объект модели.
numTrees
— Количество деревьев, чтобы добавитьКоличество деревьев, чтобы добавить в виде положительного целочисленного скаляра.
Типы данных: single
| double
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'Verbose',1,'NumPrint',100
задает, чтобы распечатать диагностические сообщения в Командном окне каждые 100 итераций.NumPrint
— Количество итераций между диагностическими распечатками сообщенияMdl.ModelParameters.NumPrint
(значение по умолчанию) | неотрицательный целочисленный скалярКоличество итераций между диагностическими распечатками сообщения в виде неотрицательного целочисленного скаляра. Этот аргумент допустим только, когда вы задаете 'Verbose'
как 1.
Если вы задаете 'Verbose',1
и 'NumPrint',numPrint
, затем программное обеспечение отображается, диагностика передает каждый numPrint
итерации в Командном окне.
Значением по умолчанию является Mdl.ModelParameters.NumPrint
, который является NumPrint
значение, которое вы задаете при создании объекта GAM Mdl
.
Пример: 'NumPrint',500
Типы данных: single
| double
Verbose
— Уровень многословияMdl.ModelParameters.VerbosityLevel
(значение по умолчанию) | 0 | 1
| 2
Уровень многословия в виде 0
, 1, или
2
. Verbose
значение управляет объемом информации, который программное обеспечение отображает в Командном окне.
Эта таблица суммирует доступные опции уровня многословия.
Значение | Описание |
---|---|
0
| Программное обеспечение не отображает информации. |
1
| Программное обеспечение отображается, диагностика передает каждый numPrint итерации, где numPrint 'NumPrint' значение. |
2
| Программное обеспечение отображает диагностические сообщения в каждой итерации. |
Каждая линия диагностических сообщений показывает информацию о каждой повышающей итерации и включает следующие столбцы:
Type
— Тип обученных деревьев, 1D
(деревья предиктора или повышенные деревья для линейных членов для предикторов) или 2D
(деревья взаимодействия или повышенные деревья в течение многих периодов взаимодействия для предикторов)
NumTrees
— Количество деревьев на линейный член или период взаимодействия это resume
добавленный к модели до сих пор
Deviance
— Отклонение модели
RelTol
— Относительное изменение предсказаний модели: , где вектор-столбец предсказаний модели в итерации k
LearnRate
— Скорость обучения используется для текущей итерации
Значением по умолчанию является Mdl.ModelParameters.VerbosityLevel
, который является Verbose
значение, которое вы задаете при создании объекта GAM Mdl
.
Пример: 'Verbose',1
Типы данных: single
| double
UpdatedMdl
— Обновленная обобщенная аддитивная модельClassificationGAM
объект модели | RegressionGAM
объект моделиОбновленная обобщенная аддитивная модель, возвращенная как ClassificationGAM
или RegressionGAM
объект модели. UpdatedMdl
имеет тот же тип объекта как входная модель Mdl
.
Перезаписывать входной параметр Mdl
, присвойте выход resume
к Mdl
:
Mdl = resume(Mdl,numTrees);
Отклонение является обобщением остаточной суммы квадратов. Это измеряет качество подгонки по сравнению с влажной моделью.
Отклонение подобранной модели является дважды различием между логарифмической правдоподобностью модели и влажной модели:
- 2 (logL - logLs),
где L и Ls являются вероятностями подобранной модели и влажной модели, соответственно. Влажная модель является моделью с максимальным количеством параметров, которые можно оценить.
resume
использует отклонение, чтобы измерить совершенство подгонки модели и находит скорость обучения, которая уменьшает отклонение в каждой итерации. Задайте 'Verbose'
как 1 или 2, чтобы отобразить отклонение и скорость обучения в Командном окне.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.