Validación cruzada (Cross‑Validation)
La validación cruzada es una técnica fundamental para evaluar modelos de manera más robusta. En lugar de usar una sola división de entrenamiento y prueba, la validación cruzada utiliza múltiples divisiones para obtener una evaluación más estable y confiable.
Tabla de contenidos
- Qué es la validación cruzada
- Por qué es importante
- K‑Fold Cross‑Validation
- Validación cruzada con Scikit‑Learn
- Cross‑Val Score
- Ejercicios
- Mini‑proyecto
1. Qué es la validación cruzada
La validación cruzada divide el dataset en múltiples partes (folds). El modelo se entrena en algunas partes y se evalúa en las restantes.
# Ejemplo conceptual con 5 folds
Fold 1 → prueba
Fold 2 → prueba
Fold 3 → prueba
Fold 4 → prueba
Fold 5 → prueba
2. Por qué es importante
- Reduce el riesgo de overfitting
- Proporciona una evaluación más estable
- Usa todo el dataset para entrenar y evaluar
- Permite comparar modelos de forma justa
3. K‑Fold Cross‑Validation
K‑Fold divide el dataset en K partes. K=5 y K=10 son los valores más comunes.
from sklearn.model_selection import KFold
kf = KFold(n_splits=5, shuffle=True, random_state=42)
4. Validación cruzada con Scikit‑Learn
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
scores = cross_val_score(model, X, y, cv=5)
print(scores)
print(scores.mean())
scores.mean() es el rendimiento promedio del modelo.
5. Cross‑Val Score
Cross‑Val Score permite evaluar el modelo con una sola línea de código.
scores = cross_val_score(model, X, y, cv=10)
Usar más folds aumenta la estabilidad, pero también el tiempo de cálculo.
6. Ejercicios
- Realiza validación cruzada con 5 folds.
- Realiza validación cruzada con 10 folds.
- Calcula el promedio de los resultados.
- Explica por qué la validación cruzada es más estable que train/test.
- Indica un caso real donde usarías K‑Fold.
# pista 5 folds
cross_val_score(model, X, y, cv=5)
# pista promedio
scores.mean()
7. Mini‑proyecto: Validación completa
Toma un dataset real y realiza:
- Validación cruzada con 5 folds
- Validación cruzada con 10 folds
- Comparación entre modelos
- Gráfica de resultados