Классификатор NaiveBayes: нужно ли объединять все файлы одного класса?

Я реализую простой наивный байесовский классификатор, но не понимаю, как правильно рассчитать условную вероятность класса (P(d|c)). Просто для полноты я хотел бы коротко пояснить используемую терминологию. Наивные байесовские вероятности вычисляются следующим образом:

введите здесь описание изображения

c обозначает произвольный класс, а d — документ. Пусть x = {x1,x2,...,xn} будет списком из n функций, например. 50 наиболее часто встречающихся биграмм).

В моем тренировочном наборе есть i классов (представленных папкой с именем c_i), и каждый из них имеет k документов (представленных обычными текстовыми файлами).

априорную вероятность P(c) можно легко рассчитать:

введите здесь описание изображения

Теперь я хочу вычислить P(d|c). Это должно быть сделано

введите здесь описание изображения

Теперь я плохо понимаю, как вычислить P(x_i|c). Я беру функцию x_i (скажем, биграмму «th») и теперь проверяю, как часто она появляется в классе c. Но как мне это сделать? Каждый класс представлен k документами. Должен ли я объединять все эти файлы? Позже мне обязательно придется делить на «общее количество всех функций». Будет ли это частота биграммы «th» во всех (сцепленных) документах?


person null    schedule 14.06.2015    source источник


Ответы (1)


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

person nojka_kruva    schedule 15.06.2015