Ответы:
KNN является дискриминационным алгоритмом, поскольку он моделирует условную вероятность выборки, принадлежащей данному классу. Чтобы увидеть это, просто подумайте, как можно добраться до правила принятия решений kNN.
Метка класса соответствует множеству точек, принадлежащих некоторой области в пространстве признаков . Если вы рисуете точки выборки из фактического распределения вероятностей, p ( x ) , независимо, то вероятность получения выборки из этого класса составляет P = ∫ R p ( x).
Что делать, если у вас есть очков? Вероятность того, что K точек из этих N точек попадет в область R, следует биномиальному распределению, P r o b ( K ) = ( N
При это распределение резко достигает максимума, так что вероятность может быть аппроксимирована его средним значением K . Дополнительное приближение состоит в том, что распределение вероятностей поRостается приблизительно постоянным, так что можно приблизить интеграл к P=∫Rp(x)dx≈p(x)V, гдеV- общий объем области. В этом приближенииp(x)≈
Теперь, если бы у нас было несколько классов, мы могли бы повторить один и тот же анализ для каждого, что дало бы нам гдеKk- количество баллов из классаk,которое попадает в этот регион, аNk- общее количество баллов, принадлежащих классуCk. ПримечаниеΣкNк=N.
Повторяя анализ с биномиальным распределением, легко видеть, что мы можем оценить предшествующее .
Используя правило Байеса,
Ответ @jpmuc не совсем точный. Генеративные модели моделируют базовое распределение P (x / Ci), а затем используют теорему Байеса для нахождения апостериорных вероятностей. Это именно то, что было показано в этом ответе, а затем заключает с точностью до наоборот. : O
Чтобы KNN была генеративной моделью, мы должны иметь возможность генерировать синтетические данные. Кажется, что это возможно, когда у нас есть некоторые начальные данные тренировки. Но начинать с тренировочных данных и генерировать синтетические данные невозможно. Таким образом, KNN не подходит для генеративных моделей.
Можно утверждать, что KNN является дискриминационной моделью, потому что мы можем нарисовать дискриминантную границу для классификации, или мы можем вычислить апостериорную P (Ci / x). Но все это верно и в случае генеративных моделей. Истинная дискриминационная модель ничего не говорит о базовом распределении. Но в случае с KNN мы много знаем о базовом распределении, фактически мы храним весь обучающий набор.
Таким образом, кажется, что KNN находится на полпути между порождающей и дискриминационной моделями. Вероятно, именно поэтому KNN не относится ни к одной из порождающих или дискриминационных моделей в известных статьях. Давайте просто назовем их непараметрическими моделями.
Я прийти через книгу , которая говорит обратная ( т.е. Generative Непараметрической Классификация модель)
Это онлайн-ссылка: Машинное обучение вероятностная перспектива , Мерфи, Кевин П. (2012)
Я согласен, что КНН является дискриминационным. Причина в том, что он не хранит явно или не пытается изучить (вероятностную) модель, которая объясняет данные (в отличие от, например, Наивного Байеса).
Ответ Джуампы сбивает меня с толку, поскольку, насколько я понимаю, генеративный классификатор - это тот, который пытается объяснить, как генерируются данные (например, с использованием модели), и этот ответ говорит, что он является дискриминационным по этой причине ...