Un árbol de decisión clasifica haciendo una serie de preguntas de sí/no, como un cuestionario que se ramifica. Es uno de los modelos más intuitivos que existen —se lee como un diagrama de flujo— y la pieza base de dos de los mejores modelos tabulares: Random Forest y XGBoost.
Cómo funciona: preguntas que dividen
El árbol parte de todos los datos juntos (la raíz) y los va separando con preguntas sobre las variables:
- ¿La edad es mayor a 30? → sí / no
- ¿El ingreso supera cierto umbral? → sí / no
Cada pregunta divide los datos en dos ramas. Se sigue preguntando hasta llegar a las hojas, que asignan la clase final. Clasificar un caso nuevo es solo recorrer el árbol desde la raíz respondiendo sus preguntas.
¿Qué pregunta elegir? La impureza
En cada nodo, el árbol busca la pregunta que deja las ramas resultantes lo más puras posible (idealmente, cada rama con una sola clase). La pureza se mide con el índice de Gini:
donde es la proporción de la clase en el nodo. Vale cuando el nodo contiene una sola clase (pureza total) y crece cuando las clases se mezclan. El árbol prueba cortes posibles y se queda con el que más reduce la impureza.
Su gran debilidad: el sobreajuste
Si se le deja crecer sin límite, un árbol termina con una hoja por cada ejemplo: memoriza los datos, incluido su ruido, y generaliza pésimo. Es el ejemplo perfecto de un modelo de alta varianza. Para controlarlo se lo poda, limitando su complejidad:
max_depth— la profundidad máxima del árbol.min_samples_leaf— el mínimo de ejemplos por hoja.
En código
scikit-learn lo entrena y, de regalo, permite leer sus reglas:
from sklearn.tree import DecisionTreeClassifier, export_text
# max_depth limita el crecimiento para no sobreajustar.
arbol = DecisionTreeClassifier(max_depth=3, random_state=0).fit(X_train, y_train)
arbol.predict(X_test)
print(export_text(arbol, feature_names=list(nombres_variables))) # las reglas, en texto
Esa transparencia —poder leer exactamente por qué decidió— es la mayor virtud del árbol.
Ventajas y límites
- A favor: interpretable, no necesita escalar variables, maneja datos mixtos.
- En contra: por sí solo es inestable y propenso al sobreajuste; un pequeño cambio en los datos puede producir un árbol muy distinto.
Para llevar
Un árbol de decisión separa los datos con preguntas sucesivas, eligiendo en cada paso el corte que más reduce la impureza. Es transparente e intuitivo, pero inestable y fácil de sobreajustar. La solución no es abandonarlo, sino combinar muchos: eso es exactamente lo que hacen Random Forest y XGBoost, las próximas lecciones.
