GAM pour apprendre des transformations non linéaires

Apprentissage supervisé en R : régression

Nina Zumel and John Mount

Win-Vector, LLC

Modèles additifs généralisés (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 paquet mgcv

gam(formula, family, data)

family :

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

Idéal pour de grands ensembles de données

Apprentissage supervisé en R : régression

La fonction s()

anx ~ s(hassles)
  • s() indique qu'une variable doit être non linéaire
  • Utilisez s() avec des variables continues
    • Plus d'une dizaine de valeurs uniques
Apprentissage supervisé en R : régression

Retour aux données hassles

Apprentissage supervisé en R : régression

Retour aux données hassles

Modèle RMSE (validation croisée) $R^2$ (entraînement)
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 la performance hors échantillon

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

Modèle RMSE (validation croisée) $R^2$ (entraînement)
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 ensemble de données $\rightarrow$ GAM plus bruyant
Apprentissage supervisé en R : régression

Passons à la pratique !

Apprentissage supervisé en R : régression

Preparing Video For Download...