KNN è un algoritmo di apprendimento discriminatorio?


Risposte:


19

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 xRp(x)

P=Rp(x)dx

E se hai N punti? La probabilità che K punti di quegli N punti cadano nella regione R segue la distribuzione binomiale,

Prob(K)=(NK)PK(1P)NK

Dato che da N questa distribuzione ha un picco acuto, in modo che la probabilità possa essere approssimata dal suo valore medio KN . Un'ulteriore approssimazione è che la distribuzione di probabilità su R rimane approssimativamente costante, in modo che si possa approssimare l'integrale di,

P=Rp(x)dxp(x)V
dove V è il volume totale della regione. Con queste approssimazioni p(x)KNV .

Ora, se avessimo diverse classi, potremmo ripetere la stessa analisi per ognuna, che ci darebbe,

p(x|Ck)=KkNkV
dove Kk è la quantità di punti della classe k che rientra in quella regione e Nk è il numero totale di punti appartenenti alla classe Ck . Avviso kNk=N .

Ripetendo l'analisi con la distribuzione binomiale, è facile vedere che possiamo stimare la P precedente (C_ {k}) = \ frac {N_ {k}} {N}P(Ck)=NkN .

Utilizzando la regola di Bayes,

P(Ck|x)=p(x|Ck)p(Ck)p(x)=KkK
che è la regola per kNN.

2
Il riferimento non include alcuna informazione su KNN. È quello giusto?
Bayerj,

1
Intendevo enfatizzare ciò che è compreso per un algoritmo discriminativo rispetto a un generativo.
jpmuc,

5

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.


Non sono d'accordo. "I classificatori generativi apprendono un modello della probabilità congiunta, p (x, y), degli input x e dell'etichetta y, e fanno le loro previsioni usando le regole di Bayes per calcolare p (ylx), e quindi selezionando l'etichetta più probabile y Classificatori discriminatori modellano direttamente la p posteriore (ylx) o apprendono una mappa diretta dagli input x alle etichette delle classi ". Vedi "Sui classificatori discriminatori e generativi: un confronto tra regressione logistica e ingenui Bayes.
jpmuc,


1

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 ...


1
Un modello generativo apprende P (Ck, X), quindi puoi generare più dati usando quella distribuzione congiunta. Al contrario, un modello discriminante imparerebbe P (Ck | X). Questo è ciò a cui @juampa punta con KNN.
Zhubarb,

1
Al momento della classificazione, sia generativo che discriminativo finiscono per usare le probabilità condizionali per fare previsioni. Tuttavia, i classificatori generativi apprendono la probabilità congiunta e, secondo la regola di Bayes, calcola il condizionale, mentre in un discriminatore un classificatore calcola direttamente il condizionale o fornisce un'approssimazione quanto più efficace possibile.
rapaio,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.