Решение проблемы нулевой вероятности в наивном байесовском алгоритме

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

Эта статья построена на предположении, что у вас есть базовое понимание Наивного Байеса. Я написал статью о Наивном Байесе. Не стесняйтесь проверить это.



Пример

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

Просмотр запроса = w1 w2 w3 w ’

В нашем обзоре запроса есть четыре слова, и предположим, что в данных обучения присутствуют только w1, w2 и w3. Так что у нас будет вероятность этих слов. Чтобы определить, является ли отзыв положительным или отрицательным, мы сравниваем P (положительный | отзыв) и P (отрицательный | отзыв).

В таблице правдоподобия у нас есть P (w1 | положительный), P (w2 | Положительный), P (w3 | Положительный) и P (положительный). Подождите, а где же P (w ’| положительный)?

Если слово отсутствует в обучающем наборе данных, то у нас нет его вероятности. Что нам делать?

Подход1: игнорируйте термин P (w ’| положительный).

Игнорирование означает, что мы присваиваем ему значение 1, что означает, что вероятность появления w ’при положительном P (w’ | положительном) и отрицательном обзоре P (w ’| отрицательном) равна 1. Этот подход кажется логически неверным.

Подход 2- В модели мешка слов мы подсчитываем появление слов. Вхождений слова w ’в обучении равно 0. В соответствии с этим

P (w ’| положительный) = 0 и P (w’ | отрицательный) = 0, но это сделает как P (положительный | отзыв), так и P (отрицательный | отзыв) равными 0, поскольку мы умножаем все вероятности. Это проблема нулевой вероятности. Итак, как решить эту проблему?

Сглаживание Лапласа

Сглаживание Лапласа - это метод сглаживания, который решает проблему нулевой вероятности в Наивном Байесе. Используя сглаживание Лапласа, мы можем представить P (w ’| положительный) как

Здесь
alpha представляет параметр сглаживания,
K представляет количество измерений (функций) в данных, а
N представляет количество отзывов с y = положительным

Если мы выберем значение alpha! = 0 (не равное 0), вероятность больше не будет равна нулю, даже если слово отсутствует в наборе обучающих данных.

Интерпретация изменения альфы

Скажем, слово w встречается в 3 раза, где y = положительный результат в обучающих данных. Предположим, у нас есть 2 функции в нашем наборе данных, то есть K = 2 и N = 100 (общее количество положительных отзывов).

Случай 1-, когда альфа = 1

P (w ’| положительный результат) = 3/102

Случай 2-, когда альфа = 100

P (w ’| положительный) = 103/300

Случай 3-, когда альфа = 1000

P (w ’| положительный) = 1003/2100

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

Заключение

Сглаживание Лапласа - это метод сглаживания, который помогает решить проблему нулевой вероятности в алгоритме машинного обучения Наивного Байеса. Использование более высоких значений альфа подтолкнет вероятность к значению 0,5, то есть вероятность слова равна 0,5 как для положительных, так и для отрицательных отзывов. Поскольку мы не получаем от этого много информации, это нежелательно. Поэтому предпочтительно использовать альфа = 1.

Спасибо за прочтение!