Обучите классификатор, используя оптимизацию гипероптимизации параметров управления в приложении Classification Learner

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

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

    load ionosphere
    tbl = array2table(X);
    tbl.Y = Y;
    
    rng('default') % For reproducibility of the data split
    partition = cvpartition(Y,'Holdout',0.15);
    idxTrain = training(partition); % Indices for the training set
    tblTrain = tbl(idxTrain,:);
    tblTest = tbl(~idxTrain,:);
  2. Откройте Classification Learner. Щелкните вкладку Apps, а затем щелкните стреле справа от раздела Apps, чтобы открыть галерею Apps. В группе Machine Learning and Deep Learning нажмите Classification Learner.

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

  4. В диалоговом окне «Новый сеанс из рабочей области» выберите tblTrain таблица из списка Data Set Variable.

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

    New Session from Workspace dialog box

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

  6. Обучите все предустановленные модели SVM. На вкладке Classification Learner, в разделе Model Type, щелкните стреле, чтобы открыть галерею. В группе Support Vector Machines нажмите All SVMs. В Training разделе нажмите Train. Приложение обучает один из каждого типа модели SVM и отображает модели в панели Models.

    Совет

    Если у вас есть Parallel Computing Toolbox™, можно обучить все модели SVM (All SVMs) одновременно, нажав кнопку Use Parallel в разделе Training перед нажатием Train. После нажатия кнопки Train открывается диалоговое окно Открытие параллельного пула, которое остается открытым, пока приложение открывает параллельный пул работников. В течение этого времени вы не можете взаимодействовать с программным обеспечением. После открытия пула приложение обучает модели SVM одновременно.

    Scatter plot of the ionosphere data

    Приложение отображает график поля точек ionosphere данные. Правильно классифицированные точки отмечены O, а неправильно классифицированные точки отмечены X. На панели Models слева показана точность валидации для каждой модели.

    Примечание

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

  7. Выберите оптимизируемую модель SVM для обучения. На вкладке Classification Learner, в разделе Model Type, щелкните стреле, чтобы открыть галерею. В группе Support Vector Machines нажмите Optimizable SVM. Приложение отключает кнопку Use Parallel, когда вы выбираете оптимизируемую модель.

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

    Select SVM Hyperparameters to Optimize dialog box

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

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

    Приложение приводит оптимизированные гиперпараметры как в разделе Optimization Results справа от графика, так и в разделе Optimized Hyperparameters на панели Current Model Summary.

    Minimum classification error plot for the optimizable SVM model

    Примечание

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

  11. Сравните обученные предустановленные модели SVM с обученной оптимизируемой моделью. На панели Models приложение подсвечивает самую высокую Accuracy (Validation), обрисовывая ее в поле. В этом примере обученная оптимизируемая модель SVM превосходит шесть предустановленных моделей.

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

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

    На вкладке Classification Learner, в разделе Testing, выберите Test Data > From Workspace.

  13. В диалоговом окне Import Test Data выберите tblTest таблица из списка Test Data Set Variable.

    Как показано в диалоговом окне, приложение идентифицирует переменные отклика и предиктора.

    Import Test Data dialog box

  14. Нажмите Import.

  15. Вычислите точность лучшей предустановленной модели и оптимизируемой модели на tblTest данные.

    Сначала на панели Models щелкните значки звезды рядом с моделью Medium Gaussian SVM и Optimizable SVM моделью.

  16. Для каждой модели выберите модель на панели Models, а затем выберите Test All > Test Selected в разделе Testing. Приложение вычисляет эффективность тестового набора модели, обученной на полном наборе данных, включая данные обучения и валидации.

  17. Отсортируйте модели на основе точности тестового набора. На панели Models откройте список Sort by и выберите Accuracy (Test).

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

    Trained models sorted by test accuracy

  18. В Plots разделе на вкладке Classification Learner выберите Confusion Matrix > Test Data. Переключитесь между средней Гауссовой моделью SVM и оптимизируемой моделью SVM и визуально сравните две матрицы неточностей.

    Test set confusion matrix for the medium Gaussian SVM model

    Test set confusion matrix for the optimizable SVM model

Похожие темы