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

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

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

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

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

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

    fishertable = readtable('fisheriris.csv');
  2. На вкладке Apps, в группе Machine Learning, нажимают Classification Learner.

  3. На вкладке Classification Learner, в разделе File, нажимают New Session.

  4. В диалоговом окне New Session выберите таблицу fishertable из списка рабочих областей.

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

  5. Чтобы принять схему валидации по умолчанию и продолжиться, нажмите Start Session. Опция валидации по умолчанию является перекрестной проверкой, чтобы защитить от сверхподбора кривой.

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

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

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

  7. Чтобы создать модель дерева классификации, на вкладке Classification Learner, в разделе Model Type, кликают по стрелке вниз, чтобы расширить галерею и нажать Coarse Tree. Затем нажмите Train.

    Совет

    Если у вас есть Parallel Computing Toolbox™ затем в первый раз, когда вы нажимаете Train, вы видите диалоговое окно, в то время как приложение открывает параллельный пул рабочих. После того, как пул открывается, можно обучить несколько классификаторов целиком и продолжить работать.

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

    Наблюдайте модель Coarse Tree в Списке предыстории. Проверяйте счет проверки допустимости модели в поле Accuracy. Модель выполнила хорошо.

    Примечание

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

  8. Исследуйте график рассеивания. X указывает на неправильно классифицированные точки. Синие точки (разновидности setosa) все правильно классифицируются, но некоторые из других двух разновидностей неправильно классифицируются. Под Plot, переключателем между Data и опциями Model Predictions. Наблюдайте цвет неправильного (X) точки. Также, в то время как графический вывод образцовых прогнозов, чтобы просмотреть только неправильные точки, снимает флажок Correct.

  9. Обучите различную модель выдерживать сравнение. Нажмите Medium Tree, и затем нажмите Train.

    Когда вы нажимаете Train, отображения приложения новая модель в Списке предыстории.

  10. Наблюдайте модель Medium Tree в Списке предыстории. Счет проверки допустимости модели не лучше, чем крупный древовидный счет. Приложение обрисовывает в общих чертах в поле счет Accuracy лучшей модели. Кликните по каждой модели в Списке предыстории, чтобы просмотреть и сравнить результаты.

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

  12. Выберите Coarse Tree в Списке предыстории. Чтобы попытаться улучшить модель, попробуйте включая различные функции в модели. Смотрите, можно ли улучшить модель путем удаления функций с низкой предсказательной силой.

    На вкладке Classification Learner, в разделе Features, нажимают Feature Selection.

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

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

  13. Наблюдайте третью модель в Списке предыстории. Это - также модель Coarse Tree, обученное использование только 2 из 4 предикторов. Список предыстории отображается, сколько предикторов исключено. Чтобы проверять, какие предикторы включены, кликните по модели в Списке предыстории и наблюдайте флажки в диалоговом окне Feature Selection. Модель только с измерениями чашелистика имеет намного более низкий счет точности, чем модель только для лепестков.

  14. Обучите другую модель только включая лепестковые измерения. Измените выборы в диалоговом окне Feature Selection и нажмите Train.

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

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

  16. Выберите лучшую модель среди тех из подобных очков путем исследования производительности в каждом классе. Выберите крупное дерево, которое включает все предикторы. Чтобы осмотреть точность прогнозов в каждом классе, на вкладке Classification Learner, в разделе Plots, нажимают Confusion Matrix. Используйте этот график понять, как в настоящее время выбранный классификатор выполнил в каждом классе. Просмотрите матрицу истинного класса и предсказанных результатов класса.

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

    Примечание

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

    В этой фигуре исследуйте третью ячейку в средней строке. В этой ячейке истинным классом является versicolor, но модель неправильно классифицировала точки как virginica. Для этой модели ячейка показывает 3 неправильно классифицированных (ваши результаты могут отличаться). Чтобы просмотреть проценты вместо количеств наблюдений, выберите опцию True Positive Rates под средствами управления Plot..

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

  17. Сравните матрицу беспорядка для каждой модели в Списке предыстории. Установите диалоговый флажок Feature Selection, чтобы видеть, какие предикторы включены в каждую модель.

  18. Чтобы исследовать функции, чтобы включать или исключить, используйте график рассеивания и параллельный график координат. На вкладке Classification Learner, в разделе Plots, нажимают Parallel Coordinates Plot. Вы видите, что лепестковая длина и лепестковая ширина являются функциями, которые разделяют классы лучше всего.

  19. Чтобы узнать об образцовых настройках, выберите модель в Списке предыстории и просмотрите расширенные настройки. Опции в галерее Model Type являются предварительно установленными отправными точками, и можно изменить дальнейшие настройки. На вкладке Classification Learner, в разделе Model Type, нажимают Advanced. Сравните простые и средние древовидные модели в истории и наблюдайте различия в Усовершенствованном Древовидном Окне параметров. Установка Maximum Number of Splits управляет древовидной глубиной.

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

    Просмотрите настройки для выбранной обученной модели в панели Текущей модели, или в диалоговом окне Advanced.

  20. Чтобы экспортировать лучшую обученную модель в рабочую область, на вкладке Classification Learner, в разделе Export, нажимают Export Model. В диалоговом окне Export Model нажмите OK, чтобы принять имя переменной по умолчанию trainedModel.

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

  21. Визуализировать вашу модель дерева принятия решения, введите:

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

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

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

  23. Если вы хотите автоматизировать обучение тот же классификатор с новыми данными или изучить, как программно обучить классификаторы, можно сгенерировать код из приложения. Чтобы сгенерировать код для лучшей обученной модели, на вкладке Classification Learner, в разделе Export, нажимают Generate Function.

    Приложение генерирует код из вашей модели и отображает файл в редакторе MATLAB. Чтобы узнать больше, смотрите, Генерируют код MATLAB, чтобы Обучить Модель с Новыми Данными.

Этот пример использует 1 936 ирисовых данных Фишера. Ирисовые данные содержат измерения цветов: лепестковая длина, лепестковая ширина, длина чашелистика и ширина чашелистика для экземпляров от трех разновидностей. Обучите классификатор предсказывать разновидности на основе измерений предиктора.

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

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

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

  2. Нажмите All, затем нажмите Train.

Чтобы узнать о других типах классификатора, см. Модели Классификации Train в Приложении Classification Learner.

Похожие темы