Наивный алгоритм Байеса в машинном обучении

Наивный алгоритм байесовского классификатора

Наивный алгоритм байесовского классификатора

Классификатор — это алгоритм машинного обучения, который классифицирует данные по одному или нескольким наборам «классов». Классификатор электронной почты — это один из примеров классификатора, который сканирует электронные письма и фильтрует их по метке класса: «Спам» или «Не спам».

Наивный байесовский классификатор в машинном обучении — это контролируемое машинное обучение для задач классификации.

Наивный алгоритм байесовского классификатора

Наивный Байес используется для решения задач классификации. Он прогнозирует на основе вероятности объекта. Наивный Байес основан на теореме Байеса и в основном используется для классификации текста. Наивный Байес — это алгоритм вероятностной классификации, который легко реализовать и быстро обучать.

Поскольку наивный байесовский классификатор основан на теореме Байеса, он известен как вероятностный классификатор. Он прогнозирует на основе вероятности элемента.

Причина, по которой вас называют наивным Байесом?

Классификатор Наивного Байеса состоит из двух слов: Наивный и Байесовский. Почему ВМС? Этот алгоритм рассматривает все предложения со словами как одинаковые. Например, «Вы» и «Вы» одинаковы для этого алгоритма. Это не зависит от особенностей или наличия признаков. Если вы хотите идентифицировать фрукт «Яблоко», вам нужен красный цвет, сферическая форма и сладкий вкус, чтобы распознать яблоко. Это означает, что эти функции независимы друг от друга.

  • Наивный классификатор Байеса предполагает, что признаки независимы друг от друга. Поскольку в реальных данных это редко возможно, поэтому классификатор называется наивным.
  • Этот алгоритм классификации основан на теореме Байеса, так называемой наивный классификатор Байеса.

Наивная теорема Байеса

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

Чтобы понять теорему Байеса, давайте посмотрим на простой пример байесовского классификатора: подбрасывание двух монет. Мы можем получить эти выборочные пространства, подбросив две монеты: {HH, HT, TH, TT}. Итак, вероятности этих событий будут:

  • Получение двух голов = 1/4
  • Хотя бы один хвост = 3/4
  • Вторая монета имеет решку, учитывая, что первая монета имеет решку = 1/2.
  • Получение двух орлов, учитывая, что первая монета - орел = 1/2.

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

P(A|B) = (P(B|A) * P(A)) / P(B)

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

  • Вам нужно найти вероятность события А, которая дается, когда событие Б (доказательство) истинно.
  • P(A) — это априори (априори, т. е. вероятность наблюдаемого события до доказательства) события A. Здесь событие B — это значение неизвестного экземпляра.
  • P(A|B) — апостериорная вероятность события B, т. е. вероятность события после рассмотрения доказательств.

Рабочий пример классификатора Наивного Байеса

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

Dataset

Рабочий пример наивного байесовского классификатора

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

Рабочий пример наивного байесовского классификатора

Шаг 1) Мы создадим таблицы частот для каждого атрибута, используя типы входных данных, упомянутые в наборе данных, такие как дни, скидки и бесплатная доставка.

Рабочий пример наивного байесовского классификатора

Пусть событие «Купить» обозначим как «А», а независимые переменные, а именно «Скидка», «Бесплатная доставка» и «День», обозначим как «Б». Мы будем использовать эти события и переменные, чтобы применить теорему Байеса.

Шаг 2) Теперь давайте посчитаем таблицы правдоподобия одну за другой.

Рабочий пример наивного байесовского классификатора

Пример 1:

На основе этой таблицы правдоподобия мы рассчитаем условные вероятности, как показано ниже.

P(A) = P(No Buy) = 6/30 = 0.2
P(B) = P(Weekday) = 11/30 = 0.37
P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33

И найдите P(A/B) с помощью теоремы Байеса:

P(A/B)
= P(No Buy / Weekday)
= P(Weekday / No Buy) * P(No Buy) / P(Weekday)
= (2/6 * 6/30) / (11/30)
= 0.1818

Аналогично, если A — покупка, то

= P(Buy / Weekday)
= P(Weekday / Buy) * P(Buy) / P(Weekday)
= (9/24 * 24/30) / (11/30)
= 0.8181

Примечание: Поскольку P(Купить | Будний день) больше, чем P(Нет покупки | Будний день), мы можем заключить, что покупатель, скорее всего, купит товар в будний день.

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

Рабочий пример классификатора Наивного Байеса

Пример 2:

Теперь, используя эти три таблицы вероятности, мы рассчитаем, вероятно ли, что клиент совершит покупку, основываясь на определенной комбинации «День», «Скидка» и «Бесплатная доставка».

Здесь давайте возьмем комбинацию этих факторов:

  • День = Праздник
  • Скидка = Да
  • Бесплатная доставка = Да

Когда А = Купить

Рассчитайте условную вероятность покупки при следующей комбинации дня, скидки и бесплатной доставки.

Где Б:

  • День = Праздник
  • Скидка = Да
  • Бесплатная доставка = Да

И А = Купить

Следовательно,

= P(A/B)
= P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30)
= 0.986

Когда A = Нет покупки

Аналогично рассчитайте условную вероятность покупки при следующей комбинации дня, скидки и бесплатной доставки.

Где Б:

  • День = Праздник
  • Скидка = Да
  • Бесплатная доставка = Да

И A = Нет покупки

Следовательно,

= P(A/B)
= P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30)
= 0.027

Шаг 4) Следовательно,

Вероятность покупки = 0.986

Вероятность отсутствия покупки = 0.027.

Наконец, у нас есть условные вероятности покупки в этот день. Давайте теперь обобщим эти вероятности, чтобы получить вероятность событий.

  • Сумма вероятностей = 0.986 + 0.027 = 1.013
  • Вероятность покупки = 0.986/1.013 = 97.33 %.
  • Вероятность отсутствия покупки = 0.027/1.013 = 2.67 %.

Обратите внимание, что 97.33% больше, чем 2.67%. Можно сделать вывод, что среднестатистический покупатель купит в праздник со скидкой и бесплатной доставкой.

Типы наивной модели Байеса

Существует много типов наивных классификаторов Байеса. Здесь мы обсудили мультиномиальные классификаторы, классификаторы Бернулли и гауссовские наивные байесовские классификаторы.

1. Полиномиальный наивный байесовский анализ

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

2. Наивный байесовский метод Бернулли

Это похоже на полиномиальный Наивный Байес. Классификатор Бернулли Наивного Байеса используется для задач классификации документов. Однако он использует логические предикторы. Он показывает, присутствует ли слово или нет, и принимает только значения «Да» или «Нет». Классификатор вычисляет вероятности на основе того, встречается ли слово в тексте или нет.

3. Гауссовский наивный байесовский метод

Этот классификатор используется в случае непрерывного значения, а не дискретного значения. Этот классификатор вычисляет вероятности, используя параметры Гауссовым распределение, то есть среднее значение и дисперсия.

Гауссовский наивный байесовский

Формула условной вероятности изменится на:

Гауссовский наивный байесовский

Преимущества и ограничения наивного байесовского классификатора

Алгоритм Наивного Байеса в машинном обучении имеет различные преимущества и недостатки.

Преимущества наивного байесовского классификатора

  • Простота и эффективность: Наивный Байес прост в обучении и реализации. Это эффективно из-за низких вычислительных затрат. Он может эффективно обрабатывать большие наборы данных.
  • Быстрое обучение и прогнозирование: Наивный Байес не требует такого большого количества обучающих данных из-за независимости между функциями. Он может быстро прогнозировать, как только модель будет обучена.
  • Масштаб: Наивный Байес может обрабатывать многомерные наборы данных с большим количеством функций. Он работает хорошо, даже если количество функций превышает количество обучающих примеров. Он масштабируется в зависимости от количества точек данных и предикторов. Он обрабатывает как непрерывные, так и дискретные данные.
  • Устойчивость к несущественным функциям: Он не чувствителен к несущественным функциям.
  • Хорошо работает с небольшими обучающими наборами: Наивный байесовский метод может обеспечить приемлемые результаты даже при ограниченных данных обучения. Он может обрабатывать ситуации, когда количество обучающих экземпляров невелико. Для этого не требуется так много обучающих данных.

Ограничение наивного байесовского классификатора

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

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

Применение наивного байесовского классификатора

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

Обнаружение спама

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

Анализ настроений

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

Классификация документов

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

Рекомендательные Системы

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

Этот алгоритм классификатора также используется в распознавании лиц, прогнозировании погоды, медицинской диагностике, покупках, классификации новостей и т. д. Вы можете реализовать наивный Байес в Python. Существует наивный байесовский классификатор sklearn, т.е. sklearn.naive_bayes. Это модуль, реализующий этот алгоритм.

Заключение

Наивные алгоритмы Байеса в машинном обучении — это классификаторы, которые чаще всего используются для обнаружения спама, классификации новостей, анализа настроений, прогнозирования погоды, покупок и т. д. Наивные алгоритмы Байеса основаны на теореме Байеса. Этот алгоритм прост и легок в реализации. Поскольку он быстрый, мы можем использовать его в приложениях реального времени. Его самым большим недостатком является то, что он предполагает независимые функции (поскольку независимые функции редко возможны в реальной жизни, поэтому он известен как наивный). Он рассматривает каждую функцию как равноценную. Чтобы преодолеть этот недостаток, вы можете использовать другие классификаторы, такие как дерево решений, случайный лес, машина опорных векторов (SVM) и т. д.