GAM để học các biến đổi phi tuyến

Học có giám sát với R: Hồi quy

Nina Zumel and John Mount

Win-Vector, LLC

Generalized Additive Models (GAMs)

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

Học có giám sát với R: Hồi quy

Học các quan hệ phi tuyến

Học có giám sát với R: Hồi quy

gam() trong gói mgcv

gam(formula, family, data)

family:

  • gaussian (mặc định): hồi quy "thông thường"
  • binomial: xác suất
  • poisson/quasipoisson: đếm

Phù hợp nhất cho bộ dữ liệu lớn

Học có giám sát với R: Hồi quy

Hàm s()

anx ~ s(hassles)
  • s() chỉ định biến nên là phi tuyến
  • Dùng s() với biến liên tục
    • Hơn khoảng 10 giá trị khác nhau
Học có giám sát với R: Hồi quy

Xem lại dữ liệu hassles

Học có giám sát với R: Hồi quy

Xem lại dữ liệu hassles

Model RMSE (cross-val) $R^2$ (training)
Tuyến tính ($hassles$) 7.69 0.53
Bậc hai ($hassles^2$) 6.89 0.63
Bậc ba ($hassles^3$) 6.70 0.65
Học có giám sát với R: Hồi quy

GAM cho dữ liệu 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
Học có giám sát với R: Hồi quy

Khám phá các phép biến đổi

plot(model)

Giá trị $y$: predict(model, type = "terms")

Học có giám sát với R: Hồi quy

Dự đoán với mô hình

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

Học có giám sát với R: Hồi quy

So sánh hiệu năng ngoài mẫu

Biết đúng phép biến đổi là tốt nhất, nhưng GAM hữu ích khi chưa biết biến đổi nào phù hợp

Model RMSE (cross-val) $R^2$ (training)
Tuyến tính ($hassles$) 7.69 0.53
Bậc hai ($hassles^2$) 6.89 0.63
Bậc ba ($hassles^3$) 6.70 0.65
GAM 7.06 0.64
  • Bộ dữ liệu nhỏ $\rightarrow$ GAM nhiễu hơn
Học có giám sát với R: Hồi quy

Cùng luyện tập nào!

Học có giám sát với R: Hồi quy

Preparing Video For Download...