Aplicación Práctica: Árboles de Decisión (Aprendizaje Supervisado)
Árboles de Decisión (Aprendizaje
Supervisado)
Introducción.
Los árboles de decisión son una
poderosa herramienta en el campo del aprendizaje supervisado, una rama de la
inteligencia artificial que se enfoca en enseñar a los modelos a realizar
tareas específicas a partir de ejemplos previamente etiquetados. Estos árboles
son representaciones gráficas de decisiones basadas en reglas que permiten
tomar elecciones informadas en la clasificación o regresión de datos. Inspirados
en la forma en que los seres humanos toman decisiones, los árboles de decisión
se construyen dividiendo de manera recursiva conjuntos de datos en función de
las características más relevantes, lo que facilita la comprensión y la
interpretación del proceso de toma de decisiones del modelo. Este enfoque
intuitivo y visual no solo es efectivo para resolver problemas complejos, sino
que también ofrece transparencia y comprensión en la toma de decisiones
automatizada, convirtiéndolos en una herramienta valiosa en diversas
aplicaciones, desde la medicina hasta las finanzas y más allá.
Fundamentos de los
árboles de decisión.
Los árboles de decisión se basan
en principios fundamentales que los hacen efectivos en el aprendizaje
supervisado. Aquí están algunos de los conceptos clave:
División de datos: En el corazón
de un árbol de decisión está el proceso de dividir los datos en conjuntos más
pequeños y homogéneos. Esta división se realiza utilizando características
específicas del conjunto de datos, con el objetivo de separar las instancias de
manera que facilite la toma de decisiones.
Entropía y Ganancia de
Información: La entropía mide la impureza o incertidumbre en un conjunto de
datos. El objetivo del árbol de decisión es reducir la entropía al máximo posible.
La ganancia de información se refiere a la reducción de entropía que se logra
al dividir un conjunto de datos en función de una característica particular.
Nodos y Ramas: Los árboles de
decisión constan de nodos y ramas. Cada nodo representa una característica o
una condición de división, y las ramas representan las posibles salidas de esa
condición. Los nodos internos representan decisiones, mientras que los nodos
hoja representan las etiquetas o valores de salida.
Profundidad del Árbol: La profundidad
del árbol se refiere al número de divisiones realizadas. Un árbol más profundo
puede capturar patrones más complejos en los datos de entrenamiento, pero
también corre el riesgo de sobreajuste (overfitting) si no se controla
adecuadamente.
Poda (Pruning): Para evitar el
sobreajuste, se utiliza la poda, un proceso que implica eliminar nodos y ramas
del árbol que no contribuyen significativamente a la mejora del rendimiento en
datos no vistos. Esto ayuda a generalizar mejor el modelo.
Selección de Características: La
elección de qué características utilizar en cada división es crucial.
Diferentes criterios, como la ganancia de información o el índice Gini, se
utilizan para evaluar la importancia de las características y decidir cuál usar
en cada nodo.
Modelo Interpretativo: Una de las
ventajas clave de los árboles de decisión es su capacidad para ofrecer una
interpretación clara y visual. Es fácil entender cómo se toma una decisión al
seguir las ramas del árbol, lo que hace que estos modelos sean útiles en
entornos donde la explicabilidad es esencial.
Estos fundamentos combinados permiten que los árboles de decisión se adapten eficazmente a una variedad de conjuntos de datos y problemas en el aprendizaje supervisado. Su versatilidad y facilidad de interpretación los convierten en una herramienta valiosa en el arsenal de algoritmos de aprendizaje automático.
Selección de Características: La elección de qué características utilizar en cada división es crucial. Diferentes criterios, como la ganancia de información o el índice Gini, se utilizan para evaluar la importancia de las características y decidir cuál usar en cada nodo.
Modelo Interpretativo: Una de las ventajas clave de los árboles de decisión es su capacidad para ofrecer una interpretación clara y visual. Es fácil entender cómo se toma una decisión al seguir las ramas del árbol, lo que hace que estos modelos sean útiles en entornos donde la explicabilidad es esencial.
Estos fundamentos combinados permiten que los
árboles de decisión se adapten eficazmente a una variedad de conjuntos de datos
y problemas en el aprendizaje supervisado. Su versatilidad y facilidad de interpretación
los convierten en una herramienta valiosa en el arsenal de algoritmos de
aprendizaje automático.
EJEMPLO
Para ilustrar la creación de un árbol
de decisión, consideremos un escenario en el que deseamos clasificar clientes
en una empresa de telecomunicaciones como "Clientes Potenciales",
"Clientes Leales" o "Clientes en Riesgo de Abandono".
Utilizaremos características como la duración de la relación con la empresa, el
gasto mensual y el soporte técnico recibido.
Supongamos que tenemos el siguiente conjunto de datos de entrenamiento:
Ahora, sigamos los pasos básicos para construir un árbol de decisión:
Paso 1: Calcular la Entropía Inicial
Calculamos la entropía inicial para todo el conjunto de datos. Supongamos que tenemos tres clases: Potenciales, Leales y en Riesgo.
Paso 2: Seleccionar la Mejor Característica
Seleccionamos la característica
que proporciona la mayor ganancia de información. Por ejemplo, podríamos
comenzar evaluando la duración de la relación.
Paso 3: Dividir el Conjunto de Datos
Dividimos el conjunto de datos en
función de la duración de la relación. Creamos ramas para cada posible valor de
duración.
Paso 4: Repetir el Proceso
Repetimos los pasos 2 y 3 para cada nodo interno del árbol, seleccionando la mejor característica para cada subconjunto
de datos resultante.
Paso 5: Asignar Etiquetas a las Hojas
Continuamos dividiendo y seleccionando características hasta que alcanzamos nodos hoja. Asignamos la etiqueta más común en cada nodo hoja como la clasificación final.
El árbol resultante podría tener una estructura similar a la siguiente:
# Importa las bibliotecas necesarias
from sklearn import tree
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import numpy as np
# Genera un conjunto de datos de ejemplo
edad = np.array([25, 35, 45, 20, 30, 40, 50, 60])
ingresos_anuales = np.array([50000, 60000, 80000, 30000, 40000, 70000, 90000, 120000])
comprar = np.array([0, 0, 1, 0, 1, 1, 1, 1]) # 0: No comprar, 1: Comprar
# Combina las características en una matriz
datos = np.column_stack((edad, ingresos_anuales))
# Divide el conjunto de datos en conjuntos de
entrenamiento y prueba
datos_entrenamiento, datos_prueba, comprar_entrenamiento, comprar_prueba = train_test_split(
datos, comprar, test_size=0.25, random_state=42)
# Crea el modelo de árbol de decisión
modelo_arbol = tree.DecisionTreeClassifier()
# Entrena el modelo con el conjunto de entrenamiento
modelo_arbol.fit(datos_entrenamiento, comprar_entrenamiento)
# Realiza predicciones en el conjunto de prueba
predicciones = modelo_arbol.predict(datos_prueba)
# Evalúa la precisión del modelo
precision = accuracy_score(comprar_prueba, predicciones)
print(f"Precisión del modelo: {precision * 100:.2f}%")
# Visualiza el árbol de decisión
fig, ax = plt.subplots(figsize=(10, 6))
tree.plot_tree(modelo_arbol, feature_names=["Edad", "Ingresos anuales"], class_names=["No comprar", "Comprar"], filled=True, rounded=True, ax=ax)
plt.show()
Resultado con google colaboratory
En conclusión en este caso, la
edad e ingresos anuales se utilizan para tomar decisiones sobre si un cliente
compra o no.
Durante la construcción del árbol, se utiliza criterios de impureza (como Gini o entropía) para determinar la mejor manera de dividir los datos en cada nodo. El objetivo es maximizar la homogeneidad de las clases en las hojas resultantes.
Las hojas del árbol representan las categorías finales (En este caso, "Comprar" o "No comprar"). Cuando una nueva instancia llega al árbol, sigue el camino desde la raíz hasta una hoja, y la clase en esa hoja se asigna como la predicción del modelo
%20(1).png)
Comentarios
Publicar un comentario