RandomForestClassifier vs ExtraTreesClassifier en scikit learn

94

¿Alguien puede explicar la diferencia entre RandomForestClassifier y ExtraTreesClassifier en scikit learn? He pasado bastante tiempo leyendo el periódico:

P. Geurts, D. Ernst. Y L. Wehenkel, "Árboles extremadamente aleatorios", Machine Learning, 63 (1), 3-42, 2006

Parece que estas son la diferencia para ET:

1) Al elegir variables en una división, las muestras se extraen del conjunto de entrenamiento completo en lugar de una muestra de arranque del conjunto de entrenamiento.

2) Las divisiones se eligen completamente al azar del rango de valores de la muestra en cada división.

El resultado de estas dos cosas son muchas más "hojas".

denson
fuente
6
La razón por la que estoy tan interesado en el clasificador extraárbol es que estoy obteniendo resultados mucho mejores con ET en un problema particular. Mi vector de características es grande> 200 variables y las variables son muy ruidosas. El clasificador RDF estándar obtiene pésimos resultados, pero el ET obtiene puntuaciones F1 de> 90%. Las clases están desequilibradas con relativamente pocas muestras de clases positivas y muchas negativas.
denson
Consulte también esta respuesta más reciente: stats.stackexchange.com/questions/175523/…
Archie

Respuestas:

56

Sí, ambas conclusiones son correctas, aunque la implementación de Random Forest en scikit-learn hace posible habilitar o deshabilitar el remuestreo de arranque.

En la práctica, los RF suelen ser más compactos que los ET. Los ET son generalmente más baratos de entrenar desde un punto de vista computacional, pero pueden crecer mucho más. En ocasiones, los extraterrestres pueden generalizar mejor que los RF, pero es difícil adivinar cuándo es el caso sin probar primero (y sintonizar n_estimators, max_featuresy min_samples_splitmediante la búsqueda de cuadrícula con validación cruzada).

ogrisel
fuente
21

El clasificador ExtraTrees siempre prueba divisiones aleatorias sobre una fracción de características (en contraste con RandomForest, que prueba todas las divisiones posibles sobre una fracción de características)

Muhammad Umar Amanat
fuente
13
Me divierte que este comentario sea literalmente la respuesta palabra por palabra a una pregunta del cuestionario de Coursera
Bob
Sí @ Bob, lo es. Encuentro esta respuesta muy útil, por eso publiqué aquí, ayuda a otros a comprender la diferencia entre un árbol extra y un bosque aleatorio.
Muhammad Umar Amanat
3
también vino del mismo curso. ¡y esta respuesta fue útil!
killezio
sí @ skeller88, este es un curso increíble. También debería mirar este coursera.org/learn/competitive-data-science?specialization=aml
Muhammad Umar Amanat
0

La principal diferencia entre bosques aleatorios y árboles adicionales (generalmente llamados bosques aleatorios extremos) radica en el hecho de que, en lugar de calcular la combinación de característica / división localmente óptima (para el bosque aleatorio), para cada característica en consideración, se selecciona un valor aleatorio para la división (para los árboles adicionales). Aquí hay un buen recurso para saber más sobre su diferencia con más detalle Bosque aleatorio vs árbol adicional.

maria_g
fuente