Является ли KNN дискриминационным алгоритмом обучения?


17

Кажется, что KNN - это дискриминационный алгоритм обучения, но я не могу найти никаких онлайн-источников, подтверждающих это.

Является ли KNN дискриминационным алгоритмом обучения?

Ответы:


19

KNN является дискриминационным алгоритмом, поскольку он моделирует условную вероятность выборки, принадлежащей данному классу. Чтобы увидеть это, просто подумайте, как можно добраться до правила принятия решений kNN.

Метка класса соответствует множеству точек, принадлежащих некоторой области в пространстве признаков . Если вы рисуете точки выборки из фактического распределения вероятностей, p ( x ) , независимо, то вероятность получения выборки из этого класса составляет P = R p ( x).рп(Икс)

пзнак равнорп(Икс)dИкс

Что делать, если у вас есть очков? Вероятность того, что K точек из этих N точек попадет в область R, следует биномиальному распределению, P r o b ( K ) = ( NNКNр

проб(К)знак равно(NК)пК(1-п)N-К

При это распределение резко достигает максимума, так что вероятность может быть аппроксимирована его средним значением KN . Дополнительное приближение состоит в том, что распределение вероятностей поRостается приблизительно постоянным, так что можно приблизить интеграл к P=Rp(x)dxp(x)V, гдеV- общий объем области. В этом приближенииp(x)КNр

пзнак равнорп(Икс)dИксп(Икс)В
Вп(Икс)КNВ .

Теперь, если бы у нас было несколько классов, мы могли бы повторить один и тот же анализ для каждого, что дало бы нам гдеKk- количество баллов из классаk,которое попадает в этот регион, аNk- общее количество баллов, принадлежащих классуCk. ПримечаниеΣкNк=N.

п(Икс|СК)знак равноККNКВ
КККNКСКΣКNКзнак равноN

Повторяя анализ с биномиальным распределением, легко видеть, что мы можем оценить предшествующее .п(СК)знак равноNКN

Используя правило Байеса,

п(СК|Икс)знак равноп(Икс|СК)п(СК)п(Икс)знак равноККК
которое является правилом для kNN.

2
Ссылка не содержит никакой информации о KNN. Это правильный?
Bayerj

1
Я имел в виду это, чтобы выразить то, что понимается для дискриминационного алгоритма против генеративного.
jpmuc

5

Ответ @jpmuc не совсем точный. Генеративные модели моделируют базовое распределение P (x / Ci), а затем используют теорему Байеса для нахождения апостериорных вероятностей. Это именно то, что было показано в этом ответе, а затем заключает с точностью до наоборот. : O

Чтобы KNN была генеративной моделью, мы должны иметь возможность генерировать синтетические данные. Кажется, что это возможно, когда у нас есть некоторые начальные данные тренировки. Но начинать с тренировочных данных и генерировать синтетические данные невозможно. Таким образом, KNN не подходит для генеративных моделей.

Можно утверждать, что KNN является дискриминационной моделью, потому что мы можем нарисовать дискриминантную границу для классификации, или мы можем вычислить апостериорную P (Ci / x). Но все это верно и в случае генеративных моделей. Истинная дискриминационная модель ничего не говорит о базовом распределении. Но в случае с KNN мы много знаем о базовом распределении, фактически мы храним весь обучающий набор.

Таким образом, кажется, что KNN находится на полпути между порождающей и дискриминационной моделями. Вероятно, именно поэтому KNN не относится ни к одной из порождающих или дискриминационных моделей в известных статьях. Давайте просто назовем их непараметрическими моделями.


Я не согласен. «Генеративные классификаторы изучают модель совместной вероятности p (x, y) входных данных x и метки y и делают свои прогнозы, используя правила Байеса для вычисления p (ylx), а затем выбирают наиболее вероятную метку y Дискриминационные классификаторы моделируют апостериорный p (ylx) напрямую или изучают прямую карту от входов x до меток классов ". См. «О дискриминационных и генеративных классификаторах: сравнение логистической регрессии и наивного байесовского.
jpmuc


1

Я согласен, что КНН является дискриминационным. Причина в том, что он не хранит явно или не пытается изучить (вероятностную) модель, которая объясняет данные (в отличие от, например, Наивного Байеса).

Ответ Джуампы сбивает меня с толку, поскольку, насколько я понимаю, генеративный классификатор - это тот, который пытается объяснить, как генерируются данные (например, с использованием модели), и этот ответ говорит, что он является дискриминационным по этой причине ...


1
Генеративная модель изучает P (Ck, X), поэтому вы можете генерировать больше данных, используя это совместное распределение. Напротив, дискриминационная модель изучит P (Ck | X). На это @juampa указывает KNN.
Жубарб

1
Во время классификации как генеративные, так и дискриминационные заканчивают тем, что используют условные вероятности для предсказаний. Однако порождающие классификаторы изучают общую вероятность и по байесовскому правилу вычисляют условное выражение, тогда как в дискриминационном классификатор либо непосредственно вычисляет условное выражение, либо обеспечивает максимально приближенное к нему приближение.
Рапайо
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.