Sobreajuste y reducción

Con el algoritmo descrito anteriormente, podemos entrenar un árbol de decisión que clasificará con exactitud los ejemplos de entrenamiento, suponiendo que estos son separables. Sin embargo, si el conjunto de datos contiene ruido, este árbol se sobreajustará y mostrará una precisión deficiente de la prueba.

En la siguiente figura, se muestra un conjunto de datos ruidoso con una relación lineal entre un atributo x y la etiqueta y. En la figura, también se muestra un árbol de decisión entrenado con este conjunto de datos sin ningún tipo de regularización. Este modelo predice de forma correcta todos los ejemplos de entrenamiento (la predicción del modelo coincide con los ejemplos de entrenamiento). Sin embargo, en un conjunto de datos nuevo que contenga el mismo patrón lineal y una instancia de ruido diferente, el modelo tendría un rendimiento deficiente.

La pendiente general es +1, pero debido a que el conjunto de datos es tan ruidoso, los datos individuales a veces se encuentran lejos de la línea que mejor se ajusta.

Figura 12: Es un conjunto de datos ruidoso.

 

Para limitar el sobreajuste de un árbol de decisión, aplica uno o ambos de los siguientes criterios de regularización mientras entrenas el árbol de decisión:

  • Establecer una profundidad máxima: Evita que los árboles de decisión superen una profundidad máxima, como 10.
  • Establece una cantidad mínima de ejemplos en la hoja: una hoja con menos de una cantidad determinada de ejemplos no se considerará para la división.

En la siguiente figura, se ilustra el efecto de la diferente cantidad mínima de ejemplos por hoja. El modelo captura menos ruido.

Tres gráficos, cada uno de los cuales muestra los efectos de un valor diferente para la cantidad mínima de ejemplos por hoja. Los diferentes valores son 2, 5 y 10.

Figura 13: Diferencias en la cantidad mínima de ejemplos por hoja.

También puedes regularizar después del entrenamiento si quitas (recortas) determinadas ramas de forma selectiva, es decir, conviertes ciertos nodos que no son hoja en hojas. Una solución común para seleccionar las ramas que deseas quitar es usar un conjunto de datos de validación. Es decir, si quitar una rama mejora la calidad del modelo en el conjunto de datos de validación, se quitará la rama.

En el siguiente dibujo se ilustra esta idea. Aquí, probamos si se mejoraría la exactitud de la validación del árbol de decisión si el nodo que no es verde hoja se convertira en una hoja; es decir, si se reducen los nodos naranjas.

Dos árboles de decisión. Un árbol de decisión contiene 9 nodos, y el otro se redujo a solo 6 nodos convirtiendo una de las condiciones en una hoja.

Figura 14: Reducción de una condición y sus elementos secundarios en una hoja

 

En la siguiente figura, se ilustra el efecto de usar el 20% del conjunto de datos como validación para reducir el árbol de decisión:

Diagrama que muestra un modelo irregular y sobreajustado con un modelo ideal de línea recta

Figura 15: Usar el 20% del conjunto de datos para reducir el árbol de decisiones

 

Ten en cuenta que usar un conjunto de datos de validación reduce la cantidad de ejemplos disponibles para el entrenamiento inicial del árbol de decisión.

Muchos creadores de modelos aplican varios criterios. Por ejemplo, podrías hacer todo lo siguiente:

  • Aplica una cantidad mínima de ejemplos por hoja.
  • Aplica una profundidad máxima para limitar el crecimiento del árbol de decisiones.
  • Reduzca el árbol de decisiones.
Código YDF
En YDF, los algoritmos de aprendizaje están preconfigurados con valores predeterminados para todos los hiperparámetros de reducción. Por ejemplo, estos son los valores predeterminados para dos hiperparámetros de reducción:
  • La cantidad mínima de ejemplos es 5 (min_examples = 5)
  • Se retiene un 10% del conjunto de datos de entrenamiento para la validación (validation_ratio = 0.1).
Puedes inhabilitar la reducción con el conjunto de datos de validación si configuras validation_ratio=0.0.

Esos criterios introducen hiperparámetros nuevos que deben ajustarse (p.ej., profundidad de árbol máxima), a menudo con ajuste automatizado de hiperparámetros. En general, los árboles de decisión son lo suficientemente rápidos como para entrenarlos como para usar el ajuste de hiperparámetros con validación cruzada. Por ejemplo, en un conjunto de datos con ejemplos de "n":

  • Divide los ejemplos de entrenamiento en p grupos no superpuestos. Por ejemplo: p=10
  • Para todos los valores de hiperparámetros posibles; por ejemplo, profundidad máxima en {3,5,6,7,8,9} y ejemplos mínimos en {5,8,10,20}.
    • Evalúa, en cada grupo, la calidad de un árbol de decisión entrenado con los otros grupos p-1.
    • Promedio de la evaluación en todos los grupos.
  • Selecciona el valor del hiperparámetro con la mejor evaluación promediada.
  • Entrena un árbol de decisión final con todos los ejemplos “n” con los hiperparámetros seleccionados.

En esta sección, analizamos las formas en que los árboles de decisión limitan el sobreajuste. A pesar de estos métodos, el subajuste y el sobreajuste son las principales debilidades de los árboles de decisión. Los bosques de decisiones introducen nuevos métodos para limitar el sobreajuste, que veremos más adelante.

Interpretación del árbol de decisiones directas

Los árboles de decisiones se interpretan fácilmente. Dicho esto, cambiar incluso algunos ejemplos puede cambiar por completo la estructura (y, por lo tanto, la interpretación) del árbol de decisión.

Debido a la forma en que se crean los árboles de decisión, cuando se particionan los ejemplos de entrenamiento, se puede usar un árbol de decisión para interpretar el conjunto de datos en sí (en lugar del modelo). Cada hoja representa una esquina particular del conjunto de datos.

Código YDF
En YDF, puedes ver árboles con la función model.describe(). También puedes acceder a árboles individuales y trazarlos con model.get_tree(). Para obtener más detalles, consulta el instructivo de inspección de modelos de YDF.

Sin embargo, la interpretación indirecta también es informativa.