В этом примере показано, как создавать и сравнивать различные наивные классификаторы Байеса с помощью приложения Classification Learner и экспортировать обученные модели в рабочую область для прогнозирования новых данных.
Наивные классификаторы Байеса используют теорему Байеса и делают предположение, что предикторы независимы друг от друга в каждом классе. Однако классификаторы, по-видимому, работают хорошо, даже если предположение о независимости является недействительным. Наивный байес можно использовать с двумя или более классами в Classification Learner. Приложение позволяет обучать гауссову наивную модель Байеса или ядро наивной модели Байеса индивидуально или одновременно.
В этой таблице перечислены доступные наивные модели Байеса в Classification Learner и распределения вероятностей, используемые каждой моделью для соответствия предикторам.
| Модель | Числовой предиктор | Категориальный предиктор |
|---|---|---|
| Гауссов наивный Байес | Гауссово распределение (или нормальное распределение) | многомерное полиномиальное распределение |
| Кернел наивный Байес | Распространение ядра Можно указать тип ядра и поддержку. Classification Learner автоматически определяет ширину ядра с помощью базового fitcnb функция. | многомерное полиномиальное распределение |
В этом примере используется набор данных радужки Фишера, который содержит измерения длины цветков (длины лепестка, ширины лепестка, длины чашелистика и ширины чашелистика) для образцов из трёх видов. Обучите наивных байесовских классификаторов предсказывать виды на основе измерений предиктора.
В окне команд MATLAB ® загрузите набор данных радужки Фишера и создайте таблицу предикторов измерений (или функций) с использованием переменных из набора данных.
fishertable = readtable('fisheriris.csv');Перейдите на вкладку Приложения и щелкните стрелку справа от раздела Приложения, чтобы открыть галерею приложений. В группе Machine Learning and Deep Learning выберите Classification Learner.
На вкладке «Классификатор» в разделе «Файл» выберите «Новый сеанс» > «Из рабочей области».

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

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

Используйте график рассеяния, чтобы выяснить, какие переменные полезны для прогнозирования ответа. Выберите различные опции в списках X и Y в разделе Предикторы для визуализации распределения видов и измерений. Обратите внимание, какие переменные наиболее четко разделяют цвета видов.
setosa виды (голубые точки) легко отделить от двух других видов со всеми четырьмя предикторами. versicolor и virginica виды гораздо ближе друг к другу во всех предикторных измерениях и перекрываются, особенно когда вы строите график длины и ширины чашелистика. setosa легче предсказать, чем два других вида.
Создать наивную модель Байеса. На вкладке «Классификатор» в разделе «Тип модели» щелкните стрелку, чтобы открыть галерею. В группе Naive Bayes Classifiers щелкните Gaussian Naive Bayes. Обратите внимание, что модуль Classification Learner отключает кнопку Advanced в разделе Model Type, поскольку этот тип модели не имеет дополнительных настроек.

В разделе Обучение щелкните Обучение.
Приложение создает гауссовскую наивную модель Байеса и строит графики результатов.
Приложение отобразит модель Гаусса Наивного Байеса в области Модели. Отметьте балл проверки модели в поле Точность (Validation). Оценка показывает, что модель работает хорошо.
Для гауссовской модели Найва Байеса приложение по умолчанию моделирует распределение числовых предикторов с использованием гауссова распределения, а моделирует распределение категориальных предикторов с использованием многомерного полиномиального распределения (MVMN).

Примечание
Проверка вносит некоторую случайность в результаты. Результаты проверки модели могут отличаться от результатов, показанных в этом примере.
Изучите график рассеяния. Символ X указывает неправильно классифицированные точки. Синие точки (setosa виды) все правильно классифицированы, но два других вида имеют неправильно классифицированные точки. В разделе График (Plot) переключитесь между опциями Прогнозирование данных (Data) и Модель (Model). Обратите внимание на цвет неправильных точек (X). Чтобы просмотреть только неверные точки, снимите флажок «Исправить».
Обучить ядро наивной модели Байеса для сравнения. На вкладке Classification Learner в разделе Model Type выберите Kernel Naive Bayes. Обратите внимание, что Classification Learner включает кнопку Advanced, так как этот тип модели имеет расширенные настройки.

Приложение отображает черновик наивной модели Байеса в области Модели.
В разделе Тип модели (Model Type) щелкните Дополнительно (Advanced), чтобы изменить настройки в диалоговом окне Дополнительные параметры Naive Bayes (Advanced Naive Bayes Options). Выбрать Triangle в списке Тип ядра и выберите Positive из списка поддержки.

Примечание
Настройки в диалоговом окне Дополнительные параметры Naive Bayes доступны только для непрерывных данных. При указании типа ядра отображается подсказка «Specify Kernel smoothing function for continuous variables», а при указании «Support» - подсказка «Specify Kernel smoothing density support for continuous variables».
В разделе Обучение щелкните Обучение, чтобы обучить новую модель.

Панель «Модели» теперь включает новую наивную модель Байеса ядра. Его оценка валидации модели лучше, чем оценка для гауссовской наивной модели Байеса. Приложение выделяет оценку точности (валидации) лучшей модели, помещая ее в рамку.
На панели Модели (Models) щелкните каждую модель, чтобы просмотреть и сравнить результаты.
Тренировать гауссовскую наивную модель Байеса и ядро наивной модели Байеса одновременно. На вкладке «Классификатор» в разделе «Тип модели» выберите «Все наивные байы». Classification Learner отключает кнопку Advanced. В разделе Обучение щелкните Обучение.

Приложение обучает одного из каждого наивного типа модели Байеса и выделяет показатель точности (валидации) лучшей модели или моделей.

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

Примечание
Проверка вносит некоторую случайность в результаты. Результаты матрицы путаницы могут отличаться от результатов, показанных в этом примере.
На панели Модели (Models) щелкните другие модели и сравните их результаты.
На панели Модели (Models) щелкните модель с наивысшим показателем Точность (Validation) (Accuracy (Validation)). Чтобы улучшить модель, попробуйте изменить ее элементы. Например, посмотрите, можно ли улучшить модель, удалив элементы с низкой прогнозируемой мощностью.
На вкладке «Классификатор» в разделе «Элементы» выберите «Выбор элементов».
В диалоговом окне Выбор элемента (Feature Selection) снимите флажки для параметров PetalLength и PetalWidth, чтобы исключить их из предикторов. Новая модель чертежа (модель 4) появляется на панели «Модели» с новыми настройками (2/4 функции), основанными на наивной модели Байеса ядра (модель 3.2).

В разделе Обучение щелкните Обучение, чтобы обучить новое ядро наивной модели Байеса с использованием новых опций предиктора.
Теперь панель Модели (Models) включает модель 4. Это также наивная модель Байеса, обученная с использованием только 2 из 4 предикторов.
Чтобы определить, какие предикторы включены, щелкните модель на панели Модели (Models), затем щелкните Выбор элемента (Feature Selection) в разделе Элементы (Features) и обратите внимание, какие флажки установлены. Модель с только сепальными измерениями (модель 4) имеет гораздо более низкую оценку точности (валидация), чем модели, содержащие все предикторы.
Тренируйте еще одну наивную модель Байеса, включающую только измерения лепестков. Измените выбор в диалоговом окне Выбор элемента (Feature Selection) и нажмите кнопку Поезд (Train).

Модель, обученная с использованием только измерений лепестков (модель 5), работает сопоставимо с моделью, содержащей все предикторы. Модели предсказывают не лучше, используя все измерения по сравнению только с измерениями лепестков. Если сбор данных является дорогостоящим или сложным, вы можете предпочесть модель, которая работает удовлетворительно без некоторых предикторов.
Чтобы исследовать элементы для включения или исключения, используйте график параллельных координат. На вкладке «Классификатор» в разделе «Графики» выберите «Параллельные координаты».
На панели Модели (Models) щелкните модель с наивысшим показателем Точность (Validation) (Accuracy (Validation)). Чтобы улучшить модель, попробуйте изменить наивные настройки Байеса (если они доступны). На вкладке «Классификатор» в разделе «Тип модели» нажмите кнопку «Дополнительно». Напомним, что кнопка Advanced включена только для некоторых моделей. Измените настройку, а затем обучите новую модель, щелкнув Поезд (Train).
Экспорт обученной модели в рабочую область. На вкладке «Классификатор» в разделе «Экспорт» выберите «Экспорт модели» > «Экспорт модели». См. раздел Экспорт модели классификации для прогнозирования новых данных.
Изучите код для обучения этому классификатору. В разделе Экспорт (Export) щелкните Создать функцию (Generate Function).
Используйте тот же рабочий процесс для оценки и сравнения других типов классификаторов, которые можно обучить в Classification Learner.
Чтобы попробовать все неоптимизуемые стили модели классификатора, доступные для набора данных:
Щелкните стрелку в разделе Тип модели (Model Type), чтобы открыть галерею классификаторов.
В группе Начало работы щелкните Все, затем щелкните Обучение в разделе Обучение.

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