resume

Возобновите обучение обобщенной аддитивной модели (GAM)

    Описание

    пример

    UpdatedMdl = resume(Mdl,numTrees) возвращает обновленную обобщенную аддитивную модель UpdatedMdl по обучению Mdl для numTrees больше итераций с теми же опциями, что и для обучения Mdl.

    Для каждой итерации, resume обучает одно дерево предикторов на линейный член или одно дерево взаимодействий на член взаимодействия.

    • Если Mdl содержит только линейные условия для предикторов (деревья предикторов), тогда resume обучает дополнительную numTrees количество деревьев на предиктор.

    • Если Mdl содержит как линейные, так и условия взаимодействия для предикторов (деревья предикторов и деревья взаимодействий), затем resume обучает дополнительную numTrees количество деревьев на срок взаимодействия.

    resume не добавляет новые условия в модель. Если вы хотите добавить условия взаимодействия в модель, которая содержит только линейные условия, используйте addInteractions функция.

    пример

    UpdatedMdl = resume(Mdl,numTrees,Name,Value) задает дополнительные опции, используя один или несколько аргументов имя-значение. Для примера, 'Verbose',2 задает уровень подробностей как 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 обновляет модель с большим количеством итераций.

    Входные параметры

    свернуть все

    Обобщенная аддитивная модель, заданная как ClassificationGAM или RegressionGAM объект модели.

    Количество добавляемых деревьев, заданное как положительный целочисленный скаляр.

    Типы данных: single | double

    Аргументы в виде пар имя-значение

    Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

    Пример: 'Verbose',1,'NumPrint',100 задает печать диагностических сообщений в Командном окне каждые 100 итераций.

    Количество итераций между распечатками диагностических сообщений, заданное как неотрицательный целочисленный скаляр. Этот аргумент действителен только тогда, когда вы задаете 'Verbose' как 1.

    Если вы задаете 'Verbose',1 и 'NumPrint',numPrint, затем программное обеспечение отображает диагностические сообщения каждый numPrint итерации в Командном окне.

    Значение по умолчанию Mdl.ModelParameters.NumPrint, который является NumPrint значение, заданное при создании объекта GAM Mdl.

    Пример: 'NumPrint',500

    Типы данных: single | double

    Уровень подробностей, заданный как 0, 1, или 2. The Verbose значение управляет объемом информации, отображаемой программным обеспечением в Командном окне.

    В этой таблице представлены доступные опции уровня подробностей.

    ЗначениеОписание
    0Программа не отображает никакой информации.
    1Программа отображает диагностические сообщения каждый numPrint итерации, где numPrint является 'NumPrint' значение.
    2Программа отображает диагностические сообщения при каждой итерации.

    Каждая линия диагностических сообщений показывает информацию о каждой усиливающей итерации и включает следующие столбцы:

    • Type - Тип обученных деревьев, 1D (деревья предикторов или усиленные деревья для линейных терминов для предикторов) или 2D (деревья взаимодействия или усиленные деревья для условий взаимодействия для предикторов)

    • NumTrees - Количество деревьев на линейный термин или термин взаимодействия, который resume добавлено к модели до сих пор

    • Deviance - Отклонение модели

    • RelTol - Относительное изменение предсказаний модели: (y^ky^k1)(y^ky^k1)/y^ky^k, где y^k является вектор-столбец предсказаний модели при итерации k

    • LearnRate - Скорость обучения, используемый для текущей итерации

    Значение по умолчанию Mdl.ModelParameters.VerbosityLevel, который является Verbose значение, заданное при создании объекта GAM Mdl.

    Пример: 'Verbose',1

    Типы данных: single | double

    Выходные аргументы

    свернуть все

    Обновленная обобщенная аддитивная модель, возвращенная как ClassificationGAM или RegressionGAM объект модели. UpdatedMdl имеет тот же тип объекта, что и входная модель Mdl.

    Чтобы перезаписать входной параметр Mdl, присвойте выходные данные resume на Mdl:

    Mdl = resume(Mdl,numTrees);

    Подробнее о

    свернуть все

    Отклонение

    Отклонение - обобщение остаточной суммы квадратов. Он измеряет качество подгонки по сравнению с насыщенной моделью.

    Отклонение подобранной модели в два раза больше разницы между логарифмической правдоподобностью модели и насыщенной моделью:

    -2 (log L - log Ls),

    где L и Ls являются вероятностями подобранной модели и насыщенной модели, соответственно. Насыщенная модель является моделью с максимальным количеством параметров, которые вы можете оценить.

    resume использует отклонение для измерения качества модели и находит скорость обучения, которая уменьшает отклонение при каждой итерации. Задайте 'Verbose' равным 1 или 2, чтобы отобразить отклонение и скорость обучения в Командном окне.

    Введенный в R2021a