GAM pour apprendre des transformations non linéaires

Apprentissage supervisé en R : Régression

Nina Zumel and John Mount

Win-Vector, LLC

Generalized Additive Models (GAM)

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

Apprentissage supervisé en R : Régression

Apprendre des relations non linéaires

Apprentissage supervisé en R : Régression

gam() dans le package mgcv

gam(formula, family, data)

family :

  • gaussian (par défaut) : régression « classique »
  • binomial : probabilités
  • poisson/quasipoisson : décomptes

Idéal pour de grands jeux de données

Apprentissage supervisé en R : Régression

La fonction s()

anx ~ s(hassles)
  • s() indique une relation non linéaire pour la variable
  • À utiliser avec des variables continues
    • Plus d'environ 10 valeurs uniques
Apprentissage supervisé en R : Régression

Revoir les données « hassles »

Apprentissage supervisé en R : Régression

Revoir les données « hassles »

Modèle RMSE (validation croisée) $R^2$ (apprentissage)
Linéaire ($hassles$) 7.69 0.53
Quadratique ($hassles^2$) 6.89 0.63
Cubique ($hassles^3$) 6.70 0.65
Apprentissage supervisé en R : Régression

GAM sur les données « 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
Apprentissage supervisé en R : Régression

Examiner les transformations

plot(model)

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

Apprentissage supervisé en R : Régression

Prédire avec le modèle

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

Apprentissage supervisé en R : Régression

Comparer les performances hors échantillon

Connaître la bonne transformation reste idéal, mais un GAM est utile quand elle est inconnue

Modèle RMSE (validation croisée) $R^2$ (apprentissage)
Linéaire ($hassles$) 7.69 0.53
Quadratique ($hassles^2$) 6.89 0.63
Cubique ($hassles^3$) 6.70 0.65
GAM 7.06 0.64
  • Petit jeu de données $\rightarrow$ GAM plus bruité
Apprentissage supervisé en R : Régression

Passons à la pratique !

Apprentissage supervisé en R : Régression

Preparing Video For Download...