GAM do uczenia nieliniowych transformacji

Nadzorowane uczenie maszynowe w R: regresja

Nina Zumel and John Mount

Win-Vector, LLC

Uogólnione modele addytywne (GAM)

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

Nadzorowane uczenie maszynowe w R: regresja

Uczenie nieliniowych zależności

Nadzorowane uczenie maszynowe w R: regresja

gam() w pakiecie mgcv

gam(formula, family, data)

family:

  • gaussian (domyślnie): regresja „zwykła"
  • binomial: prawdopodobieństwa
  • poisson/quasipoisson: liczebności

Najlepszy dla większych zbiorów danych

Nadzorowane uczenie maszynowe w R: regresja

Funkcja s()

anx ~ s(hassles)
  • s() oznacza, że zmienna ma być nieliniowa
  • Stosować s() dla zmiennych ciągłych
    • Ponad około 10 unikalnych wartości
Nadzorowane uczenie maszynowe w R: regresja

Ponowna analiza danych hassles

Nadzorowane uczenie maszynowe w R: regresja

Ponowna analiza danych hassles

Model RMSE (walidacja krzyżowa) $R^2$ (trening)
Liniowy ($hassles$) 7,69 0,53
Kwadratowy ($hassles^2$) 6,89 0,63
Sześcienny ($hassles^3$) 6,70 0,65
Nadzorowane uczenie maszynowe w R: regresja

GAM dla danych 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
Nadzorowane uczenie maszynowe w R: regresja

Analiza transformacji

plot(model)

Wartości $y$: predict(model, type = "terms")

Nadzorowane uczenie maszynowe w R: regresja

Prognozowanie za pomocą modelu

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

Nadzorowane uczenie maszynowe w R: regresja

Porównanie wydajności na danych testowych

Znajomość właściwej transformacji jest najlepsza, ale GAM przydaje się, gdy jest ona nieznana

Model RMSE (walidacja krzyżowa) $R^2$ (trening)
Liniowy ($hassles$) 7,69 0,53
Kwadratowy ($hassles^2$) 6,89 0,63
Sześcienny ($hassles^3$) 6,70 0,65
GAM 7,06 0,64
  • Mały zbiór danych $\rightarrow$ bardziej zaszumiony GAM
Nadzorowane uczenie maszynowe w R: regresja

Czas na ćwiczenia!

Nadzorowane uczenie maszynowe w R: regresja

Preparing Video For Download...