Evaluar un modelo de árbol de decisión implica analizar qué tan bien predice sobre datos nuevos. Aquí tienes los pasos más importantes para hacerlo:
✅ 1. Dividir los datos
Antes de entrenar, debes separar tu dataset:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
✅ 2. Entrenar el modelo
from sklearn.tree import DecisionTreeClassifier
modelo = DecisionTreeClassifier(random_state=42)
modelo.fit(X_train, y_train)
✅ 3. Realizar predicciones
y_pred = modelo.predict(X_test)
✅ 4. Evaluar el rendimiento
Usa métricas de clasificación:
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
print("Accuracy:", accuracy_score(y_test, y_pred))
print("\nMatriz de confusión:\n", confusion_matrix(y_test, y_pred))
print("\nReporte de clasificación:\n", classification_report(y_test, y_pred))
🔍 ¿Qué significan estas métricas?
MétricaSignificadoAccuracyPorcentaje de predicciones correctasPrecisión (precision)Qué tan precisas son las predicciones positivasRecall (sensibilidad)Qué tanto recupera el modelo de las clases verdaderasF1-scoreBalance entre precisión y recallConfusion MatrixMuestra predicciones correctas vs. incorrectas por clase
✅ 5. Importancia de variables (opcional)
Para saber qué variables son más útiles:
import pandas as pd
importancia = modelo.feature_importances_
print(pd.DataFrame({'Feature': feature_names, 'Importancia': importancia}))
✅ 6. Validación cruzada (opcional)
Para tener una mejor idea del rendimiento general:
from sklearn.model_selection import cross_val_score
scores = cross_val_score(modelo, X, y, cv=5)
print("Accuracy promedio:", scores.mean())