Дискриминативная модель сразу проводит границу. Порождающий классификатор рассказывает, как каждый класс создаёт признаки, а затем сравнивает эти рассказы по правилу Байеса. Форма облаков становится частью решения.

Два вида ириса как два облака

Пусть xx содержит длину и ширину лепестка, а yy — вид ириса. Вместо прямого моделирования P(yx)P(y\mid x) зададим для каждого класса плотность p(xy=k)p(x\mid y=k) и prior P(y=k)P(y=k). После измерения цветка

P(y=kx)=p(xy=k)P(y=k)jp(xy=j)P(y=j).P(y=k\mid x)= \frac{p(x\mid y=k)P(y=k)} {\sum_jp(x\mid y=j)P(y=j)}.

Класс выбирают по максимальному числителю. Знаменатель одинаков для всех kk, поэтому границу определяет сравнение

logp(xy=a)+logP(y=a)=logp(xy=b)+logP(y=b).\log p(x\mid y=a)+\log P(y=a) = \log p(x\mid y=b)+\log P(y=b).

Prior сдвигает решение даже при одинаковой форме облаков: редкому классу нужно более убедительное совпадение признаков.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Два облака ирисов с эллипсами равной плотности, центрами и линией равного posterior
Рис. 54.1. Класс как плотность, а не только цвет точек

Оси — длина и ширина лепестка. Эллипсы показывают уровни p(xy=k)p(x\mid y=k), кресты — средние классов. Чёрная граница проходит там, где prior-взвешенные плотности равны; она не обязана лежать ровно посередине центров.

LDA: общая форма разброса

Linear Discriminant Analysis предполагает

xy=kN(μk,Σ)x\mid y=k\sim N(\mu_k,\Sigma)

с разными средними μk\mu_k, но общей ковариацией Σ\Sigma. Логарифм нормальной плотности содержит квадрат

(xμk)Σ1(xμk)/2.-(x-\mu_k)^\top\Sigma^{-1}(x-\mu_k)/2.

При сравнении классов общий член xΣ1x/2-x^\top\Sigma^{-1}x/2 сокращается. Остаётся линейная дискриминантная функция

δk(x)=xΣ1μk12μkΣ1μk+logπk.\delta_k(x)= x^\top\Sigma^{-1}\mu_k -\frac12\mu_k^\top\Sigma^{-1}\mu_k +\log\pi_k.

Поэтому граница LDA линейна. Ковариация определяет метрику: отличие вдоль шумного направления считается слабее, чем такое же евклидово отличие вдоль стабильного.

QDA: каждому классу своя геометрия

Quadratic Discriminant Analysis допускает

xy=kN(μk,Σk).x\mid y=k\sim N(\mu_k,\Sigma_k).

Квадратичные члены больше не сокращаются, и граница становится кривой. Модель способна описать компактный класс внутри рассеянного или облака с разными ориентациями. Цена — отдельная матрица ковариации для каждого класса, то есть гораздо больше параметров.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Две панели одинаковых точек: LDA использует параллельные эллипсы и прямую, QDA разные эллипсы и кривую границу
Рис. 54.2. Одна ковариация LDA и две ковариации QDA

Слева общая Σ\Sigma заставляет эллипсы иметь одинаковую форму, и граница прямая. Справа Σ1,Σ2\Sigma_1,\Sigma_2 различны, поэтому равенство дискриминантов содержит квадраты координат и огибает компактное облако.

Лаборатория эллипсов

LDA, QDA и редкий класс

Загружается живая иллюстрация…

Сначала сделайте ковариации классов одинаковыми: LDA и QDA должны дать близкие границы, но QDA будет оценивать лишние параметры. Затем растяните один класс по диагонали. Наконец уменьшите его prior и проследите, как область решения сжимается без движения самих точек.

Цена prior и цена ошибки

Prior πk\pi_k описывает частоту класса в целевой популяции. Если модель обучалась на искусственно сбалансированной выборке, обучающая доля не является естественным prior. Для применения нужно вернуть реальную распространённость.

При разных потерях даже posterior максимум не оптимален. Решение aa выбирают по минимальному условному риску

R(ax)=kc(a,k)P(y=kx).R(a\mid x)=\sum_k c(a,k)P(y=k\mid x).

Получается ясное разделение труда: generative model оценивает вероятности, prior адаптирует популяцию, а матрица цен задаёт действие. Это разделение повторяет геометрию и пороги и будет формализовано в уроке о риске.

Naive Bayes: смелая независимость

Для текста с тысячами признаков полную ковариацию оценить невозможно. Naive Bayes предполагает условную независимость:

p(xy=k)=jp(xjy=k).p(x\mid y=k)=\prod_jp(x_j\mid y=k).

Для счётчиков слов используют мультиномиальную модель и сглаживание из урока 48. Независимость слов явно неверна: «машинное» и «обучение» встречаются вместе. Но классификатор часто хорошо ранжирует, потому что грубое произведение накапливает сигнал.

Вероятности могут быть плохо калиброваны: зависимые свидетельства учитываются несколько раз. Поэтому качество класса и качество численного posterior нужно проверять отдельно.

Порождающая модель умеет работать с пропусками

Если один признак отсутствует, generative model может маргинализовать его:

p(xobsy=k)=p(xobs,xmissy=k)dxmiss.p(x_{\text{obs}}\mid y=k)= \int p(x_{\text{obs}},x_{\text{miss}}\mid y=k)\,dx_{\text{miss}}.

Для многомерной нормали наблюдаемая подгруппа координат снова нормальна с соответствующими частями среднего и ковариации. Это естественнее, чем подставлять среднее без учёта класса.

Однако механизм пропуска важен. Если лаборатория чаще не измеряет дорогой анализ у здоровых пациентов, сам факт пропуска несёт информацию. Тогда нужно моделировать индикатор измерения или включать его как признак.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Два двумерных нормальных облака и их одномерные проекции на ось наблюдаемого признака для объекта без второй координаты
Рис. 54.3. Маргинализация пропущенного признака

Слева классы разделены в плоскости (x1,x2)(x_1,x_2). У нового объекта известен только x1x_1, поэтому справа сравниваются проекции плотностей на эту ось. Неизвестная координата интегрируется, а не заменяется одной точкой.

Связь с логистической регрессией

Для двух нормальных классов с общей ковариацией log-odds posterior линейны:

logP(y=1x)P(y=0x)=wx+b.\log\frac{P(y=1\mid x)}{P(y=0\mid x)}=w^\top x+b.

Значит, LDA и логистическая регрессия имеют одинаковую форму границы, но оценивают параметры по-разному. LDA моделирует p(xy)p(x\mid y) и может быть эффективнее, если нормальная история верна. Логистическая регрессия моделирует только P(yx)P(y\mid x) и не обязана описывать распределение признаков.

При большом объёме и неверной нормальности дискриминативная модель часто устойчивее. При малом объёме и хорошем generative предположении LDA использует структуру сильнее. Выбор делается по диагностике и честной validation, а не по ярлыку «старый» или «современный». За пределами поддержанных облаков обеим нужна отдельная карта неопределённости.

Реальный пример: отклик на сообщение

Для анонимизированной кампании признаки включают время отправки, историю активности и тип сообщения, класс — отклик в течение суток. Generative model может описать распределения активности у откликнувшихся и нет, а prior — реальную редкую долю отклика.

Нельзя включать признаки, появившиеся после отправки, и считать повторные сообщения одному человеку независимыми. Ковариация может различаться по классам, но QDA при сотнях признаков неустойчива; помогает shrinkage covariance между общей и отдельной матрицей.

Итог

Порождающий классификатор моделирует признаки внутри класса и prior классов, затем применяет Байеса. LDA получает линейную границу из общей ковариации, QDA — квадратичную из отдельных. Naive Bayes заменяет сложную совместную плотность произведением. Сильная сторона подхода — содержательная модель облаков, пропусков и сдвига prior; слабая — цена неверных распределительных предположений.

Как редкий prior двигает границу LDA

Рассмотрим один признак. Для обычного класса XY=0N(0,1)X\mid Y=0\sim N(0,1), для редкого — XY=1N(2,1)X\mid Y=1\sim N(2,1). Отношение плотностей имеет линейный логарифм:

logp(x1)p(x0)=2x2.\log\frac{p(x\mid1)}{p(x\mid0)}=2x-2.

При равных prior граница posterior P(Y=1x)=1/2P(Y=1\mid x)=1/2 проходит через x=1x=1. Теперь пусть редкий класс встречается лишь в 2%2\% случаев. К log-likelihood ratio добавляется log(0,02/0,98)3,89\log(0{,}02/0{,}98)\approx-3{,}89, поэтому граница сдвигается к

x=112log0,020,982,95.x_* = 1-\frac12\log\frac{0{,}02}{0{,}98}\approx2{,}95.

Наблюдение x=2x=2 ближе к среднему редкого класса, но при таком prior всё ещё не достигает posterior 1/21/2: похожий сигнал часто возникает среди гораздо более многочисленных обычных объектов.

Если обучающую таблицу искусственно сбалансировали, а в production сохранились 2%2\%, граница x=1x=1 даст множество ложных тревог. Исправить её можно возвращением реального prior в формулу, не переоценивая гауссовы плотности. Этот маленький расчёт отделяет форму классов от частоты их появления.

Задачи