गैर-रैखिक ट्रांसफॉर्मेशन सीखने के लिए GAM

R में Supervised Learning: Regression

Nina Zumel and John Mount

Win-Vector, LLC

Generalized Additive Models (GAMs)

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

R में Supervised Learning: Regression

गैर-रैखिक संबंध सीखना

R में Supervised Learning: Regression

mgcv पैकेज में gam()

gam(formula, family, data)

family:

  • gaussian (डिफ़ॉल्ट): "रेगुलर" रिग्रेशन
  • binomial: probabilities
  • poisson/quasipoisson: counts

बड़े डेटासेट के लिए बेहतर

R में Supervised Learning: Regression

s() फंक्शन

anx ~ s(hassles)
  • s() दर्शाता है कि वैरिएबल non-linear होना चाहिए
  • s() का उपयोग continuous वैरिएबल्स के साथ करें
    • लगभग 10 से अधिक यूनीक वैल्यू हों
R में Supervised Learning: Regression

hassles डेटा पर फिर नज़र डालें

R में Supervised Learning: Regression

hassles डेटा पर फिर नज़र डालें

Model RMSE (cross-val) $R^2$ (training)
Linear ($hassles$) 7.69 0.53
Quadratic ($hassles^2$) 6.89 0.63
Cubic ($hassles^3$) 6.70 0.65
R में Supervised Learning: Regression

hassles डेटा का GAM

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 में Supervised Learning: Regression

ट्रांसफॉर्मेशन जाँचें

plot(model)

$y$ वैल्यू: predict(model, type = "terms")

R में Supervised Learning: Regression

मॉडल से prediction

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

R में Supervised Learning: Regression

आउट-ऑफ-सैंपल प्रदर्शन की तुलना

सही ट्रांसफॉर्मेशन जानना बेहतर है, पर जब ट्रांसफॉर्मेशन ज्ञात न हो तो GAM उपयोगी है।

Model RMSE (cross-val) $R^2$ (training)
Linear ($hassles$) 7.69 0.53
Quadratic ($hassles^2$) 6.89 0.63
Cubic ($hassles^3$) 6.70 0.65
GAM 7.06 0.64
  • छोटा डेटासेट $\rightarrow$ GAM ज़्यादा noisy
R में Supervised Learning: Regression

अभ्यास करते हैं!

R में Supervised Learning: Regression

Preparing Video For Download...