¿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".
scikit-learn
random-forest
denson
fuente
fuente
Respuestas:
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_features
ymin_samples_split
mediante la búsqueda de cuadrícula con validación cruzada).fuente
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)
fuente
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.
fuente