Día 6 del “Calendario de Adviento” de aprendizaje automático: Regresor del árbol de decisiones

Durante 5 días de este “Calendario de Adviento” de aprendizaje automático, exploramos 5 modelos (o algoritmos) que se basan todos en distancias (distancia euclidiana local o distancia global de Mahalanobis).

Entonces es hora de cambiar el enfoque, ¿verdad? Volveremos más adelante sobre la noción de distancia.

Por hoy veremos algo totalmente diferente: ¡Árboles de Decisión!

Regresor del árbol de decisión en Excel – imagen del autor

Introducción con un conjunto de datos simple

Utilicemos un conjunto de datos simple con una sola característica continua.

Como siempre, la idea es que tú mismo puedas visualizar los resultados. Luego hay que pensar cómo hacer que la computadora lo haga.

Regresión del árbol de decisión en un conjunto de datos simple de Excel (lo generé yo mismo) – imagen del autor

Podemos adivinar visualmente que para la primera división, hay dos valores posibles, uno alrededor de 5,5 y el otro alrededor de 12.

Ahora la pregunta es ¿cuál elegimos?

Esto es exactamente lo que vamos a descubrir: ¿cómo determinamos el valor del primer split con una implementación en Excel?

Una vez que determinemos el valor para la primera división, podemos aplicar el mismo proceso para las siguientes divisiones.

Es por eso que solo implementaremos la primera división en Excel.

El principio algorítmico de los regresores del árbol de decisión

Escribí un artículo para distinguir siempre tres pasos del aprendizaje automático para aprenderlo de manera efectiva y apliquemos el principio a los regresores del árbol de decisión.

Entonces, por primera vez, tenemos un modelo de aprendizaje automático “verdadero”, con pasos no triviales para los tres.

¿Cuál es el modelo?

El modelo aquí es un conjunto de reglas para particionar el conjunto de datos y, para cada partición, asignaremos un valor. ¿Cuál? El valor promedio y de todas las observaciones en el mismo grupo.

Entonces, mientras que k-NN predice con el valor promedio de los vecinos más cercanos (observaciones similares en términos de variables características), el regresor del Árbol de Decisión predice con el valor promedio de un grupo de observaciones (similares en términos de la variable característica).

Proceso de ajuste o entrenamiento del modelo.

Para un árbol de decisión, también llamamos a este proceso un árbol que hace crecer completamente. En el caso de un regresor de árbol de decisión, las hojas contendrán sólo una observación, por lo que el MSE será cero.

Hacer crecer un árbol consiste en dividir recursivamente los datos de entrada en fragmentos o regiones cada vez más pequeños. Para cada región, se puede calcular una predicción.

En el caso de la regresión, la predicción es el promedio de la variable objetivo para la región.

En cada paso del proceso de construcción, el algoritmo selecciona la característica y el valor dividido que maximiza un criterio y, en el caso de un regresor, suele ser el error cuadrático medio (MSE) entre el valor real y la predicción.

Ajuste o poda del modelo

Para un árbol de decisión, el término general de ajuste del modelo también se llama poda, ya que puede verse como eliminar nodos y hojas de un árbol completamente desarrollado.

También equivale a decir que el proceso de construcción se detiene cuando se cumple un criterio, como una profundidad máxima o un número mínimo de muestras en cada nodo de hoja. Y estos son los hiperparámetros que se pueden optimizar con el proceso de ajuste.

Proceso de inferencia

Una vez que se construye el regresor del árbol de decisión, se puede usar para predecir la variable objetivo para nuevas instancias de entrada aplicando las reglas y atravesando el árbol desde el nodo raíz hasta un nodo hoja que corresponde a los valores de las características de la entrada.

El valor objetivo previsto para la instancia de entrada es entonces la media de los valores objetivo de las muestras de entrenamiento que caen en el mismo nodo hoja.

Dividir con una característica continua

Estos son los pasos que seguiremos:

Enumere todas las divisiones posibles. Para cada división, calcularemos el MSE (error cuadrático medio). Seleccionaremos la división que minimice el MSE como la siguiente división óptima.

Todas las divisiones posibles

Primero, tenemos que enumerar todas las divisiones posibles que son los valores promedio de dos valores consecutivos. No es necesario probar más valores.

Regresión del árbol de decisión en Excel con posibles divisiones – imagen del autor

Cálculo de MSE para cada posible división

Como punto de partida, podemos calcular el MSE antes de cualquier división. Esto también significa que la predicción es solo el valor promedio de y. Y el MSE es equivalente a la desviación estándar de y.

Ahora, la idea es encontrar una división para que el MSE con una división sea menor que antes. Es posible que la división no mejore significativamente el rendimiento (o reduzca el MSE), entonces el árbol final sería trivial, es decir, el valor promedio de y.

Para cada división posible, podemos calcular el MSE (error cuadrático medio). La siguiente imagen muestra el cálculo de la primera división posible, que es x = 2.

Regresión del árbol de decisión en Excel MSE para todas las divisiones posibles – imagen del autor

Podemos ver el detalle del cálculo:

Cortar el conjunto de datos en dos regiones: con el valor x=2, determinamos dos posibilidades x<2 o x>2, por lo que el eje x se corta en dos partes. Calcula la predicción: para cada parte, calculamos el promedio de y. Ésa es la predicción potencial para y. Calcule el error: luego comparamos la predicción con el valor real de y Calcule el error al cuadrado: para cada observación, podemos calcular el error al cuadrado.

Regresión del árbol de decisión en Excel con todas las divisiones posibles – imagen del autor

División óptima

Para cada división posible, hacemos lo mismo para obtener el MSE. En Excel, podemos copiar y pegar la fórmula y el único valor que cambia es el posible valor de división para x.

Regresión del árbol de decisión en divisiones de Excel: imagen del autor

Luego podemos trazar el MSE en el eje y y la posible división en el eje x, y ahora podemos ver que hay un mínimo de MSE para x=5.5, este es exactamente el resultado obtenido con código Python.

Regresión del árbol de decisión en Excel Minimización de MSE – imagen del autor

Ahora, un pequeño ejercicio que puedes hacer es cambiar el MSE a MAE (Error absoluto medio).

Y puedes intentar responder a esta pregunta: ¿cuál es el impacto de este cambio?

Condensar todos los cálculos divididos en una tabla de resumen

En las secciones anteriores, calculamos cada división paso a paso, para poder visualizar mejor los detalles de los cálculos.

Ahora reunimos todo en una sola mesa, por lo que todo el proceso se vuelve compacto y fácil de automatizar.

Para hacer esto, primero simplificamos los cálculos.

En un nodo, la predicción es el promedio, por lo que el MSE es exactamente la varianza. Y para la varianza también podemos utilizar la fórmula simplificada:

Entonces, en la siguiente tabla, usamos una fila para cada división posible.

Para cada división, calculamos el MSE del nodo izquierdo y el MSE del nodo derecho.

La varianza de cada grupo se puede simplificar utilizando los resultados intermedios de yey al cuadrado.

Luego calculamos el promedio ponderado de los dos valores de MSE. Y al final obtenemos exactamente el mismo resultado que en el método paso a paso.

Regresor del árbol de decisión en Excel – consíguelo desde aquí – imagen del autor

Dividir con múltiples funciones continuas

Ahora usaremos dos funciones.

Aquí es donde se vuelve interesante.
Tendremos divisiones de candidatos provenientes de ambas características.
¿Cómo elegimos?
Simplemente los consideraremos todos y luego seleccionaremos la división con el MSE más pequeño.

La idea en Excel es:

Primero, coloque todas las divisiones posibles de las dos características en una sola columna, luego, para cada una de estas divisiones, calcule el MSE como antes y, finalmente, elija la mejor.

Concatenación de divisiones

Primero, enumeramos todas las divisiones posibles para la Característica 1 (por ejemplo, todos los umbrales entre dos valores ordenados).
Luego, enumeramos todas las divisiones posibles para la Característica 2 de la misma manera.

En Excel, concatenamos estas dos listas en una columna de divisiones de candidatos.
Entonces cada fila de esta columna representa:

“Si corto aquí usando esta función, ¿qué le sucede al MSE?”

Esto nos brinda una lista unificada de todas las divisiones de ambas funciones.

Regresor del árbol de decisión en Excel – consíguelo desde aquí – imagen del autor

Cálculos de MSE

Una vez que tenemos la lista de todas las divisiones, el resto es la misma lógica que antes.

Para cada fila (es decir, para cada división):

dividimos los puntos en el nodo izquierdo y el nodo derecho, calculamos el MSE del nodo izquierdo, calculamos el MSE del nodo derecho, tomamos el promedio ponderado de los dos valores de MSE.

Al final, miramos esta columna de “MSE total” y elegimos la división (y por lo tanto la característica y el umbral) que da el valor mínimo.

Regresor del árbol de decisión en Excel – consíguelo desde aquí – imagen del autor

Dividir con una característica continua y una categórica

Ahora combinemos dos tipos de características muy diferentes:

una característica continua una característica categórica (por ejemplo, A, B, C).

Un árbol de decisión puede dividirse en ambos, pero la forma en que generamos divisiones de candidatos no es la misma.

Con una función continua, probamos umbrales.
Con una característica categórica, probamos grupos de categorías.

Entonces la idea es exactamente la misma que antes:
Consideramos todas las divisiones posibles de ambas características, luego seleccionamos la que tiene el MSE más pequeño.

Divisiones de características categóricas

Para una característica categórica, la lógica es diferente:

Cada categoría ya es un “grupo”, por lo que la división más simple es: una categoría frente a todas las demás.

Por ejemplo, si las categorías son A, B y C:

división 1: A vs (B, C) división 2: B vs (A, C) división 3: C vs (A, B)

Esto ya proporciona divisiones de candidatos significativas y mantiene manejables las fórmulas de Excel.

Cada una de estas divisiones basadas en categorías se agrega a la misma lista que contiene los umbrales continuos.

Cálculo de MSE

Una vez que se enumeran todas las divisiones (umbrales continuos + particiones categóricas), los cálculos siguen los mismos pasos:

asigne cada punto al nodo izquierdo o derecho, calcule el MSE del nodo izquierdo, calcule el MSE del nodo derecho, calcule el promedio ponderado.

La división con el MSE total más bajo se convierte en la primera división óptima.

Regresor del árbol de decisión en Excel – consíguelo desde aquí – imagen del autor

Ejercicio que puedes probar

Ahora puedes jugar con Google Sheet:

Puede intentar encontrar la siguiente división. Puede cambiar el criterio, en lugar de MSE, puede usar error absoluto, Poisson o Friedman_mse como se indica en la documentación de DecisionTreeRegressor. Puede cambiar la variable objetivo a una variable binaria; normalmente, esto se convierte en una tarea de clasificación, pero 0 o 1 también son números, por lo que aún se puede aplicar el criterio MSE. Pero si desea crear un clasificador adecuado, debe aplicar el criterio habitual Entroy o Gini. Es para el próximo artículo.

Conclusión

Con Excel, es posible implementar una división para obtener más información sobre cómo funcionan los regresores del árbol de decisión. Aunque no creamos un árbol completo, sigue siendo interesante, ya que la parte más importante es encontrar la división óptima entre todas las divisiones posibles.

Una cosa más sobre los valores perdidos

¿Ha notado algo interesante acerca de cómo se manejan las características entre los modelos basados ​​en distancia y los árboles de decisión?

Para los modelos basados ​​en distancias, todo debe ser numérico. Las características continuas permanecen continuas y las características categóricas deben transformarse en números. El modelo compara puntos en el espacio, por lo que todo tiene que vivir en un eje numérico.

Los árboles de decisión hacen lo contrario: dividen las características en grupos. Una característica continua se convierte en intervalos. Una característica categórica sigue siendo categórica.

¿Y un valor faltante? Simplemente se convierte en otra categoría. No es necesario imputar primero. El árbol puede manejarlo naturalmente enviando todos los valores “faltantes” a una rama, como cualquier otro grupo.