Antworten:
KNN ist ein Unterscheidungsalgorithmus, da es die bedingte Wahrscheinlichkeit einer Stichprobe modelliert, die zu einer bestimmten Klasse gehört. Um dies zu sehen, muss man nur überlegen, wie man zur Entscheidungsregel der kNNs gelangt.
Eine Klassenbezeichnung entspricht einer Menge von Punkten, die zu einer Region im Merkmalsraum . Wenn Sie unabhängig Stichprobenpunkte aus der tatsächlichen Wahrscheinlichkeitsverteilung , ist die Wahrscheinlichkeit, eine Stichprobe aus dieser Klasse zu ziehen, p ( x ) P = ∫ R p ( x ) d x
Was ist, wenn Sie Punkte haben? Die Wahrscheinlichkeit, dass Punkte dieser Punkte in den Bereich folgt der Binomialverteilung: K N R P R o b ( K ) = ( N
Als diese Verteilung scharf gespitzt, so dass die Wahrscheinlichkeit durch ihren Mittelwert angenähert werden kann . Eine zusätzliche Annäherung ist, dass die Wahrscheinlichkeitsverteilung über annähernd konstant bleibt, so dass man das Integral durch annähern kann, wobei das Gesamtvolumen von ist Region. Unter diesen Annäherungen ist .K RP=∫Rp(x)dx≈p(x)VVp(x)≈K
Wenn wir nun mehrere Klassen hätten, könnten wir die gleiche Analyse für jede wiederholen, was uns wobei ist die Anzahl der Punkte aus der Klasse die in diese Region fallen, und ist die Gesamtanzahl der Punkte, die zur Klasse . Hinweis .
Wenn wir die Analyse mit der Binomialverteilung wiederholen, können wir leicht das vorherige schätzen .
Unter Verwendung der Bayes-Regel ist
Answer by @jpmuc scheint nicht genau zu sein. Generative Modelle modellieren die zugrunde liegende Verteilung P (x / Ci) und verwenden später das Bayes-Theorem, um die posterioren Wahrscheinlichkeiten zu finden. Das ist genau das, was in dieser Antwort gezeigt wurde und schließt dann das genaue Gegenteil. :Ö
Damit KNN ein generatives Modell ist, sollten wir in der Lage sein, synthetische Daten zu generieren. Es scheint, dass dies möglich ist, sobald wir einige erste Trainingsdaten haben. Es ist jedoch nicht möglich, ohne Trainingsdaten zu beginnen und synthetische Daten zu generieren. Daher passt KNN nicht gut zu generativen Modellen.
Man kann argumentieren, dass KNN ein Unterscheidungsmodell ist, weil wir eine Unterscheidungsgrenze für die Klassifizierung zeichnen können, oder wir können das hintere P (Ci / x) berechnen. All dies gilt jedoch auch für generative Modelle. Ein echtes Unterscheidungsmodell sagt nichts über die zugrunde liegende Verteilung aus. Aber im Fall von KNN wissen wir viel über die zugrunde liegende Verteilung, tatsächlich speichern wir den gesamten Trainingssatz.
So scheint es, dass KNN auf halbem Weg zwischen generativen und diskriminativen Modellen liegt. Wahrscheinlich wird KNN deshalb in renommierten Artikeln nicht nach generativen oder diskriminativen Modellen kategorisiert. Nennen wir sie einfach nicht parametrische Modelle.
Ich bin auf ein Buch gestoßen, das das Gegenteil sagt ( dh ein generatives nichtparametrisches Klassifikationsmodell)
Dies ist der Online-Link: Maschinelles Lernen Eine probabilistische Perspektive von Murphy, Kevin P. (2012)
Ich stimme zu, dass kNN diskriminierend ist. Der Grund ist, dass es nicht explizit ein (probabilistisches) Modell speichert oder zu lernen versucht, das die Daten erklärt (im Gegensatz zu zB Naive Bayes).
Die Antwort von juampa verwirrt mich, da nach meinem Verständnis ein generativer Klassifikator versucht zu erklären, wie die Daten generiert werden (z. B. unter Verwendung eines Modells), und diese Antwort besagt, dass es aus diesem Grund diskriminierend ist ...