GAM pentru transformări neliniare

Învățare supervizată în R: Regresia

Nina Zumel and John Mount

Win-Vector, LLC

Modele Aditive Generalizate (GAM)

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

Învățare supervizată în R: Regresia

Învățarea relațiilor neliniare

Învățare supervizată în R: Regresia

gam() din pachetul mgcv

gam(formula, family, data)

family:

  • gaussian (implicit): regresie „clasică"
  • binomial: probabilități
  • poisson/quasipoisson: numărători

Recomandat pentru seturi mari de date

Învățare supervizată în R: Regresia

Funcția s()

anx ~ s(hassles)
  • s() indică faptul că variabila trebuie să fie neliniară
  • Utilizați s() cu variabile continue
    • Mai mult de aproximativ 10 valori unice
Învățare supervizată în R: Regresia

Revenire la datele hassles

Învățare supervizată în R: Regresia

Revenire la datele hassles

Model RMSE (validare încrucișată) $R^2$ (antrenare)
Liniar ($hassles$) 7.69 0.53
Pătratic ($hassles^2$) 6.89 0.63
Cubic ($hassles^3$) 6.70 0.65
Învățare supervizată în R: Regresia

GAM pe datele 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
Învățare supervizată în R: Regresia

Examinarea transformărilor

plot(model)

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

Învățare supervizată în R: Regresia

Predicții cu modelul

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

Învățare supervizată în R: Regresia

Compararea performanței pe date noi

Transformarea corectă este ideală, dar GAM este util când aceasta nu este cunoscută

Model RMSE (validare încrucișată) $R^2$ (antrenare)
Liniar ($hassles$) 7.69 0.53
Pătratic ($hassles^2$) 6.89 0.63
Cubic ($hassles^3$) 6.70 0.65
GAM 7.06 0.64
  • Set de date mic $\rightarrow$ GAM mai zgomotos
Învățare supervizată în R: Regresia

Să exersăm!

Învățare supervizată în R: Regresia

Preparing Video For Download...