Я использую Naive Bayes в текстовой классификации.
Предположим, что мой словарный запас ["яблоко", "мальчик", "чашка"] и метка класса "спам" или "ветчина". Каждый документ будет покрыт трехмерным вектором 0-1. Например, «apple boy apple apple» будет преобразовано в [1,1,0]
Теперь я вычислил условную вероятность p("яблоко"|"спам"), p("яблоко"|"ветчина"), p("мальчик"|"спам")... и т.д. из обучающих примеров.
Чтобы проверить, является ли документ спамом или ветчиной, например «яблочный мальчик» -> [1,1,0], нам нужно вычислить p(features | classLabel)
Используйте условную независимость для тестового вектора [1,1,0]
Я знаю две формулы
(1) p(особенности|"ветчина") = p("яблоко"|"ветчина")p("мальчик"|"ветчина")
(2) p(особенности|"ветчина") = p("яблоко"|"ветчина")p("мальчик"|"ветчина")(1-p("чашка"|"ветчина"))
какая формула верна?
Я считаю, что (2) правильно, потому что у нас есть 3 функции (на самом деле 3 слова в словаре). Но я вижу коды, написанные другими с использованием (1). Хотя термин 1-p("чашка"|"ветчина") почти равен 1, так что это не будет иметь большого значения, но мне нужен точный ответ.