Формула Байеса.
Допустим, у нас есть таблица слов. Нам известно, сколько каких слов встречалось в письмах и сколько всего было писем. Таким образом, мы можем вычислить вероятность встречания каждого слова.
Кроме того, у нас есть оценка пользователя, какие письма были спамом. Таким образом мы можем рассчитать в общем вероятность того, что данное письмо является спамом.
Рассмотрим слово "покупайте".
P(A) - вероятность (вообще) того, что письмо окажется спамом.
P(B) - вероятность (вообще) того, что встретится слово "покупайте".
P(B|A) - вероятность того, что слово "покупайте" встретится в спамовом письме.
Формула Байеса даёт нам возможность рассчитать
P(A|B) - вероятность того, что письмо является спамом если в нём встретилось слово "покупайте".
Правильно?
Но как обобщить на много слов? Допустим, у нас есть данные не только по слову "покупайте", но и по слову "английский".
Что теперь делать? Считать вероятности сочетаний?
Если считать, что P(B) - это произведение вероятностей встречания слов "покупайте" и "английский", то не получится ли, что формула может дать величину больше 1?
Добавлено спустя 1 час 21 минуту 57 секунд:
Допустим, мы получили два письма. В одном было одно слово, в другом другое. Вероятность каждого слова 50%.
Допустим, второе письме, допустим, со словом "покупайте", было объявлено спамом. То есть, вроятность спама по нашим данным тоже пока 50%.
Получается, для второго письма
P(B|A) - вероятность наличия "покупайте" без "английский" в спаме 100%.
P(A) - вероятность спама 50%
P(B) - вероятность наличия одного слова и присутствия другого всего, полученная путём перемножения вероятностей равна 25%.
В итоге формула дает 2, то есть, больше 1.
Получается, что причина в том, что мы пренебрегли зависимостью между словами. Но не можем же мы учитывать все комбинации всех слов! Как же быть?