Entrenar bien un modelo

Aprendizaje supervisado en R: Regresión

Nina Zumel and John Mount

Win-Vector, LLC

Los modelos pueden rendir mucho mejor en entrenamiento que en datos futuros.

  • $R^2$ de entrenamiento: 0.9; $R^2$ de prueba: 0.15 — Sobreajuste
Aprendizaje supervisado en R: Regresión

División train/test

Método recomendado cuando hay muchos datos

Aprendizaje supervisado en R: Regresión

Ejemplo: Modelar el desempleo femenino

  • Entrena con 66 filas, prueba con 30 filas
Aprendizaje supervisado en R: Regresión

Rendimiento del modelo: train vs. test

  • Entrenamiento: RMSE 0.71, $R^2$ 0.8
  • Prueba: RMSE 0.93, $R^2$ 0.75
Aprendizaje supervisado en R: Regresión

Validación cruzada

Preferible cuando no hay suficientes datos para separar un conjunto de prueba

Aprendizaje supervisado en R: Regresión

Validación cruzada

Aprendizaje supervisado en R: Regresión

Validación cruzada

Aprendizaje supervisado en R: Regresión

Validación cruzada

Aprendizaje supervisado en R: Regresión

Crear un plan de validación cruzada

library(vtreat)
splitPlan <- kWayCrossValidation(nRows, nSplits, NULL, NULL)
  • nRows: número de filas en los datos de entrenamiento
  • nSplits: número de pliegues (particiones) en la validación cruzada
    • p. ej., nfolds = 3 para validación cruzada en 3 pliegues
  • los otros 2 argumentos no se necesitan aquí
Aprendizaje supervisado en R: Regresión

Crear un plan de validación cruzada

library(vtreat)
splitPlan <- kWayCrossValidation(10, 3, NULL, NULL)

Primer pliegue (A y B para entrenar, C para probar)

splitPlan[[1]]
$train
1  2  4  5  7  9 10
$app
3 6 8

Entrena con A y B, prueba con C, etc.

split <- splitPlan[[1]]
model <- lm(fmla, data = df[split$train,])
df$pred.cv[split$app] <- predict(model, newdata = df[split$app,])
Aprendizaje supervisado en R: Regresión

Modelo final

Aprendizaje supervisado en R: Regresión

Ejemplo: modelo de desempleo

Tipo de medida RMSE $R^2$
train 0.7082675 0.8029275
test 0.9349416 0.7451896
validación cruzada 0.8175714 0.7635331
Aprendizaje supervisado en R: Regresión

¡Vamos a practicar!

Aprendizaje supervisado en R: Regresión

Preparing Video For Download...