exponenta event banner

резюме

Возобновление обучения обобщенной аддитивной модели (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. Verbose значение определяет объем информации, отображаемой программой в окне команд.

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

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

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

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

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

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

    • RelTol - Относительное изменение предсказаний модели: (y ^ k y ^ k 1) (y ^ k y ^ k − 1 )/ y^k′y^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 (logL - logLs),

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

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

    Представлен в R2021a