Возобновите обучение обобщенной аддитивной модели (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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.