Odpowiedzi:
KNN jest algorytmem dyskryminującym, ponieważ modeluje warunkowe prawdopodobieństwo próby należącej do danej klasy. Aby to zobaczyć, zastanów się, jak przejść do reguły decyzyjnej kNN.
Etykieta klasa odpowiada zbiór punktów, które należą do pewnego obszaru w przestrzeni cech . Jeśli losujesz punkty próbne z rzeczywistego rozkładu prawdopodobieństwa p ( x ) niezależnie, wówczas prawdopodobieństwo wyciągnięcia próbki z tej klasy wynosi P = ∫ R p ( x ) d x
Co jeśli masz punktów? Prawdopodobieństwo, że K punktów tych N punktów przypada w obszarze R, jest zgodne z rozkładem dwumianowym, P r o b ( K ) = ( N
Ponieważ ten rozkład jest ostro pikowany, więc prawdopodobieństwo można przybliżać za pomocą jego średniej wartości K . Dodatkowym przybliżeniem jest to, że rozkład prawdopodobieństwa dlaRpozostaje w przybliżeniu stały, tak że można przybliżać całkę o, P=∫Rp(x)dx≈p(x)V, gdzieVjest całkowitą objętością regionu. Poniżej tych przybliżeńp(x)≈K
Gdybyśmy mieli kilka klas, moglibyśmy powtórzyć tę samą analizę dla każdej z nich, co dałoby nam gdzieKkjest liczbą punktów z klasyk,która mieści się w tym regionie, aNkjest całkowitą liczbą punktów należących do klasyCk. WskazówkiΣKNK=N.
Powtarzając analizę z rozkładem dwumianowym, łatwo zauważyć, że możemy oszacować wcześniejsze .
Odpowiedź @jpmuc wydaje się nieprawdziwa. Modele generatywne modelują rozkład podstawowy P (x / Ci), a następnie wykorzystują twierdzenie Bayesa do znalezienia prawdopodobieństw późniejszych. To jest dokładnie to, co zostało pokazane w tej odpowiedzi, a następnie konkluduje dokładnie odwrotnie. : O
Aby KNN był modelem generatywnym, powinniśmy mieć możliwość generowania danych syntetycznych. Wydaje się, że jest to możliwe, gdy będziemy mieli pewne dane dotyczące szkolenia początkowego. Ale rozpoczęcie od braku danych treningowych i wygenerowanie danych syntetycznych nie jest możliwe. Dlatego KNN nie pasuje dobrze do modeli generatywnych.
Można argumentować, że KNN jest modelem dyskryminującym, ponieważ możemy narysować granicę dyskryminacyjną dla klasyfikacji lub obliczyć tylną P (Ci / x). Ale wszystko to jest prawdą również w przypadku modeli generatywnych. Prawdziwy model dyskryminujący nie mówi nic o podstawowej dystrybucji. Ale w przypadku KNN wiemy dużo o podstawowej dystrybucji, w rzeczywistości przechowujemy cały zestaw treningowy.
Wygląda więc na to, że KNN znajduje się w połowie drogi między modelami generatywnymi a dyskryminacyjnymi. Prawdopodobnie dlatego KNN nie jest zaliczany do żadnego z generatywnych lub dyskryminujących modeli w renomowanych artykułach. Nazwijmy je modelami nieparametrycznymi.
Natknąłem się na książkę, która mówi coś przeciwnego ( tj. Generatywny nieparametryczny model klasyfikacji)
Oto link online: Machine Learning A Probabilistic Perspective autorstwa Murphy, Kevin P. (2012)
Zgadzam się, że kNN jest dyskryminujący. Powodem jest to, że nie przechowuje jawnie lub próbuje nauczyć się (probabilistycznego) modelu, który wyjaśnia dane (w przeciwieństwie do np. Naive Bayes).
Odpowiedź autorstwa juampa myli mnie, ponieważ według mnie klasyfikator generatywny to taki, który próbuje wyjaśnić, w jaki sposób generowane są dane (np. Przy użyciu modelu), a ta odpowiedź mówi, że z tego powodu jest dyskryminujący ...