exponenta event banner

Обучение деревьев принятия решений с помощью приложения Classification Learner

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

Можно обучить деревья классификации прогнозированию ответов на данные. Чтобы предсказать ответ, следуйте решениям в дереве от корневого (начального) узла до конечного узла. Конечный узел содержит ответ.

Деревья Toolbox™ статистики и машинного обучения являются двоичными. Каждый шаг в прогнозе включает в себя проверку значения одного предсказателя (переменной). Например, вот простое дерево классификации:

Decision tree with two branches

Это дерево предсказывает классификации на основе двух предикторов, x1 и x2. Чтобы предсказать, начните с верхнего узла. При каждом решении проверьте значения предикторов, чтобы решить, за какой ветвью следует. Когда ветви достигают конечного узла, данные классифицируются как тип 0 или 1.

  1. В MATLAB ® загрузите fisheriris набор данных и создание таблицы предикторов измерений (или признаков) с использованием переменных из набора данных для использования в классификации.

    fishertable = readtable('fisheriris.csv');
  2. На вкладке Приложения в группе Машинное обучение и глубокое обучение щелкните Классификатор.

  3. На вкладке «Классификатор» в разделе «Файл» выберите «Создать сеанс» > «Из рабочей области».

    Classification Learner tab

  4. В диалоговом окне Создать сессию из рабочей области (New Session from Workspace) выберите таблицу fishertable из списка «Переменная набора данных» (при необходимости).

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

    New Session dialog box

  5. Чтобы принять схему проверки по умолчанию и продолжить, щелкните Начать сеанс (Start Session). Параметр проверки по умолчанию - перекрестная проверка для защиты от переоборудования.

    Classification Learner создает график рассеяния данных.

    Scatter plot of the Fisher iris data.

  6. Используйте график рассеяния, чтобы выяснить, какие переменные полезны для прогнозирования ответа. Выберите различные опции в списках X и Y в разделе Предикторы для визуализации распределения видов и измерений. Обратите внимание, какие переменные наиболее четко разделяют цвета видов.

    Обратите внимание, что setosa виды (голубые точки) легко отделить от двух других видов со всеми четырьмя предикторами. versicolor и virginica виды гораздо ближе друг к другу во всех предикторных измерениях и перекрываются, особенно когда вы строите график длины и ширины чашелистика. setosa легче предсказать, чем два других вида.

  7. Чтобы создать модель дерева классификации, на вкладке Ученик по классификации в разделе Тип модели щелкните стрелку вниз, чтобы развернуть галерею, и щелкните Грубое дерево. Затем щелкните Поезд (Train).

    Приложение создает простое дерево классификации и строит график результатов.

    Просмотрите модель грубого дерева на панели Модели (Models). Отметьте балл проверки модели в поле Точность (Validation). Модель показала себя хорошо.

    Scatter plot of the Fisher iris data. Correctly classified points are marked with an O. Incorrectly classified points are marked with an X.

    Примечание

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

  8. Изучите график рассеяния. Символ X указывает неправильно классифицированные точки. Синие точки (setosa виды) все правильно классифицированы, но некоторые из двух других видов неправильно классифицированы. В разделе График (Plot) переключитесь между опциями Данные (Data) и Прогнозирование модели (Model Predictions). Обратите внимание на цвет неправильных точек (X). Кроме того, при печати прогнозов модели для просмотра только неверных точек снимите флажок «Исправить».

  9. Обучение другой модели для сравнения. Щелкните Среднее дерево (Medium Tree), а затем щелкните Направление (Train).

    При нажатии кнопки Обучить (Train) приложение отображает новую модель на панели Модели (Models).

  10. Просмотрите модель дерева среды на панели Модели (Models). Показатель проверки модели не лучше, чем показатель грубого дерева. Приложение отображает в рамке оценку точности (валидации) лучшей модели. Щелкните каждую модель на панели Модели (Models), чтобы просмотреть и сравнить результаты.

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

  12. Выберите Грубое дерево на панели Модели (Models). Чтобы попытаться улучшить модель, попробуйте включить в нее различные элементы. Узнайте, можно ли улучшить модель, удалив элементы с низкой прогнозируемой мощностью.

    На вкладке «Классификатор» в разделе «Элементы» выберите «Выбор элементов».

    В диалоговом окне Выбор элемента (Feature Selection) снимите флажки для параметров PetalLength и PetalWidth, чтобы исключить их из предикторов. На панели Модели (Models) появится новая модель чертежа с новыми настройками элементов 2/4 на основе грубого дерева.

    Щелкните Обучить (Train), чтобы обучить новую модель дерева с помощью новых опций предиктора.

    Feature Selection menu with SepalLength and SepalWidth selected, and PetalLength and PetalWidth cleared

  13. Наблюдайте за третьей моделью на панели Модели (Models). Это также модель грубого дерева, обученная с использованием только 2 из 4 предикторов. Приложение показывает, сколько предикторов исключено. Чтобы проверить, какие предикторы включены, щелкните модель на панели Модели (Models) и просмотрите флажки в диалоговом окне Выбор элемента (Feature Selection). Модель с измерениями только чашелистиков имеет гораздо более низкую точность, чем модель только лепестков.

  14. Тренируйте другую модель, включая только измерения лепестков. Измените выбор в диалоговом окне Выбор элемента (Feature Selection) и нажмите кнопку Поезд (Train).

    Модель, обученная с использованием только измерений лепестков, работает сопоставимо с моделями, содержащими все предикторы. Модели предсказывают не лучше, используя все измерения по сравнению только с измерениями лепестков. Если сбор данных является дорогостоящим или сложным, вы можете предпочесть модель, которая работает удовлетворительно без некоторых предикторов.

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

  16. Выберите лучшую модель из тех, которые имеют сходные баллы, изучив производительность в каждом классе. Выберите грубое дерево, включающее все предикторы. Чтобы проверить точность прогнозов в каждом классе, на вкладке «Ученик по классификации» в разделе «Графики» щелкните «Матрица путаницы» и выберите «Данные проверки». Используйте этот график, чтобы понять, как выбранный в данный момент классификатор работает в каждом классе. Просмотр матрицы истинного класса и прогнозируемых результатов класса.

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

    Confusion matrix plot

    Примечание

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

    На этом рисунке рассмотрим третью ячейку в среднем ряду. В этой ячейке истинным классом является versicolor, но модель неправильно классифицировала точки как virginica. Для этой модели ячейка показывает 2 неправильно классифицированные (результаты могут отличаться). Для просмотра процентов вместо количества наблюдений выберите параметр «Истинные положительные скорости» в разделе «Элементы управления графика».

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

  17. Сравните матрицу путаницы для каждой модели на панели Модели (Models). Проверьте диалоговое окно Выбор элемента (Feature Selection), чтобы узнать, какие предикторы включены в каждую модель.

  18. Чтобы исследовать элементы для включения или исключения, используйте график рассеяния и график параллельных координат. На вкладке «Классификатор» в разделе «Графики» выберите «Параллельные координаты». Можно видеть, что длина лепестка и ширина лепестка являются особенностями, которые лучше всего разделяют классы.

    Parallel coordinates plot

  19. Чтобы узнать о настройках модели, выберите модель на панели Модели (Models) и просмотрите дополнительные настройки. Неоптимизируемые опции модели в галерее Тип модели (Model Type) являются предварительно заданными начальными точками, и можно изменить дальнейшие настройки. На вкладке «Классификатор» в разделе «Тип модели» нажмите кнопку «Дополнительно». Сравните простые и средние модели дерева на панели Модели (Models) и просмотрите различия в диалоговом окне Дополнительные опции дерева (Advanced Tree Options). Параметр «Максимальное количество разбиений» определяет глубину дерева.

    Чтобы попытаться улучшить модель грубого дерева, попробуйте изменить параметр Максимальное количество разбиений (Maximum Number of Splits), а затем обучить новую модель, нажав кнопку Обучить (Train).

    Просмотрите настройки выбранной обучаемой модели на панели Сводка текущей модели (Current Model Summary) или в диалоговом окне Дополнительно (Advanced).

  20. Чтобы экспортировать в рабочее пространство модель с наилучшим обучением, на вкладке «Ученик по классификации» в разделе «Экспорт» нажмите кнопку «Экспорт модели». В диалоговом окне Экспорт модели (Export Model) нажмите кнопку ОК, чтобы принять имя переменной по умолчанию. trainedModel.

    Просмотрите информацию о результатах в окне команд.

  21. Для визуализации модели дерева решений введите:

    view(trainedModel.ClassificationTree,'Mode','graph')

    Classification tree

  22. Экспортированный классификатор можно использовать для прогнозирования новых данных. Например, чтобы сделать прогнозы для fishertable в рабочей области введите:

    yfit = trainedModel.predictFcn(fishertable)
    Продукция yfit содержит прогнозирование класса для каждой точки данных.

  23. Если вы хотите автоматизировать обучение одного и того же классификатора новыми данными или научиться программно обучать классификаторов, вы можете создать код из приложения. Чтобы создать код для лучшей обученной модели, на вкладке «Классификатор» в разделе «Экспорт» нажмите кнопку «Создать функцию».

    Приложение генерирует код из модели и отображает файл в редакторе MATLAB. Дополнительные сведения см. в разделе Создание кода MATLAB для обучения модели новым данным.

В этом примере используются данные радужки Фишера 1936 года. Данные радужки содержат измерения цветков: длины лепестка, ширины лепестка, длины чашелистика и ширины чашелистика для экземпляров из трёх видов. Обучить классификатор предсказывать виды на основе предикторных измерений.

Используйте тот же рабочий процесс для оценки и сравнения других типов классификаторов, которые можно обучить в Classification Learner.

Чтобы попробовать все неоптимизуемые стили модели классификатора, доступные для набора данных:

  1. Щелкните стрелку справа в разделе Тип модели (Model Type), чтобы развернуть список классификаторов.

  2. Щелкните Все (All), затем щелкните Поезд (Train).

    Option selected for training all available classifier types

Сведения о других типах классификаторов см. в разделе Модели классификации поездов в приложении Classification Learner App.

Связанные темы