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

Теорема Байеса

Прежде чем перейти к теореме Байеса, давайте рассмотрим некоторые соответствующие термины.

Предельная вероятность — вероятность того, что произойдет событие из любого набора. Обозначается P(A).

Условная вероятность — вероятность возникновения события при условии, что произошло другое событие. Обозначается как P(A|B).

Совместная вероятность — вероятность одновременного возникновения события из множества A и события из множества B. Обозначается P(A ∩ B).

Теорема Байеса утверждает P(A|B) = P(B|A)P(A) / P(B)

При применении наивного байесовского алгоритма машинного обучения нас интересует гипотеза с наибольшими условными вероятностями каждой гипотезы, а не точное значение условных вероятностей каждой гипотезы. Следовательно, в контексте байесовской статистики событие A называется гипотезой, обозначаемой буквой H, а событие B называется свидетельством, обозначаемым буквой E. Теперь, применяя то же самое, то же уравнение можно переписать как

P(H|E) = P(E|H) P(H) / P(E)

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

Функция правдоподобия – это вероятность того, что доказательства верны при условии, что гипотеза верна. В теореме Байеса это обозначается как P(E|H).

Априорная вероятность – это вероятность того, что гипотеза окажется верной до того, как появятся доказательства. Обозначается P(H).

Апостериорная вероятность – это вероятность того, что гипотеза окажется верной после просмотра доказательств. Обозначается P(H|E).

И, наконец, Константа нормализации гарантирует, что после рассмотрения всех гипотез и расчета их условных вероятностей сумма всех апостериорных вероятностей будет равна 1.

Пример ветчины или спама

Наиболее распространенным примером проблемы классификации является классификация сообщения Ham-Spam. Допустим, у нас есть обучающий набор данных из 50 ветчин и 50 спам-сообщений. Предельные (априорные) вероятности того, что электронное письмо является спамом или спамом, равны P(ветчина) = P(спам) = 1/2. Предположим, что слова «победитель» нет ни в одном спам-сообщении. Таким образом, даже если входящее сообщение содержит слово «победитель», оно не будет учитываться моделью, поскольку условная вероятность того, что сообщение является спамом, будет равна 0. Чтобы исправить это, вводится параметр сглаживания (альфа) и установите его значение равным 1 (сглаживание по Лапласу). Назначение этого параметра — увеличить количество каждого слова для обеих категорий.

Этапы создания модели

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

  1. Создать фрейм данных — это первый шаг к созданию фрейма данных, в котором организованы все входные и целевые значения.
  2. Очистка данных — на этом этапе нам нужно удалить выбросы, если они есть. В противном случае это может привести к неправильной классификации образцов. Еще одна вещь, которую нам нужно сделать на этом шаге, — очистить все нулевые значения. Если количество выборок с нулевыми значениями меньше 5%, то их можно безопасно удалить, иначе нам нужно применить статистические методы для их заполнения.
  3. Разделить данные — разделить данные на наборы для обучения и тестирования (очень распространенное разделение — 80:20). Он используется, чтобы избежать переобучения.
  4. Обработка данных. Подготовьте данные, применяя различные методы обработки данных для классификатора. Дополнительные сведения о данных и методах обработки см. в разделе Обработка данных и EDA.
  5. Выполните классификацию — примените соответствующий классификатор, подберите обучающие данные и настройте гиперпараметры.
  6. Оценка производительности модели. После создания модели нам необходимо оценить ее производительность. Для оценки мы можем использовать различные показатели, такие как точность, достоверность, полнота и оценка F1. Чтобы узнать больше о метриках, прочитайте Актуальные метрики для задач классификации.

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