ExtraTreesClassifier es como un hermano de RandomForest pero con 2 diferencias importantes.
Estamos construyendo múltiples árboles de decisión. Para crear varios árboles, necesitamos varios conjuntos de datos. La mejor práctica es que no entrenamos los árboles de decisión en el conjunto de datos completo, sino que entrenamos sólo una fracción de los datos (alrededor del 80%) para cada árbol. En un bosque aleatorio, extraemos observaciones con reemplazo. Así que podemos tener repetición de observaciones en un bosque aleatorio. En un ExtraTreesClassifier, extraemos observaciones sin reemplazo, por lo que no tendremos repetición de observaciones como en un bosque aleatorio.
La división es el proceso de convertir un nodo padre no homogéneo en 2 nodos hijos homogéneos (lo mejor posible). En RandomForest, se selecciona la mejor división para convertir el padre en los dos nodos hijos más homogéneos. En ExtraTreesClassifier, selecciona una división aleatoria para dividir el nodo padre en dos nodos hijos aleatorios.
Veamos algunos métodos de ensemble ordenados de mayor a menor varianza, terminando en ExtraTreesClassifier.
1. Árbol de decisión (alta varianza)
Un único árbol de decisión suele ajustarse en exceso a los datos de los que aprende porque sólo aprende de una vía de decisiones. Las predicciones de un único árbol de decisión no suelen ser precisas en los nuevos datos.
2. Bosque aleatorio (varianza media)
Los modelos de bosque aleatorio reducen el riesgo de sobreajuste al introducir la aleatoriedad:
- construcción de árboles múltiples (n_estimadores)
- extraer observaciones con reemplazo (es decir, una muestra bootstrap)
- dividir los nodos en la mejor división entre un subconjunto aleatorio de las características seleccionadas en cada nodo. La división es un proceso para convertir un nodo padre no homogéneo en 2 nodos hijos homogéneos (lo mejor posible).
3. Árboles adicionales (baja varianza)
Extra Trees es como un bosque aleatorio, en el sentido de que construye múltiples árboles y divide los nodos utilizando subconjuntos aleatorios de características, pero con dos diferencias clave: no hace bootstrap de las observaciones (lo que significa que muestrea sin reemplazo), y los nodos se dividen en divisiones aleatorias, no en las mejores divisiones. En resumen, ExtraTrees:
- construye múltiples árboles con bootstrap = Falso por defecto, lo que significa que muestrea sin reemplazo
- los nodos se dividen en base a divisiones aleatorias entre un subconjunto aleatorio de las características seleccionadas en cada nodo
En Extra Trees, la aleatoriedad no procede del bootstrap de los datos, sino que proviene de las divisiones aleatorias de todas las observaciones. ExtraTrees recibe su nombre de (Extremely Randomized Trees).