RandomForestClassifier vs ExtraTreesClassifier in scikit impara


94

Qualcuno può spiegare la differenza tra RandomForestClassifier e ExtraTreesClassifier in scikit learn. Ho passato un bel po 'di tempo a leggere il giornale:

P. Geurts, D. Ernst. E L. Wehenkel, "Extremely randomized trees", Machine Learning, 63 (1), 3-42, 2006

Sembra che queste siano la differenza per ET:

1) Quando si scelgono le variabili in una divisione, i campioni vengono estratti dall'intero set di addestramento invece di un campione bootstrap del set di addestramento.

2) Gli split vengono scelti in modo completamente casuale dall'intervallo di valori nel campione ad ogni split.

Il risultato di queste due cose sono molte più "foglie".


6
Il motivo per cui sono così interessato all'extratreeclassifier è che sto ottenendo risultati molto migliori con ET su un problema particolare. Il mio vettore di funzionalità è grande> 200 variabili e le variabili sono molto rumorose. Il classificatore RDF standard ottiene risultati scadenti ma l'ET ottiene punteggi F1> 90%. Le classi sono sbilanciate con relativamente pochi campioni di classe positivi e molti negativi.
denson

Vedi anche questa risposta più recente: stats.stackexchange.com/questions/175523/…
Archie

Risposte:


56

Sì, entrambe le conclusioni sono corrette, sebbene l'implementazione Random Forest in scikit-learn renda possibile abilitare o disabilitare il ricampionamento del bootstrap.

In pratica, le RF sono spesso più compatte degli ET. Gli ET sono generalmente più economici da addestrare da un punto di vista computazionale, ma possono diventare molto più grandi. ET possono a volte meglio di generalizzare RFs ma è difficile da indovinare quando è il caso, senza cercare sia prima (e messa a punto n_estimators, max_featurese min_samples_splitdalla ricerca di cross-validati griglia).


21

Il classificatore ExtraTrees verifica sempre le suddivisioni casuali su una frazione di elementi (a differenza di RandomForest, che testa tutte le possibili suddivisioni su una frazione di elementi)


13
Sono divertito dal fatto che questo commento sia letteralmente la risposta parola per parola a una domanda del quiz di Coursera
Bob

Sì @ Bob lo è. Trovo questa risposta molto utile, ecco perché l'ho postata qui, aiuta gli altri a capire la differenza tra extra-tree e random forest.
Muhammad Umar Amanat

3
provenivano anche dallo stesso corso. e questa risposta è stata utile!
killezio

si @ skeller88 questo è un corso fantastico. Dovresti anche guardare questo coursera.org/learn/competitive-data-science?specialization=aml
Muhammad Umar Amanat,

0

La principale differenza tra foreste casuali e alberi extra (solitamente chiamati foreste casuali estreme) sta nel fatto che, invece di calcolare la combinazione caratteristica / suddivisione ottimale a livello locale (per la foresta casuale), per ciascuna caratteristica in esame, viene selezionato un valore casuale per la divisione (per gli alberi extra). Ecco una buona risorsa per saperne di più sulla loro differenza in modo più dettagliato Foresta casuale vs albero extra.

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.