GAM para aprender transformaciones no lineales

Aprendizaje supervisado en R: Regresión

Nina Zumel and John Mount

Win-Vector, LLC

Modelos Aditivos Generalizados (GAM)

$$ y \sim b0 + s1(x1) + s2(x2) + .... $$

Aprendizaje supervisado en R: Regresión

Aprender relaciones no lineales

Aprendizaje supervisado en R: Regresión

gam() en el paquete mgcv

gam(formula, family, data)

family:

  • gaussian (predeterminado): regresión «normal»
  • binomial: probabilidades
  • poisson/quasipoisson: recuentos

Mejor para conjuntos de datos grandes

Aprendizaje supervisado en R: Regresión

La función s()

anx ~ s(hassles)
  • s() indica que la variable debe ser no lineal
  • Usa s() con variables continuas
    • Más de ~10 valores únicos
Aprendizaje supervisado en R: Regresión

Volvamos a los datos de hassles

Aprendizaje supervisado en R: Regresión

Volvamos a los datos de hassles

Modelo RMSE (valid. cruzada) $R^2$ (entrenamiento)
Lineal ($hassles$) 7.69 0.53
Cuadrático ($hassles^2$) 6.89 0.63
Cúbico ($hassles^3$) 6.70 0.65
Aprendizaje supervisado en R: Regresión

GAM con los datos de hassles

model <- gam(
  anx ~ s(hassles), 
  data = hassleframe, 
  family = gaussian
)

summary(model)
...

R-sq.(adj) =  0.619   Deviance explained = 64.1%
GCV = 49.132  Scale est. = 45.153    n = 40
Aprendizaje supervisado en R: Regresión

Examinar las transformaciones

plot(model)

Valores de $y$: predict(model, type = "terms")

Aprendizaje supervisado en R: Regresión

Predecir con el modelo

predict(model, newdata = hassleframe, type = "response")

Aprendizaje supervisado en R: Regresión

Comparar rendimiento fuera de muestra

Conocer la transformación correcta es ideal, pero GAM es útil cuando no se conoce

Modelo RMSE (valid. cruzada) $R^2$ (entrenamiento)
Lineal ($hassles$) 7.69 0.53
Cuadrático ($hassles^2$) 6.89 0.63
Cúbico ($hassles^3$) 6.70 0.65
GAM 7.06 0.64
  • Conjunto de datos pequeño $\rightarrow$ GAM más ruidoso
Aprendizaje supervisado en R: Regresión

¡Vamos a practicar!

Aprendizaje supervisado en R: Regresión

Preparing Video For Download...