Я реализую простой наивный байесовский классификатор, но не понимаю, как правильно рассчитать условную вероятность класса (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» во всех (сцепленных) документах?