Как устроено нормальное распределение вероятностей при бинарной классификации
Что проверяют
Понимаете ли вы генеративный взгляд на классификацию: модель описывает, как устроены признаки внутри каждого класса, а вероятность класса получается по формуле Байеса. Следом обычно спрашивают, как это связано с логистической регрессией и что будет, если признаки не нормальны.
Как отвечать
Схема такая: для каждого класса предполагаем, что признаки распределены нормально, P(x|y=k) = N(μ_k, Σ_k). Параметры оцениваем методом максимального правдоподобия: выборочное среднее и ковариация по объектам класса, априорная вероятность P(y=k) это доля класса. Апостериорная вероятность пропорциональна произведению правдоподобия на априорную, класс выбираем порогом на ней.
Из этой схемы вырастают три модели:
- Gaussian Naive Bayes: признаки независимы при фиксированном классе, ковариация диагональная, у каждого признака своё среднее и дисперсия. В sklearn это
GaussianNB, параметрvar_smoothingдобавляет к дисперсиям долю от наибольшей из них, чтобы не делить на ноль; - LDA: ковариация общая для обоих классов. Квадратичные члены сокращаются, граница получается линейной, а
P(y=1|x)оказывается сигмоидой от линейной функции, то есть той же формой, что у логистической регрессии; - QDA: у каждого класса своя ковариация, граница квадратичная, параметров больше, и данных нужно больше.
Сильный ход: сравнить с логистической регрессией. Она дискриминативная и нормальности признаков не требует, а LDA делает сильное предположение. Если оно верно, LDA эффективнее на малых выборках, если нет, логистическая регрессия устойчивее. В probit-модели вместо сигмоиды стоит функция распределения стандартной нормальной величины.
Где спотыкаются
Утверждают, что логистическая регрессия предполагает нормальность признаков. Не предполагает, это свойство LDA и наивного Байеса.
Проверяют нормальность тестом Шапиро-Уилка на сотнях тысяч строк. На больших выборках он отвергает гипотезу из-за любого мелкого отклонения, полезнее посмотреть Q-Q plot и качество модели на валидации.
Доверяют вероятностям GaussianNB как откалиброванным. Из-за предположения о независимости они часто прижаты к 0 и 1, поэтому их калибруют через CalibratedClassifierCV.