En el episodio de hoy te cuento todo sobre los árboles de decisión en Machine Learning. Después de escucharlo puedes hacerte este tutorial para aprender con un ejemplo sencillo todos los secretos de los árboles de decisión 🌳
Si alguna vez has jugado al clásico juego de mesa "¿Quién es Quién?", ya tienes una idea bastante buena de cómo funcionan los árboles de decisión en Machine Learning.
Así que, vamos a aprovechar esa idea para explicar este tipo de modelos de manera sencilla y divertida.
Imagina que estás jugando al "¿Quién es Quién?".
Tienes un grupo de personajes y, para ganar, debes adivinar cuál es el personaje que ha elegido el otro jugador, haciendo preguntas sobre las características de su personaje.
Algo del estilo a "¿lleva gafas?".
Cada vez que haces una pregunta, eliminas algunas opciones hasta que te quedas con la respuesta correcta.
¡Eso es básicamente lo que hace un árbol de decisión!
Un árbol de decisión es un modelo supervisado que toma decisiones basadas en las características de los datos.
En lugar de personajes con gafas, en Machine Learning podemos estar trabajando con datos como el ingreso mensual o el historial de crédito de un cliente, para predecir si es elegible para recibir una línea de crédito o no.
Los árboles de decisión se llaman así porque su estructura se asemeja a la de un árbol (aunque está invertido, con la raíz en la parte superior).
Aquí están los componentes clave:
Los árboles de decisión en Machine Learning se entrenan con datos etiquetados.
Ya os he comentado que era un modelo supervisado 😊
Imagina que trabajas en un banco y tienes un dataset con información sobre clientes, como su ingreso mensual, su historial de crédito, si tienen deudas actuales y su edad.
A partir de estas variables, el árbol se entrena para clasificar a los clientes en dos categorías: aquellos que son aptos para recibir una línea de crédito y aquellos que no lo son.
El entrenamiento de un árbol de decisión consiste en elegir las características que mejor dividan los datos en función de la pureza de los nodos.
El objetivo es que cada división agrupe los datos de manera que las observaciones sean lo más homogéneas posible dentro de cada rama.
En este caso, el algoritmo podría empezar con el historial de crédito y luego considerar el ingreso mensual y otras variables para tomar una decisión final.
La pureza de un nodo se refiere a la homogeneidad de los datos dentro de ese nodo.
Si todos los datos en un nodo pertenecen a la misma clase, decimos que el nodo es puro.
Para medir esta pureza, los algoritmos de árboles de decisión utilizan métricas como:
Eso es lo que busca el árbol de decisión durante su entrenamiento. Elegir la característica que reduzca la impureza de Gini lo máximo posible (si ese es el criterio que hemos elegido) o que tenga la máxima ganancia de información (en el caso de estar trabajando con la entropía) de todas las características de dataset.
De esta manera, el árbol va creando nuevas divisiones en cada nodo según la característica que consiga aumentar la pureza más que las demás.
Los árboles de decisión tienden a sobreajustar los datos de entrenamiento si se dejan crecer sin control.
Para evitar esto, existen varios criterios para detener la división de los nodos:
Estos criterios nos ayudan a podar el árbol, lo que significa evitar que crezca demasiado y se sobreajuste a los datos de entrenamiento.
Un árbol sobreajustado funcionará mal con datos nuevos.
Los árboles de decisión son uno de los modelos más utilizados en Machine Learning por su simplicidad y capacidad de interpretación y son la base de los modelos más top para datos estructurados como XGBoost.
A continuación, exploramos algunas de las principales ventajas que hacen que estos modelos sean tan populares.
A pesar de su simplicidad y utilidad, los árboles de decisión también tienen algunas desventajas que es importante tener en cuenta en el momento de elegir un modelo.
Los árboles de decisión son un modelo súper intuitivo y flexible para resolver problemas de clasificación y regresión.
Funcionan como el "¿Quién es Quién?", dividiendo los datos en nodos y ramas según las características que mejor separan las clases o predicen un valor, usando criterios como Gini, entropía o la varianza.
Eso sí, hay que tener cuidado con que no se nos vaya de las manos y el árbol termine sobreajustándose, por eso es súper importante ajustar bien los hiperparámetros para podar nuestro arbolito cuando sea necesario.
Hemos visto que es un modelo con sus cositas, como la inestabilidad o la tendencia a no encontrar la mejor solución global, peeeero sigue siendo un modelo muy útil cuando se busca algo fácil de interpretar y que no requiera una preparación exhaustiva de los datos.
¿Listos para entrenar vuestro primer árbol de decisión? ¡Manos a la obra!
Espero que os guste el episodio.
Si es así, no olvidéis dejar un «Me gusta» y algún comentario al episodio en Ivoox o una valoración de 5 estrellas del podcast en Apple podcasts, en Spotify, en Youtube o donde quiera que escuchéis el podcast.
Recordad que si tenéis cualquier duda o pregunta podéis contactar conmigo a través del formulario de contacto o podemos seguir la conversación en Twitter.
Muchas gracias por estar ahí y os espero en el próximo episodio de Un Podcast Ninja sobre Big Data.