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

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

Схема

  1. Вероятности
  2. правило Байеса
  3. Создание классификатора твитов

Вероятности

Предположим, у нас есть корпус, содержащий 20 твитов, из которых 13 примеров отмечены как позитивные, а 7 — как негативные, как показано на рисунке ниже.

Событие — это набор результатов эксперимента (подмножество выборочного пространства), которому присваивается вероятность. Тогда A — это событие, определяемое всеми положительными твитами в корпусе, т. е. A = {Positive}. Чтобы рассчитать вероятность того, что произойдет определенное событие, вы берете количество этого конкретного события и делите его на сумму всех событий. Вероятность возникновения А равна:

Представьте, что слово «счастливый» иногда обозначается как положительное, а иногда — как отрицательное.

Имея это в виду, давайте определим новое событие, в котором встречается слово «счастливый», т. е. B={«счастливый» возникает. Таким образом, вероятность возникновения В равна:

Мы также можем рассчитать вероятность того, что твиты будут помечены как положительные, а также содержать слово «счастливый», то есть вероятность пересечения двух предыдущих примеров (A и B). Математически мы имеем,

правило Байеса

Чтобы вывести правило Байеса, мы должны сначала понять условную вероятность, и для этого мы собираемся использовать то же пространство выборки, которое использовалось ранее. Предположим, что наше пространство теперь уменьшено до всех твитов в корпусе, содержащих слово «счастливый».

Учитывая это, чтобы рассчитать вероятность того, что твит будет положительным, учитывая, что он содержит слово «счастливый», мы просто делим количество положительных твитов, а также учитываем слово «счастливый»:

Мы могли бы применить ту же идею в противоположном случае, т. е. мы хотим вычислить вероятность того, что слово «счастливый» встречается среди положительных твитов.

Условная вероятность рассчитывается по следующей формуле:

В более общем смысле мы можем определить условную вероятность как меру вероятности возникновения события X при условии, что другое событие Y уже произошло, что помогает нам сократить выборочное пространство поиска. Это можно понять по формуле:

С небольшими математическими манипуляциями мы имеем,

Подставляя последнее уравнение в числитель предпоследнего уравнения, мы в конечном итоге определяем уравнение правила Байеса:

Наивный Байес

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

В вероятностных терминах модель классификатора задается условной моделью:

Используя правило Байеса, мы пишем

Приведенное выше уравнение можно понимать как

На практике знаменатель является константой, так как не зависит от переменных класса (Y). Числитель эквивалентен совместной вероятностной модели

Теперь в сцену вступают «наивные» предположения об условной независимости, где каждый признак условно независим от любого другого признака, поэтому совместная модель может быть выражена как

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

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

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

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

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

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

Шаг 0. Сбор данных

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

Шаг 1. Создайте словарь частотности слов

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

Шаг 2. Рассчитайте вероятность каждого класса

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

Когда мы вычисляем отношение правдоподобия, некоторые вероятности равны нулю, что может привести к делению на ноль. Чтобы избежать этого, введем сглаживание по Лапласу, что даст нам новое уравнение

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

Шаг 3. Рассчитайте априор

Далее мы можем вычислить априорную вероятность. Априорная вероятность представляет собой базовую вероятность в целевой группе того, что твит является положительным, а не отрицательным. Другими словами, если бы у нас не было конкретной информации и мы вслепую выбрали твит из множества населения, какова вероятность того, что он будет положительным по сравнению с тем, что он будет отрицательным? Это "предыдущий",

где D — это общее количество документов (или, в данном случае, твитов), а числитель каждого уравнения представляет собой количество положительных и отрицательных документов соответственно.

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

Шаг 4. Рассчитайте отношение правдоподобия

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

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

Шаг 5. Вывод

Как только мы рассчитали логарифмическую вероятность, становится просто сделать вывод:

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

В приведенном выше примере показано, как мы можем сделать прогноз, используя вашу таблицу частоты слов. В этом примере логарифмический априор равен 0, потому что у нас одинаковое количество положительных и отрицательных примеров (т. е. логарифм 1 = 0).

Дальнейшее чтение