Код Middle Вероятность и Байес обновлено

Наивный Байес по словам

Условие

Обучающие письма заданы списком [слова, метка], метка "spam" или "ham". Напишите nb_predict(train, words): мультиномиальный наивный Байес со сглаживанием Лапласа (+1 к каждому счётчику слова, словарь это все слова обучения). Слова вне словаря игнорируйте. Верните P(spam | words), округлённую до 4 знаков. Считайте в логарифмах.

Примеры

nb_predict([[["free", "win"], "spam"], [["meeting", "today"], "ham"]], ["free"]) // 0.6667
nb_predict([[["free", "win"], "spam"], [["meeting", "today"], "ham"]], ["unknown"]) // 0.5
nb_predict([[["free", "money", "free"], "spam"], [["free", "lunch"], "ham"], [["project", "meeting"], "ham"]], ["free", "meeting"]) // 0.3219

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.