Наивный Байес для спама
Вопрос
Расскажите, как устроен наивный байесовский классификатор спама, как его обучают и где у него слабые места.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Байес: P(спам | слова) ∝ P(спам)·Π P(слово | спам)
Обучение это подсчёт частот слов по классам
Сглаживание Лапласа против нулевых вероятностей
Сумма логарифмов вместо произведения
Слабость: условная независимость нарушена, вероятности плохо откалиброваны
Что могут спросить следом
- Что будет со словом, которого не было в обучении?
- Почему вероятности наивного Байеса часто близки к 0 или 1?
Разбор
По Байесу P(спам | письмо) пропорционально P(спам), умноженному на правдоподобие письма. Наивное допущение: слова условно независимы при известном классе, поэтому правдоподобие распадается в произведение P(слово | класс). Обучение сводится к подсчёту: доля спама среди писем и частота каждого слова в спаме и не-спаме. Чтобы невиданное в классе слово не обнуляло всё произведение, добавляют сглаживание Лапласа: к каждому счётчику +1. Считают в логарифмах: произведение тысяч маленьких чисел ушло бы в машинный ноль, а сумма логарифмов стабильна. Сильные стороны: очень быстрый, нужен небольшой объём данных, хороший бейзлайн для текстов. Слабое место: слова на самом деле зависимы, поэтому модель «пересчитывает» одни и те же улики, и её вероятности часто близки к 0 или 1, то есть плохо откалиброваны, хотя ранжирует неплохо.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.