typestar

¿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

  1. learning_curve reajusta con varios tamaños de entrenamiento.
  2. Si los puntajes de entrenamiento y validación convergen, más datos no ayudarán.
  3. Una brecha amplia es varianza: regulariza o simplifica.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 4 de 4 en Validación; paso 11 de 25 en Machine learning con scikit-learn.

← Anterior Siguiente →