Un árbol de decisión es uno de los algoritmos de machine learning más intuitivos. Aprende a clasificar datos tomando una serie de decisiones binarias basadas en las características de cada ejemplo — igual que un diagrama de flujo de diagnóstico. La clave está en cómo decide qué pregunta hacer primero: elige la característica que mejor separa las clases, medida por la impureza Gini.
Gini mide qué tan mezcladas están las clases en un grupo. Si todos los ejemplos son de la misma clase, Gini = 0 (puro). Si hay un 50/50, Gini = 0,5 (máximo desorden). El algoritmo prueba todas las características disponibles y elige la que más reduce el Gini al dividir los datos. Este proceso se repite recursivamente hasta que los nodos son puros o se alcanza la profundidad máxima.
Comparativa de algoritmos de árbol
| Algoritmo | Criterio de split | Tipo de árbol | Uso típico |
|---|
| ID3 | Ganancia de información (entropía) | Múltiples ramas | Datos categóricos |
| CART | Gini impurity (este visualizador) | Siempre binario | Clasificación y regresión |
| C4.5 | Ratio de ganancia | Múltiples ramas | Mejora de ID3 |
| Random Forest | Gini en subconjuntos aleatorios | Ensemble de árboles | Alta precisión |
| XGBoost / GBM | Gradient boosting | Árboles secuenciales | Competiciones de datos |
Casos de uso reales
🏥 Diagnóstico médicoCaracterísticas: síntomas, edad, historial. Clasifica en grupos de riesgo o posibles diagnósticos. Valorado por su interpretabilidad.
🏦 Riesgo crediticioCaracterísticas: ingresos, historial, deuda. Predice si un préstamo será devuelto. Los bancos prefieren árboles porque pueden explicar la decisión.
📧 Filtro de spamCaracterísticas: palabras clave, remitente, formato. Uno de los primeros usos del ML. Los filtros modernos usan ensembles de árboles.
🛒 Segmentación de clientesCaracterísticas: historial de compra, demografía. Predice qué clientes comprarán o abandonarán. Base de sistemas de recomendación.
Preguntas frecuentes
- ¿Qué significa que un nodo tenga Gini = 0?Significa que todos los ejemplos en ese nodo pertenecen a la misma clase — el nodo es puro. En el árbol se convierte en una hoja con una predicción con 100% de certeza sobre los datos de entrenamiento.
- ¿Por qué el árbol puede cambiar completamente al añadir un solo ejemplo?Porque el algoritmo reevalúa qué característica produce la mejor separación desde la raíz. Un ejemplo nuevo puede cambiar las proporciones suficiente para que otra característica pase a ser la mejor opción en el nodo raíz, reorganizando todo el árbol.
- ¿Qué es el sobreajuste en árboles de decisión?Un árbol muy profundo memoriza los datos de entrenamiento perfectamente (Gini=0 en todas las hojas) pero falla con datos nuevos. Se controla limitando la profundidad máxima, el número mínimo de ejemplos por nodo, o usando poda (pruning). El árbol de este visualizador tiene profundidad máxima 3 para evitarlo.
- ¿Qué diferencia hay entre árbol de decisión y Random Forest?Un Random Forest entrena cientos de árboles, cada uno con un subconjunto aleatorio de características y ejemplos, y combina sus predicciones por votación. Es mucho más preciso que un solo árbol y más resistente al sobreajuste, pero pierde interpretabilidad.
- ¿Este árbol puede usarse con datos reales fuera del visualizador?El visualizador usa una implementación simplificada en el navegador para fines educativos. Para producción, usa scikit-learn (Python) con DecisionTreeClassifier, que implementa CART con soporte para datos continuos, poda, y métricas de evaluación completas.
Ciclo completo de un árbol de decisión real
1Recoger y limpiar datos — obtener ejemplos etiquetados (cada fila = un ejemplo con sus características y la clase correcta). Limpiar valores faltantes y codificar categorías.
2Dividir en entrenamiento y test — reservar el 20-30% de los datos para evaluar el árbol al final. Nunca usar datos de test durante el entrenamiento.
3Entrenar y ajustar la profundidad — usar validación cruzada para encontrar la profundidad máxima que minimiza el error sin sobreajustar.
4Evaluar con datos de test — medir precisión, recall, F1-score y matriz de confusión. Si los resultados son insuficientes, considerar Random Forest o Gradient Boosting.
Buenas prácticas
⚖️Balancea las clasesSi tienes 95% de ejemplos negativos y 5% positivos, el árbol tenderá a predecir siempre negativo. Usa técnicas como SMOTE o pesos de clase.
✂️Poda el árbolUn árbol con Gini=0 en todas las hojas es sospechoso — está memorizando, no aprendiendo. Limita la profundidad o usa min_samples_leaf.
📊Valida con datos nuevosLa única forma de saber si el árbol funciona es probarlo con datos que no vio en el entrenamiento.
🌲Considera Random ForestSi la precisión del árbol es insuficiente, Random Forest casi siempre mejora los resultados con poco esfuerzo adicional.
- Usar el árbol sin datos de test — un Gini=0 en entrenamiento no garantiza nada sobre datos nuevos.
- Ignorar el desbalanceo de clases — un árbol entrenado con datos desbalanceados predice casi siempre la clase mayoritaria.
- Mezclar datos de entrenamiento y test — contamina la evaluación y produce métricas falsamente optimistas.
- Asumir que el árbol captura relaciones complejas — los árboles simples funcionan mal con patrones no lineales o de alta dimensión.