Что такое наивный байесовский классификатор
Что проверяют
Понимаете ли вы, откуда берётся формула, и что именно в этом методе наивного. Для инженера данных важно ещё и второе: почему такой простой классификатор до сих пор держат как базовую линию перед тем, как тянуть тяжёлую модель.
Как отвечать
Классификатор выбирает класс с наибольшей апостериорной вероятностью. По теореме Байеса она пропорциональна произведению априорной вероятности класса на правдоподобие признаков при этом классе; знаменатель одинаков для всех классов и при сравнении отбрасывается. Наивность в допущении: признаки считаются независимыми внутри класса, поэтому совместное правдоподобие раскладывается в произведение по отдельным признакам.
Два следствия, которые и ждут услышать. Произведение множества малых вероятностей уходит в машинный ноль, поэтому на практике складывают логарифмы. Признак, ни разу не встреченный в классе, обнуляет всё произведение, поэтому применяют аддитивное сглаживание.
Варианты под тип данных: мультиномиальный для счётчиков слов, бернуллиевский для бинарных признаков, гауссовский для непрерывных, где для каждого класса оценивают среднее и разброс.
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import make_pipeline
model = make_pipeline(TfidfVectorizer(), MultinomialNB(alpha=1.0))
model.fit(texts_train, y_train)Сильные стороны: обучение за один проход, работа на очень широких разреженных признаках, приемлемое качество на малой выборке.
Где спотыкаются
Утверждают, что при зависимых признаках метод не работает. На деле для выбора класса он часто остаётся приемлемым даже при грубо нарушенном допущении: страдает не столько порядок классов, сколько сами значения вероятностей.
Берут выданную вероятность за чистую монету. Оценки переуверенные и липнут к нулю и единице, поэтому порог по ним подбирать нельзя без калибровки, а сравнивать с порогами другой модели тем более.
Обучают векторизатор и считают сглаживание на всей выборке до разделения на обучающую и тестовую части. Словарь видит тестовые тексты, качество на бумаге выше реального, и на новых данных модель оказывается заметно хуже.