¿Más datos ayudan? en Python
Una curva de aprendizaje responde si conviene juntar datos o cambiar el modelo.
import numpy as np
from sklearn.datasets import load_digits
from sklearn.model_selection import learning_curve
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
X, y = load_digits(return_X_y=True)
modelo = make_pipeline(StandardScaler(), SVC(gamma=0.001))
tamanos, puntajes_entreno, puntajes_valida = learning_curve(
modelo, X, y, train_sizes=np.linspace(0.2, 1.0, 4), cv=4)
for n, entreno, valida in zip(tamanos, puntajes_entreno.mean(axis=1),
puntajes_valida.mean(axis=1)):
print(f"{n:5.0f} filas entreno {entreno:.3f} valida {valida:.3f}")
Cómo funciona
learning_curvereajusta con varios tamaños de entrenamiento.- Si los puntajes de entrenamiento y validación convergen, más datos no ayudarán.
- Una brecha amplia es varianza: regulariza o simplifica.
Palabras clave y builtins usados aquí
asforprintzip
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 617
- Tokens
- 143
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 78 segundos.
Paso 4 de 4 en Validación; paso 11 de 25 en Machine learning con scikit-learn.