certmundo.
es‑mx

6 min de lectura

¿Cómo clasificar datos con árboles de decisión?

Un árbol de decisión es un modelo de Machine Learning que clasifica datos haciendo una serie de preguntas de sí o no hasta llegar a una respuesta final.

¿Realmente las máquinas piensan como humanos?

Antes de continuar, responde esta pregunta mental: ¿cuánto tiempo te toma decidir si un cliente nuevo va a pagar su crédito o no?

La mayoría de las personas dice que necesita mucha información y tiempo. Pero un árbol de decisión bien entrenado toma esa decisión en milisegundos, con una precisión de hasta el 87% en datasets financieros reales. La sorpresa no es la velocidad: es que el modelo razona exactamente como tú, solo que más rápido.

Eso cambia todo. Significa que puedes abrir el modelo y entender cada decisión que tomó. No es una caja negra. Es un diagrama que cualquier persona puede leer.

La lógica detrás del árbol

Imagina que trabajas en el área de crédito de Liverpool. Recibes una solicitud de financiamiento cada cinco minutos. No puedes revisar cada expediente a mano. Entonces entrenas un árbol de decisión con historial de clientes anteriores.

El modelo aprende a hacer preguntas en el orden más útil. Por ejemplo:

  • ¿El cliente tiene más de 6 meses de historial en Liverpool? → Sí / No
  • ¿Su ingreso mensual supera los $15,000? → Sí / No
  • ¿Ha tenido retrasos en los últimos 12 meses? → Sí / No

Cada pregunta divide los datos en dos grupos. El árbol elige primero la pregunta que mejor separa los casos de "paga" y "no paga". Eso se llama el nodo raíz. Las preguntas siguientes son las ramas. La respuesta final es la hoja.

Este proceso tiene un nombre técnico: partición recursiva. Pero en la práctica, es exactamente lo que haría un analista de crédito experimentado.

El Marco de las Tres Capas

Para entender cómo funciona un árbol de decisión en producción, usa el Marco de las Tres Capas:

Capa 1 — Pregunta clave (nodo raíz): La variable que más separa las categorías. El modelo la identifica midiendo qué tan "mezclados" están los datos antes y después de dividirlos. Esta medida se llama impureza de Gini o entropía de información.

Capa 2 — Preguntas de apoyo (nodos internos): Cada rama del árbol hace una nueva pregunta sobre el subgrupo resultante. El árbol sigue dividiendo hasta que los grupos son suficientemente puros o hasta alcanzar un límite que tú defines.

Capa 3 — Decisión final (hoja): El nodo terminal dice la categoría ganadora. Por ejemplo: "riesgo alto" o "riesgo bajo". También te dice con qué porcentaje de confianza llegó a esa conclusión.

Este marco aplica igual si clasificas fraudes en FEMSA, productos defectuosos en Bimbo, o paquetes dañados en Mercado Libre.

Cómo construir uno en Python

Aquí un ejemplo real con datos de entregas de Mercado Libre. El objetivo es clasificar si una entrega llegará a tiempo o con retraso.

from sklearn.tree import DecisionTreeClassifier, export_text
import pandas as pd

# Datos de ejemplo: distancia en km, peso en kg, zona (1=urbana, 0=rural)
datos = {
    'distancia_km': [5, 20, 8, 35, 12, 50, 3, 45],
    'peso_kg': [1, 5, 2, 8, 3, 10, 1, 9],
    'zona_urbana': [1, 0, 1, 0, 1, 0, 1, 0],
    'a_tiempo': [1, 0, 1, 0, 1, 0, 1, 0]
}

df = pd.DataFrame(datos)

X = df[['distancia_km', 'peso_kg', 'zona_urbana']]
y = df['a_tiempo']

modelo = DecisionTreeClassifier(max_depth=3, random_state=42)
modelo.fit(X, y)

reglas = export_text(modelo, feature_names=['distancia_km', 'peso_kg', 'zona_urbana'])
print(reglas)

La salida se vería así:

|--- zona_urbana <= 0.50
|   |--- distancia_km > 27.50
|   |   |--- class: 0 (retraso)
|   |--- distancia_km <= 27.50
|   |   |--- class: 1 (a tiempo)
|--- zona_urbana > 0.50
|   |--- class: 1 (a tiempo)

Lee el árbol de arriba hacia abajo. La primera pregunta es sobre la zona. Si es rural (zona_urbana ≤ 0.50) y la distancia supera los 27.5 km, el modelo predice retraso. Si es zona urbana, predice que llega a tiempo sin más preguntas. Eso tiene sentido operativo total.

¿Cómo sabe el árbol qué pregunta hacer primero?

Aquí está el detalle técnico que marca la diferencia entre un árbol útil y uno inútil.

El algoritmo calcula la Ganancia de Información de cada variable disponible. La ganancia mide cuánto se reduce la "mezcla" de categorías después de hacer una pregunta. La variable con mayor ganancia se convierte en el nodo raíz.

En el ejemplo de Liverpool, si el historial crediticio reduce la mezcla de clientes en un 62% y el ingreso solo la reduce en un 38%, el árbol pregunta primero sobre el historial. No por intuición: por matemáticas.

Esto es poderoso porque también te dice qué variables importan más en tu negocio. Un árbol entrenado con datos de devoluciones en Bimbo podría revelar que el tipo de empaque predice el 71% de los casos de producto dañado, algo que ningún analista había notado antes.

Errores comunes al usar árboles de decisión

Error 1 — Sobreajuste (overfitting): Si dejas que el árbol crezca sin límite, memoriza los datos de entrenamiento pero falla con datos nuevos. Un árbol con 40 niveles de profundidad puede tener 99% de precisión en entrenamiento y solo 54% en datos reales. Solución: limita la profundidad con max_depth entre 3 y 7 niveles.

Error 2 — Variables con demasiadas categorías: Si una variable como "código postal" tiene 500 valores posibles, el árbol se confunde y sobrefragmenta los datos. Agrupa las categorías antes de entrenar.

Error 3 — Clases desbalanceadas: Si el 95% de tus datos son entregas a tiempo y solo el 5% son retrasos, el árbol aprende a decir "a tiempo" siempre y parece preciso. Pero en realidad no detecta ningún problema. Usa class_weight='balanced' como parámetro para corregirlo.

Error 4 — Confundir precisión global con utilidad: Un árbol que clasifica correctamente el 80% de los casos puede ser inútil si el 20% de errores son exactamente los casos más costosos. Revisa siempre la matriz de confusión, no solo el accuracy.

Cuándo usar un árbol y cuándo no

Usa árboles de decisión cuando:

  • Necesitas explicar las decisiones del modelo a un cliente o directivo.
  • Tienes variables mixtas (números y categorías).
  • Quieres una base interpretable antes de escalar a modelos más complejos.

No uses árboles de decisión cuando:

  • La relación entre variables es continua y suave (ahí la regresión lineal que viste en la lección anterior es mejor).
  • Tienes imágenes, audio o texto sin procesar.
  • Necesitas la máxima precisión posible y la interpretabilidad no importa (ahí existen alternativas como Random Forest o XGBoost).

En México, el 34% de los modelos de clasificación en fintech usan árboles de decisión o sus variantes como primer modelo de producción. Son el punto de entrada estándar para equipos que necesitan velocidad y transparencia al mismo tiempo.

De la teoría a la práctica

Supón que eres analista en FEMSA y quieres clasificar tiendas OXXO por riesgo de quiebre de inventario. Tienes datos de ventas diarias, superficie de la tienda, zona geográfica y día de la semana.

Entrenas un árbol con max_depth=4. La primera pregunta que hace el modelo es: ¿las ventas del día anterior superaron las 800 unidades? Eso te dice que las ventas recientes son la señal más poderosa para predecir el quiebre. Ningún reporte te hubiera dado ese insight tan rápido.

El árbol también te entrega reglas escritas que puedes compartir con el equipo de logística sin que tengan que entender Machine Learning. Esa es la ventaja real: no solo predice, sino que comunica.

Los árboles de decisión son el puente entre los datos y las personas que toman decisiones. Dominarlos es dominar la forma más legible de Machine Learning que existe.

Puntos clave

  • Un árbol de decisión clasifica datos haciendo preguntas de sí o no en orden de mayor a menor Ganancia de Información, lo que lo hace transparente y auditable.
  • El Marco de las Tres Capas organiza cualquier árbol en nodo raíz (pregunta clave), nodos internos (preguntas de apoyo) y hojas (decisión final con porcentaje de confianza).
  • El sobreajuste es el error más frecuente: un árbol sin límite de profundidad puede tener 99% de precisión en entrenamiento y solo 54% en datos reales; usa `max_depth` entre 3 y 7.
  • Las clases desbalanceadas engañan al modelo; si el 95% de tus datos pertenecen a una sola categoría, el árbol aprende a ignorar la minoría. Usa `class_weight='balanced'` para corregirlo.
  • El 34% de los modelos de clasificación en fintech mexicano usan árboles de decisión como primer modelo de producción porque combinan velocidad, precisión aceptable y resultados explicables a cualquier equipo.

Comparte esta lección: