Albero decisionale vs. KNN


15

In quali casi è meglio usare un albero decisionale e altri casi un KNN?

Perché usarne uno in alcuni casi? E l'altro in diversi casi? (Osservando la sua funzionalità, non l'algoritmo)

Qualcuno ha qualche spiegazione o riferimenti a riguardo?


2
KNN NON è incustodito. Forse la risposta stava pensando a k-mean?

2
Anche l'apprendimento dell'albero decisionale non è supervisionato. en.wikipedia.org/wiki/Supervised_learning .
Valentas,

Risposte:


9

Servono a scopi diversi.

KNN non è supervisionato, l'albero delle decisioni (DT) è supervisionato. ( KNN è l'apprendimento supervisionato mentre K-mean non è supervisionato, penso che questa risposta causi un po 'di confusione. ) KNN è usato per il clustering, DT per la classificazione. ( Entrambi sono usati per la classificazione. )

KNN determina i quartieri, quindi deve esserci una metrica della distanza. Ciò implica che tutte le funzionalità devono essere numeriche. Le metriche della distanza possono essere influenzate da scale variabili tra gli attributi e anche dallo spazio ad alta dimensione.

DT, d'altra parte, prevede una classe per un dato vettore di input. Gli attributi possono essere numerici o nominali.

Quindi, se vuoi trovare esempi simili, puoi usare KNN. Se vuoi classificare esempi puoi usare DT.


Chiarimento: clustering, ma un singolo cluster di dimensioni k attorno a un determinato vettore di input. Non è necessariamente vero che tutte le funzioni devono essere numeriche. Ad esempio, è possibile utilizzare la somiglianza di Jaccard per definire una distanza in cui le caratteristiche sono nominali.

10
In realtà, sono entrambi supervisionati. Supervisionato significa solo che lo studente ha accesso a un set di formazione etichettato. Gli algoritmi senza supervisione fanno cose come il clustering, non la previsione delle etichette.
Giordania A

1
Puoi anche classificarti con KNN in base esattamente alla maggior parte dei tuoi vicini K
Jekaterina Kokatjuhha,

3
-1 knne k-meanssono algoritmi diversi e questa risposta sfortunatamente (ed erroneamente) manca queste due procedure. knnnon è né supervisionato né utilizzato per il clustering! Vedi D: Diff kNN e kMean
SebNag

@SebNag, è corretto affermare che la sezione "I vicini più vicini non sorvegliati" di sci-kit sta davvero parlando di k-medie sotto mentite spoglie? scikit-learn.org/stable/modules/neighbors.html Sembra che quella sezione usi knn ma solo con una misura della distanza di qualche tipo invece di determinare cluster senza conoscenza dell'etichetta .. cioè suona come k-mean.
Frikster,

8

Classificatori come Decision Tree, Bayesian, Back-propagation, Support Vector Machine rientrano nella categoria di "Eager Learners" , perché costruiscono prima un modello di classificazione sul set di dati di addestramento prima di poter effettivamente classificare un'osservazione [non vista] dal set di dati di test . Il modello appreso ora è "impaziente" (leggi fame) di classificare osservazioni mai viste prima, da cui il nome.


Il classificatore basato su KNN, tuttavia, non crea alcun modello di classificazione. Impara direttamente dalle istanze di addestramento (osservazioni). Inizia l'elaborazione dei dati solo dopo aver ricevuto un'osservazione di prova per classificarli. Pertanto, KNN rientra nella categoria degli approcci "Lazy Learner" .

Sulla base delle differenze di base sopra riportate, possiamo concludere quanto segue: -

  1. Poiché KNN esegue l'apprendimento in loco, richiede frequenti ricerche nel database, quindi può essere costoso dal punto di vista computazionale. Il classificatore dell'albero decisionale non richiede tali ricerche poiché è pronto un modello di classificazione in memoria.

  2. Poiché KNN esegue l'apprendimento basato su istanze, un K ben sintonizzato può modellare spazi decisionali complessi con limiti di decisione arbitrariamente complicati, che non sono facilmente modellabili da altri studenti "desiderosi" come gli alberi decisionali.

  3. Gli studenti "desiderosi" lavorano in gruppi, modellando un gruppo di osservazioni di addestramento alla volta. Quindi non sono adatti per l'apprendimento incrementale. Ma KNN supporta naturalmente l'apprendimento incrementale (flussi di dati) poiché è uno studente basato sull'istanza.

  4. Inoltre, il classificatore KNN offre tassi di errore di test più vicini a quelli del classier bayesiano (lo standard di riferimento). Come citato in ISLR :

Il tasso di errore di Bayes è analogo all'errore irriducibile


4

Dall'apprendimento automatico Python di Sebastian Raschka :

Il vantaggio principale di un tale approccio basato sulla memoria [KNN] è che il classificatore si adatta immediatamente quando raccogliamo nuovi dati di allenamento. Tuttavia, il rovescio della medaglia è che la complessità computazionale per la classificazione di nuovi campioni cresce in modo lineare con il numero di campioni nell'insieme di dati di addestramento nello scenario peggiore, a meno che l'insieme di dati non abbia pochissime dimensioni (caratteristiche) e l'algoritmo sia stato implementato utilizzando dati efficienti strutture come alberi KD. JH Friedman, JL Bentley e RA Finkel. Un algoritmo per trovare le migliori corrispondenze nel tempo logaritmico previsto. ACM Transactions on Mathematical Software (TOMS), 3 (3): 209–226, 1977. Inoltre, non possiamo scartare campioni di training poiché non sono coinvolti passaggi di training. Pertanto, lo spazio di archiviazione può diventare una sfida se stiamo lavorando con set di dati di grandi dimensioni.

L'albero decisionale, tuttavia, può rapidamente classificare nuovi esempi. Stai solo eseguendo una serie di confronti booleani.


2

Vorrei aggiungere che gli alberi decisionali possono essere utilizzati sia per le attività di classificazione che di regressione. DT d'altro canto predice che una classe nella risposta accettata sarebbe più specifica descrivendo alberi di classificazione che è tecnicamente un sottotipo del concetto generico di DT. Un riferimento (ignorando gli strati inferiori che discutono implementazioni specifiche):
tipi di alberi decisionali Da qui: http://www.simafore.com/blog/bid/62482/2-main-differences-b Between-classification-and-regression- trees

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.