Doğrusal Olmayan Dönüşümleri Öğrenmek için GAM

R'de Supervised Learning: Regresyon

Nina Zumel and John Mount

Win-Vector, LLC

Genelleştirilmiş Toplamsal Modeller (GAM)

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

R'de Supervised Learning: Regresyon

Doğrusal Olmayan İlişkileri Öğrenme

R'de Supervised Learning: Regresyon

mgcv paketinde gam()

gam(formula, family, data)

family:

  • gaussian (varsayılan): "normal" regresyon
  • binomial: olasılıklar
  • poisson/quasipoisson: sayımlar

Büyük veri kümeleri için daha iyi

R'de Supervised Learning: Regresyon

s() fonksiyonu

anx ~ s(hassles)
  • s(), değişkenin doğrusal olmadığını belirtir
  • s()'yi sürekli değişkenlerle kullan
    • Yaklaşık 10'dan fazla benzersiz değer
R'de Supervised Learning: Regresyon

Hassles verisini yeniden ele alalım

R'de Supervised Learning: Regresyon

Hassles verisini yeniden ele alalım

Model RMSE (çapraz doğr.) $R^2$ (eğitim)
Doğrusal ($hassles$) 7.69 0.53
Karesel ($hassles^2$) 6.89 0.63
Kübik ($hassles^3$) 6.70 0.65
R'de Supervised Learning: Regresyon

Hassles verisinin GAM'i

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
R'de Supervised Learning: Regresyon

Dönüşümleri İnceleme

plot(model)

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

R'de Supervised Learning: Regresyon

Modelle Tahmin

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

R'de Supervised Learning: Regresyon

Örnek dışı performansı karşılaştırma

Doğru dönüşümü bilmek en iyisi, ama dönüşüm bilinmiyorsa GAM işine yarar

Model RMSE (çapraz doğr.) $R^2$ (eğitim)
Doğrusal ($hassles$) 7.69 0.53
Karesel ($hassles^2$) 6.89 0.63
Kübik ($hassles^3$) 6.70 0.65
GAM 7.06 0.64
  • Küçük veri kümesi $\rightarrow$ daha gürültülü GAM
R'de Supervised Learning: Regresyon

Hadi pratik yapalım!

R'de Supervised Learning: Regresyon

Preparing Video For Download...