2012-04-25 60 views
43

Sto facendo qualche ricerca sulle diverse tecniche di data mining e mi sono imbattuto in qualcosa che non riuscivo a capire. Se qualcuno ha qualche idea sarebbe bello.Albero decisionale contro il classificatore Naive Bayes

In quali casi è meglio utilizzare un albero delle decisioni e altri casi un classificatore Naive Bayes?

Perché utilizzare uno di questi in alcuni casi? E l'altro in diversi casi? (Guardando la sua funzionalità, non all'algoritmo)

Qualcuno ha qualche spiegazione o riferimento a riguardo?

+1

Questa domanda sembra essere off -topic perché si tratta di statistiche – finnw

+3

Sto votando per chiudere questa domanda come off-topic perché appartiene più a datascience.stackexchange.com – jopasserat

risposta

126

Gli Alberi di decisione sono molto flessibili, facili da capire e facili da eseguire il debug. Lavoreranno con problemi di classificazione e problemi di regressione. Quindi, se stai cercando di prevedere un valore categoriale come (rosso, verde, su, giù) o se stai cercando di prevedere un valore continuo come 2.9, 3.4 ecc. Decision Trees gestirà entrambi i problemi. Probabilmente una delle cose più interessanti su Decision Trees è che hanno bisogno solo di una tabella di dati e costruiranno un classificatore direttamente da quei dati senza che sia necessario alcun lavoro di progettazione iniziale. In una certa misura le proprietà che non contano non saranno scelte come spaccature e alla fine saranno potate in modo che sia molto tollerante alle sciocchezze. Per iniziare è impostato e dimenticarlo.

Tuttavia, il lato negativo. Gli alberi decisionali semplici tendono ad adattarsi maggiormente ai dati di allenamento in modo che altre tecniche, il che significa che in genere devi eseguire la potatura degli alberi e mettere a punto le procedure di potatura. Non avevi alcun costo di progettazione in anticipo, ma lo pagherai di nuovo sulla messa a punto delle prestazioni degli alberi. Anche gli alberi decisionali semplici dividono i dati in quadrati, quindi creare cluster attorno alle cose significa che deve dividere molto per comprendere i cluster di dati. Dividere molto porta a alberi complessi e aumenta la probabilità che tu stia sovrasfruttando. Gli alberi ad alto fusto vengono potati in modo che, mentre è possibile creare un cluster attorno ad alcune funzionalità nei dati, potrebbe non sopravvivere al processo di potatura. Esistono altre tecniche come surrogate split che consentono di suddividere più variabili contemporaneamente creando divisioni nello spazio che non sono né orizzontali né perpendicolari (0 < slope < infinity). Fantastico, ma il tuo albero inizia a diventare più difficile da capire e il suo complesso di implementare questi algoritmi. Altre tecniche come il boosting e gli alberi decisionali casuali possono funzionare abbastanza bene, e alcuni ritengono che queste tecniche siano essenziali per ottenere le migliori prestazioni dagli alberi decisionali. Ancora una volta questo aggiunge più cose da capire e utilizzare per regolare l'albero e quindi più cose da implementare. Alla fine, più si aggiunge all'algoritmo più è alta la barriera per usarlo.

Naive Bayes richiede di costruire una classificazione a mano. Non c'è modo di lanciare una serie di dati tabulari e scegliere le migliori caratteristiche che userà per classificare. Scegliere quali caratteristiche sono importanti per te. Gli alberi delle decisioni sceglieranno per te le migliori caratteristiche dai dati tabulari. Se ci fosse un modo per Naive Bayes di scegliere le caratteristiche che ti avvicinerebbero usando le stesse tecniche che fanno funzionare gli alberi decisionali in questo modo. Dare questo fatto significa che potrebbe essere necessario combinare Naive Bayes con altre tecniche statistiche per aiutarti a orientarti verso le caratteristiche che meglio classificano e che potrebbero utilizzare gli alberi decisionali. Gli alleati ingenui risponderanno come un classificatore continuo. Esistono tecniche per adattarlo alla previsione categoriale, tuttavia risponderanno in termini di probabilità come (A 90%, B 5%, C 2,5% D 2,5%) Bayes può funzionare abbastanza bene, e non si adatta troppo quindi non è necessario sfoltire o elaborare la rete. Ciò li rende più semplici da implementare. Tuttavia, è più difficile eseguire il debug e capire perché tutte le probabilità si moltiplicano per migliaia di volte, quindi devi stare attento a testare che sta facendo ciò che ti aspetti. Naive bayes funziona abbastanza bene quando i dati di allenamento non contengono tutte le possibilità, quindi può essere molto buono con una bassa quantità di dati. Gli alberi decisionali funzionano meglio con molti dati rispetto a Naive Bayes.

Naive Bayes è molto utilizzato in robotica e in computer vision e fa abbastanza bene con questi compiti. Gli alberi decisionali si comportano molto male in quelle situazioni. Insegnare un albero decisionale a riconoscere le mani di poker guardando un milione di mani di poker fa molto male perché le vampate reali ei quadricipiti si verificano così poco da essere spesso eliminati. Se viene eliminato dall'albero risultante, si classificherà erroneamente quelle mani importanti (richiamare la discussione sugli alberi alti dall'alto). Ora pensa solo se stai cercando di diagnosticare il cancro usando questo. Il cancro non si verifica nella popolazione in grandi quantità e verrà eliminato più facilmente. La buona notizia è che questo può essere gestito usando pesi in modo da pesare una mano vincente o avere un cancro più alto di una mano che perde o non avere il cancro e che lo fa salire sull'albero in modo che non venga eliminato. Di nuovo questa è la parte di sintonizzazione dell'albero risultante per la situazione che ho discusso in precedenza.

alberi di decisione sono pulite perché ti dicono quello che gli ingressi sono i migliori predicatori delle uscite così spesso gli alberi di decisione in grado di guidarvi per trovare se c'è una relazione statistica tra un dato di input per l'output e quanto forte quel rapporto è. Spesso l'albero decisionale risultante è meno importante delle relazioni che descrive. Quindi gli alberi decisionali possono essere utilizzati come strumento di ricerca man mano che si apprendono i dati in modo da poter costruire altri classificatori.

Se si sta eseguendo il ding tra l'uso di alberi decisionali e bayes naive per risolvere un problema, spesso è meglio testarli singolarmente. Costruisci un albero decisionale e costruisci un classificatore ingenuo bayes, quindi esegui una sparatoria usando i dati di addestramento e di convalida che hai. Quale mai performerà meglio, con maggiore probabilità andrà meglio sul campo. Ed è sempre una buona idea gettare ognuno di questi contro i predittori del K-nearest neighbor (KNN) perché k-nearest ha dimostrato di eseguire entrambi in alcune situazioni, e KNN è un semplice algoritmo da implementare e utilizzare. Se KNN si comporta meglio degli altri due, vai con esso.

Alcune fonti:

il manuale su alberi di decisione CARRELLO base. Questo libro copre l'algoritmo CART, ma discute anche alberi di decisione, pesi, valori mancanti, si divide surrogati, aumentando, ecc http://www.amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418

Un intro dolce alla CART https://www.youtube.com/watch?v=p17C9q2M00Q

Confronto di algoritmi - notare che KNN, Decision Trees, C4.5 e SVM fanno abbastanza bene sulla maggior parte dei test. http://www4.ncsu.edu/~arezaei2/paper/JCIT4-184028_Camera%20Ready.pdf

Un altro confronto di algoritmi - Boosted Decision Trees e la parte superiore casuale alla lista con KNN in mezzo: http://www.cs.cornell.edu/~caruana/ctp/ct.papers/caruana.icml06.pdf

Un'altra buona corsa verso il basso di diverse tecniche: http://www.quora.com/What-are-the-advantages-of-different-classification-algorithms

+9

Grazie per aver dedicato del tempo per scrivere questo. Chiaro e dritto al punto. – Youssef

+8

I lettori dovrebbero essere cauti --- alcuni di questi non sono corretti. Ad esempio, è totalmente, banalmente, possibile costruire un modello Naive Bayes da dati tabulari. L'ho fatto la scorsa settimana, in circa 20 minuti, e l'ho fatto decine di volte prima. KNN non esegue tutti i modelli di alberi decisionali, in generale, o anche Naive Bayes in generale, sebbene possa essere utilizzato per set di dati specifici. Tuttavia, il post è utile perché gli studenti pigri lo hanno preso come un dato di fatto e persino plagiato. Sono stati facilmente catturati. +1. –

+0

Consentitemi di chiarire, non sto dicendo che è impossibile costruire un modello Naive Bayes (NB) dai dati tabulari, ma NB non include un algoritmo che lo alimenta dati tabulari e ne costruirà un modello Naive Bayes . Quando dici di averlo creato, hai progettato un modello di Naive Bayes analizzando i dati tabulari e permettendo al computer di costruire quel modello di Naive Bayes per te da dati tabulari. KNN non sempre vince, ma in alcuni casi è stato dimostrato che supera entrambi i modelli. Suppongo che dovrei ammorbidire la lingua, quindi non c'è confusione lì. – chubbsondubs

Problemi correlati