GAM สำหรับเรียนรู้การแปลงแบบไม่เชิงเส้น

Supervised Learning ใน R: การถดถอย

Nina Zumel and John Mount

Win-Vector, LLC

Generalized Additive Models (GAMs)

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

Supervised Learning ใน R: การถดถอย

การเรียนรู้ความสัมพันธ์แบบไม่เชิงเส้น

Supervised Learning ใน R: การถดถอย

gam() ใน mgcv package

gam(formula, family, data)

family:

  • gaussian (default): การถดถอยแบบ "ปกติ"
  • binomial: ความน่าจะเป็น
  • poisson/quasipoisson: การนับ

เหมาะสำหรับชุดข้อมูลขนาดใหญ่

Supervised Learning ใน R: การถดถอย

ฟังก์ชัน s()

anx ~ s(hassles)
  • s() กำหนดให้ตัวแปรนั้นเป็นแบบไม่เชิงเส้น
  • ใช้ s() กับตัวแปรต่อเนื่อง
    • ที่มีค่าไม่ซ้ำกันมากกว่าประมาณ 10 ค่า
Supervised Learning ใน R: การถดถอย

กลับมาดูข้อมูล hassles

Supervised Learning ใน R: การถดถอย

กลับมาดูข้อมูล 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
Supervised Learning ใน R: การถดถอย

GAM สำหรับข้อมูล 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
Supervised Learning ใน R: การถดถอย

ตรวจสอบการแปลง

plot(model)

ค่า $y$: predict(model, type = "terms")

Supervised Learning ใน R: การถดถอย

การพยากรณ์ด้วยโมเดล

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

Supervised Learning ใน R: การถดถอย

เปรียบเทียบประสิทธิภาพนอกกลุ่มตัวอย่าง

การรู้การแปลงที่ถูกต้องให้ผลดีที่สุด แต่ 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 มีสัญญาณรบกวนมากขึ้น
Supervised Learning ใน R: การถดถอย

มาฝึกกันเถอะ!

Supervised Learning ใน R: การถดถอย

Preparing Video For Download...