Лаплас Сглаживающий для Бернулли модель для наивного байесовского классификатора

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

prob (t | c) = Num (вхождения слова в документах класса c) + 1 / Num(документы в классе c) + |V|

Это модель Бернулли, которая будет иметь либо 1, либо 0, а словарь действительно большой, например, около 20000 слов и так далее. Так что, не будет ли сглаживание по методу лапласа давать действительно маленькие значения из-за большого размера словарного запаса, или я делаю что-то не так.

Согласно коду псевдо из этой ссылки: http://nlp.stanford.edu/IR-book/html/htmledition/the-bernoulli-model-1.html, для модели Бернулли мы просто добавляем 2 вместо | V |, Почему так?

1 ответ

Решение

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

В случае многомерного / Бернулли есть дополнительное ограничение: вероятности ровно 1 также не допускаются. Это потому, что когда некоторые t из известного словаря нет в документе dвероятность 1 - prob(t | c) умножается на вероятность документа. Если prob(t | c) равен 1, то еще раз это будет производить апостериорную вероятность 0.

(Аналогично, при использовании журналов вместо log(1 - prob(t | c)) не определено, когда вероятность равна 1)

Так в уравнении Бернулли (Nct + 1) / (Nc + 2)Оба случая защищены от. Если Nct == Nc, тогда вероятность будет 1/2, а не 1. Это также имеет следствие получения вероятности 1/2 независимо от того, t существует (P(t | c) == 1/2) или нет (1 - P(t | c) == 1/2)

Другие вопросы по тегам