Возобновите обучение обобщенной аддитивной модели (GAM)
возвращает обновленную обобщенную аддитивную модель UpdatedMdl
= resume(Mdl
,numTrees
)UpdatedMdl
по обучению Mdl
для numTrees
больше итераций с теми же опциями, что и для обучения Mdl
.
Для каждой итерации, resume
обучает одно дерево предикторов на линейный член или одно дерево взаимодействий на член взаимодействия.
Если Mdl
содержит только линейные условия для предикторов (деревья предикторов), тогда resume
обучает дополнительную numTrees
количество деревьев на предиктор.
Если Mdl
содержит как линейные, так и условия взаимодействия для предикторов (деревья предикторов и деревья взаимодействий), затем resume
обучает дополнительную numTrees
количество деревьев на срок взаимодействия.
resume
не добавляет новые условия в модель. Если вы хотите добавить условия взаимодействия в модель, которая содержит только линейные условия, используйте addInteractions
функция.
задает дополнительные опции, используя один или несколько аргументов имя-значение. Для примера, 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
. The 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 (log L - log Ls),
где L и Ls являются вероятностями подобранной модели и насыщенной модели, соответственно. Насыщенная модель является моделью с максимальным количеством параметров, которые вы можете оценить.
resume
использует отклонение для измерения качества модели и находит скорость обучения, которая уменьшает отклонение при каждой итерации. Задайте 'Verbose'
равным 1 или 2, чтобы отобразить отклонение и скорость обучения в Командном окне.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.