Validación K-Fold
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 37 de 58.
Este capítulo hace que tus puntuaciones sean fiables. Al terminarlo, ajustarás un modelo con gráficos como este:
Una sola división de prueba puede tener suerte. La validación cruzada K-fold divide las filas en pliegues, aquí 5, y prueba en cada pliegue por turnos, entrenando con el resto:
Una llamada ejecuta las cinco, aquí para un árbol con las flores de iris:
from sklearn.model_selection import cross_val_score
tree = DecisionTreeClassifier(random_state=0)
scores = cross_val_score(tree, X, y, cv=5)
print(np.round(scores, 3))
print(f"{scores.mean():.3f} {scores.std():.3f}")Esto imprime:
[0.967 0.967 0.9 0.967 1. ]
0.960 0.033Informa la media como puntuación y la desviación estándar como cuánto varía.
Desafío
IntermedioUna fábrica de kombucha predice qué lotes se han echado a perder a partir de 5 lecturas de laboratorio. ¿Qué tan estable es su modelo? El programa lee el número de particiones; el código inicial genera los datos y el modelo.
- Valida el modelo de forma cruzada con ese número de particiones.
- Imprime la precisión de cada partición, después la media y la desviación estándar, todo con 3 decimales.
- Imprime el número de la partición más débil, contando desde 1.
Para otros lotes y 4:
Fold 1: 0.917
Fold 2: 0.933
Fold 3: 0.883
Fold 4: 0.917
Mean 0.912, std 0.018
Weakest fold: 3Pruébalo tú mismo
import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
n_folds = int(input())
# No cambies las líneas siguientes: 240 lotes de kombucha, con 5 mediciones de laboratorio cada uno; la etiqueta 1 indica que está estropeado
X, y = make_classification(n_samples=240, n_features=5, n_informative=3, n_redundant=0,
flip_y=0.08, class_sep=0.9, random_state=2)
model = LogisticRegression(max_iter=1000)
# Escribe tu código a continuación
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Aprendizaje supervisado
1Tu primer modelo
Aprender de ejemplosConjuntos de entrenamiento y pruebaAjustar y predecirEvaluar un modeloRepaso: clasificador de semillas4Regresión logística
Predicciones de sí o noEl umbral de decisiónLos pesos como evidenciaVarias clasesRepaso: filtro de spam2Vecinos más cercanos
Cómo decide k-NNCómo elegir kFronteras de decisiónEscalado para los vecinosRepaso: vecinos del vino5Medición de clasificadores
La matriz de confusiónPrecisión y exhaustividadLa puntuación F1Clases desequilibradasCurvas ROCRepaso: prueba de detección8Validación cruzada
Validación K-FoldComparación justa de modelosBúsqueda en cuadrículaRepaso: reparaciones de monopatines11Proyecto: especies de pingüinos
Conoce a los pingüinosPrepara los datosElige un modeloAjusta el modelo ganadorPublica el modelo3Regresión lineal
Predicción de númerosVarias característicasMedición de erroresGráficos de residuosRepaso: alquiler de bicicletas6Árboles de decisión
Los árboles hacen preguntasLeer un árbolProfundidad del árbolImportancia de las característicasRepaso: decisiones de préstamosPractica por tu cuenta: Compilador de Python online