Обучите наивные классификаторы Байеса Используя приложение Classification Learner

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

Наивные классификаторы Байеса усиливают теорему Бейеса и делают предположение, что предикторы независимы друг от друга в каждом классе. Однако классификаторы, кажется, работают хорошо, даже когда предположение независимости не допустимо. Можно использовать наивного Бейеса с двумя или больше классами в Classification Learner. Приложение позволяет вам обучать Гауссову наивную модель Бейеса или ядро наивная модель Бейеса индивидуально или одновременно.

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

МодельЧисловой предикторКатегориальный предиктор
Гауссов наивный БейесРаспределение Гаусса (или нормальное распределение)многомерное распределение многочлена
Ядро наивный БейесРаспределение ядра
Можно задать тип ядра и поддержку. Classification Learner автоматически определяет ширину ядра с помощью базового fitcnb функция.
многомерное распределение многочлена

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

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

    fishertable = readtable('fisheriris.csv');
  2. Кликните по вкладке Apps, и затем кликните по стреле справа от раздела Apps, чтобы открыть галерею Apps. В группе Machine Learning and Deep Learning нажмите Classification Learner.

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

    Classification Learner tab

  4. В диалоговом окне New Session выберите таблицу fishertable из списка Data Set Variable (при необходимости).

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

    New Session dialog box

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

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

    Scatter plot of the Fisher iris data.

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

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

  7. Создайте наивную модель Bayes. На вкладке Classification Learner, в разделе Model Type, кликают по стреле, чтобы открыть галерею. В группе Naive Bayes Classifiers нажмите Gaussian Naive Bayes. Обратите внимание на то, что Classification Learner отключает кнопку Advanced в разделе Model Type, потому что этот тип модели не имеет никаких расширенных настроек.

    Gaussian Naive Bayes model type selected

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

    Совет

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

    Приложение создает Гауссову наивную модель Bayes и строит результаты.

    Отображение приложения модель Gaussian Naive Bayes в Списке предыстории. Проверяйте счет проверки допустимости модели в поле Accuracy. Счет показывает, что модель выполняет хорошо.

    Для модели Gaussian Naive Bayes, по умолчанию, приложение моделирует распределение числовых предикторов с помощью Распределения Гаусса и моделирует распределение категориальных предикторов с помощью многомерного распределения многочлена (MVMN).

    Scatter plot of the Fisher iris data modeled by a Gaussian Naive Bayes
                            classifier. Correctly classified points are marked with an O.
                            Incorrectly classified points are marked with an X.

    Примечание

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

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

  9. Обучите ядро наивная модель Bayes сравнению. На вкладке Classification Learner, в разделе Model Type, нажимают Kernel Naive Bayes. Обратите внимание на то, что Classification Learner включает кнопку Advanced, потому что этот тип модели имеет расширенные настройки.

    Kernel Naive Bayes model type selected

    Отображения приложения черновое ядро наивная модель Bayes в Списке предыстории.

    В разделе Model Type нажмите Advanced, чтобы изменить настройки в Усовершенствованном Наивном Байесовом меню параметров. Выберите Triangle из списка Kernel Type, и выбирают Positive из списка Support.

    Advanced naive Bayes options selected

    Примечание

    Настройки в Усовершенствованном Наивном Байесовом меню параметров доступны для текущих данных только. Указывание на Kernel Type отображается, подсказка "Указывают, что функция сглаживания Ядра для непрерывных переменных", и указывающий на Support отображает, подсказка "Задают Ядро, сглаживающее поддержку плотности непрерывных переменных".

    В разделе Training нажмите Train, чтобы обучить новую модель.

    Scatter plot of the Fisher iris data modeled by a Kernel Naive Bayes
                            classifier. Correctly classified points are marked with an O.
                            Incorrectly classified points are marked with an X.

    Список предыстории теперь включает новое ядро наивная модель Bayes. Его счет проверки допустимости модели лучше, чем счет к Гауссовой наивной модели Bayes. Приложение подсвечивает счет Accuracy лучшей модели путем выделения его в поле.

  10. В Списке предыстории кликните по каждой модели, чтобы просмотреть и сравнить результаты.

  11. Обучите Гауссову наивную модель Bayes и ядро наивная модель Bayes одновременно. На вкладке Classification Learner, в разделе Model Type, нажимают All Naive Bayes. Classification Learner отключает кнопку Advanced. В разделе Training нажмите Train.

    All Naive Bayes model type selected

    Приложение обучает один из каждого наивного типа модели Бейеса и подсвечивает счет Accuracy лучшей модели или моделей.

    Scatter plot of the Fisher iris data modeled by a Gaussian Naive Bayes
                            classifier. The History panel on the left shows the accuracy for each
                            model.

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

  13. Чтобы смотреть точность предсказаний в каждом классе, на вкладке Classification Learner, в разделе Plots, нажимают Confusion Matrix. Отображения приложения матрица истинного класса и предсказанных результатов класса.

    Confusion matrix plot for the Kernel Naive Bayes model

    Примечание

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

  14. В Списке предыстории кликните по другим моделям и сравните их результаты.

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

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

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

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

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

    Список предыстории теперь включает модель 4. Это - также ядро наивная модель Bayes, обученное использование только 2 из 4 предикторов.

  16. Чтобы определить, какие предикторы включены, кликните по модели в Списке предыстории, затем нажмите Feature Selection в разделе Features и примечании, какие флажки устанавливаются. Модель только с измерениями чашелистика (модель 4) имеет намного более низкий счет Accuracy, чем модели, содержащие все предикторы.

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

    Confusion matrix plot for the Kernel Naive Bayes model with two of the
                            four features selected. The History panel on the left shows the accuracy
                            for each model.

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

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

  19. В Списке предыстории кликните по модели с самым высоким счетом Accuracy. Чтобы улучшить модель далее, попытайтесь изменить наивные настройки Bayes (при наличии). На вкладке Classification Learner, в разделе Model Type, нажимают Advanced. Вспомните, что кнопка Advanced включена только для некоторых моделей. Измените настройки, затем обучите новую модель путем нажатия на Train.

  20. Экспортируйте обученную модель в рабочую область. На вкладке Classification Learner, в разделе Export, выбирают Export Model > Export Model. См. Модель Классификации Экспорта, чтобы Предсказать Новые Данные.

  21. Исследуйте код на обучение этот классификатор. В разделе Export нажмите Generate Function.

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

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

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

  2. В группе Get Started нажмите All, затем нажмите Train в разделе Training.

    Option selected for training all available classifier types

Для получения информации о других типах классификатора смотрите, Обучают Модели Классификации в Приложении Classification Learner.

Похожие темы