Risposte:
KNN è un algoritmo discriminatorio poiché modella la probabilità condizionale di un campione appartenente a una determinata classe. Per vederlo basta considerare come si arriva alla regola decisionale dei kNN.
Un'etichetta classe corrisponde ad un insieme di punti che appartengono a qualche regione nello spazio delle caratteristiche . Se disegni punti campione dalla distribuzione di probabilità effettiva, p (x) , indipendentemente, quindi la probabilità di estrarre un campione da quella classe è, P = \ int_ {R} p (x) dx p ( x ) P = ∫ R p ( x ) d x
E se hai punti? La probabilità che punti di quegli punti cadano nella regione segue la distribuzione binomiale,
Dato che da questa distribuzione ha un picco acuto, in modo che la probabilità possa essere approssimata dal suo valore medio . Un'ulteriore approssimazione è che la distribuzione di probabilità su rimane approssimativamente costante, in modo che si possa approssimare l'integrale di,
Ora, se avessimo diverse classi, potremmo ripetere la stessa analisi per ognuna, che ci darebbe,
Ripetendo l'analisi con la distribuzione binomiale, è facile vedere che possiamo stimare la P precedente (C_ {k}) = \ frac {N_ {k}} {N} .
Utilizzando la regola di Bayes,
La risposta di @jpmuc non sembra essere accurata. I modelli generativi modellano la distribuzione sottostante P (x / Ci) e poi usano il teorema di Bayes per trovare le probabilità posteriori. Questo è esattamente ciò che è stato mostrato in quella risposta e quindi conclude l'esatto contrario. : O
Perché KNN sia un modello generativo, dovremmo essere in grado di generare dati sintetici. Sembra che ciò sia possibile una volta che avremo alcuni dati di addestramento iniziali. Ma partire da nessun dato di allenamento e generare dati sintetici non è possibile. Quindi KNN non si adatta bene ai modelli generativi.
Si potrebbe sostenere che KNN è un modello discriminante perché possiamo tracciare un limite discriminante per la classificazione, oppure possiamo calcolare la P posteriore (Ci / x). Ma tutto ciò è vero anche nel caso dei modelli generativi. Un vero modello discriminatorio non dice nulla sulla distribuzione sottostante. Ma nel caso di KNN sappiamo molto sulla distribuzione sottostante, infatti stiamo memorizzando l'intero set di addestramento.
Quindi sembra che KNN sia a metà strada tra modelli generativi e discriminativi. Probabilmente è per questo che KNN non è classificato in alcuno dei modelli generativi o discriminatori negli articoli di fama. Chiamiamoli semplicemente modelli non parametrici.
Sono arrivato attraverso un libro che dice il contrario ( cioè un modello di classificazione non parametrica generativa )
Questo è il link online: Machine Learning A Probabilistic Perspective di Murphy, Kevin P. (2012)
Sono d'accordo che kNN è discriminatorio. Il motivo è che non memorizza esplicitamente o cerca di apprendere un modello (probabilistico) che spiega i dati (al contrario, ad esempio Naive Bayes).
La risposta di juampa mi confonde dal momento che, a mio avviso, un classificatore generativo è uno che tenta di spiegare come vengono generati i dati (ad esempio utilizzando un modello), e quella risposta afferma che è discriminante per questo motivo ...