Обучите модель регрессии Используя гипероптимизацию параметров управления в приложении Regression Learner

В этом примере показано, как настроить гиперпараметры ансамбля регрессии при помощи гипероптимизации параметров управления в приложении Regression Learner. Сравните производительность набора тестов обученного optimizable ансамбля к той из лучше всего выполняющей предварительно установленной модели ансамбля.

  1. В Командном окне MATLAB® загрузите carbig набор данных, и составляет таблицу, содержащую большинство переменных. Разделите таблицу на наборы обучающих данных и наборы тестов.

    load carbig
    cartable = table(Acceleration,Cylinders,Displacement, ...
        Horsepower,Model_Year,Weight,Origin,MPG);
    
    rng('default') % For reproducibility of the data split
    n = length(MPG);
    partition = cvpartition(n,'HoldOut',0.15);
    idxTrain = training(partition); % Indices for the training set
    cartableTrain = cartable(idxTrain,:);
    cartableTest = cartable(~idxTrain,:);
  2. Открытый Regression Learner. Кликните по вкладке Apps, и затем кликните по стреле справа от раздела Apps, чтобы открыть галерею Apps. В группе Machine Learning and Deep Learning нажмите Regression Learner.

  3. На вкладке Regression Learner, в разделе File, выбирают New Session > From Workspace.

  4. В диалоговом окне New Session выберите cartableTrain таблица из списка Workspace Variable.

    Как показано в диалоговом окне, приложение выбирает переменные отклика и переменные предикторы. Переменной отклика по умолчанию является MPG. Опция валидации по умолчанию является 5-кратной перекрестной проверкой, чтобы защитить от сверхподбора кривой. В данном примере не изменяйте настройки по умолчанию.

  5. Чтобы принять опции по умолчанию и продолжиться, нажмите Start Session.

  6. Обучите все предварительно установленные модели ансамбля. На вкладке Regression Learner, в разделе Model Type, кликают по стреле, чтобы открыть галерею. В группе Ensembles of Trees нажмите All Ensembles. В разделе Training нажмите Train. Приложение обучает один из каждого типа модели ансамбля и отображает модели в списке History.

    Совет

    Если у вас есть Parallel Computing Toolbox™, диалоговое окно Opening Pool открывается в первый раз, когда вы нажимаете Train (или когда вы нажимаете Train снова после длительного периода времени). Диалоговое окно остается открытым, в то время как приложение открывает параллельный пул рабочих. В это время вы не можете взаимодействовать с программным обеспечением. После того, как пул открывается, можно обучить многоуровневые модели одновременно и продолжить работать.

    Примечание

    Валидация вводит некоторую случайность в результаты. Ваши результаты проверки допустимости модели могут варьироваться от результатов, показанных в этом примере.

  7. Выберите optimizable модель ансамбля, чтобы обучаться. На вкладке Regression Learner, в разделе Model Type, кликают по стреле, чтобы открыть галерею. В группе Ensembles of Trees нажмите Optimizable Ensemble. Приложение отключает кнопку Use Parallel, когда вы выбираете optimizable модель.

  8. Выберите гиперпараметры модели, чтобы оптимизировать. В разделе Model Type выберите Advanced > Advanced. Приложение открывает диалоговое окно, в котором можно установить флажки Optimize для гиперпараметров, которые вы хотите оптимизировать. По умолчанию все флажки устанавливаются. В данном примере примите выборы по умолчанию и закройте диалоговое окно.

  9. В разделе Training нажмите Train.

  10. Отображения приложения Minimum MSE Plot, когда это запускает процесс оптимизации. В каждой итерации приложение пробует различную комбинацию гиперзначений параметров и обновляет график с минимальной среднеквадратической ошибкой (MSE) валидации, наблюдаемой до той итерации, обозначенной в темно-синем. Когда приложение завершает процесс оптимизации, оно выбирает набор оптимизированных гиперпараметров, обозначенных красным квадратом. Для получения дополнительной информации см. Минимальный График MSE.

    Списки приложений оптимизированные гиперпараметры и в верхнем правом углу графика и в разделе Optimized Hyperparameters панели Current Model.

    Примечание

    В общем случае результаты оптимизации не восстанавливаемы.

  11. Сравните обученные предварительно установленные модели ансамбля с обученной optimizable моделью. В списке History приложение подсвечивает самую низкую валидацию RMSE (среднеквадратичная ошибка) путем выделения его в поле. В этом примере обученный optimizable ансамбль превосходит две предварительно установленных модели по характеристикам.

    Обученная optimizable модель не всегда имеет более низкий RMSE, чем обученные предварительно установленные модели. Если обученная optimizable модель не выполняет хорошо, можно попытаться получить лучшие результаты путем выполнения оптимизации для дольше. В разделе Model Type выберите Advanced > Optimizer Options. В диалоговом окне увеличьте значение Iterations. Например, можно дважды кликнуть значение по умолчанию 30 и введите значение 60.

  12. Поскольку гиперпараметр, настраивающийся часто, приводит к сверхподобранным моделям, проверяйте производительность набора тестов модели ансамбля оптимизированными гиперпараметрами и сравните его с производительностью лучшей предварительно установленной модели ансамбля. Начните путем экспорта этих двух моделей в рабочее пространство MATLAB.

    • В списке History выберите модель Boosted Trees. На вкладке Regression Learner, в разделе Export, выбирают Export Model > Export Model. В диалоговом окне назовите модель treeEnsemble.

    • В списке History выберите модель Optimizable Ensemble. На вкладке Regression Learner, в разделе Export, выбирают Export Model > Export Model. В диалоговом окне назовите модель optimizableEnsemble.

  13. Вычислите RMSE этих двух моделей на cartableTest данные. В Окне Команды MATLAB используйте predictFcn функция в каждой экспортируемой структуре модели, чтобы предсказать значения ответа данных о наборе тестов. Затем вычислите RMSE для каждой модели на данных о наборе тестов, не использовав любой NaN значения. Сравните два значения RMSE.

    y = treeEnsemble.predictFcn(cartableTest);
    presetRMSE = sqrt((1/length(y))*sum((cartableTest.MPG - y).^2,'omitnan'))
    
    z = optimizableEnsemble.predictFcn(cartableTest);
    optRMSE = sqrt((1/length(z))*sum((cartableTest.MPG - z).^2,'omitnan'))
    
    presetRMSE =
    
        3.4591
    
    optRMSE =
    
        3.1884
    

    В этом примере обученный optimizable ансамбль все еще превосходит обученную предварительно установленную модель по характеристикам на данных о наборе тестов.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте