Huấn Luyện Mô Hình Đúng Cách

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

Nina Zumel and John Mount

Win-Vector, LLC

Mô hình có thể tốt trên dữ liệu huấn luyện nhưng kém trên dữ liệu tương lai.

  • $R^2$ huấn luyện: 0.9; $R^2$ kiểm tra: 0.15 -- Overfit
Học có giám sát với R: Hồi quy

Chia tập Train/Test

Phương pháp khuyến nghị khi dữ liệu dồi dào

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

Ví dụ: Mô hình Thất nghiệp Nữ

  • Train trên 66 dòng, test trên 30 dòng
Học có giám sát với R: Hồi quy

Hiệu năng mô hình: Train vs. Test

  • Huấn luyện: RMSE 0.71, $R^2$ 0.8
  • Kiểm tra: RMSE 0.93, $R^2$ 0.75
Học có giám sát với R: Hồi quy

Cross-Validation

Ưu tiên khi dữ liệu không đủ lớn để tách tập kiểm tra

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

Cross-Validation

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

Cross-Validation

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

Cross-Validation

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

Tạo kế hoạch cross-validation

library(vtreat)
splitPlan <- kWayCrossValidation(nRows, nSplits, NULL, NULL)
  • nRows: số dòng trong dữ liệu huấn luyện
  • nSplits: số fold (phân đoạn) trong cross-validation
    • ví dụ, nfolds = 3 cho cross-validation 3 phần
  • 2 đối số còn lại không cần ở đây
Học có giám sát với R: Hồi quy

Tạo kế hoạch cross-validation

library(vtreat)
splitPlan <- kWayCrossValidation(10, 3, NULL, NULL)

Fold đầu (A và B để train, C để test)

splitPlan[[1]]
$train
1  2  4  5  7  9 10
$app
3 6 8

Train trên A và B, test trên C, v.v.

split <- splitPlan[[1]]
model <- lm(fmla, data = df[split$train,])
df$pred.cv[split$app] <- predict(model, newdata = df[split$app,])
Học có giám sát với R: Hồi quy

Mô hình cuối cùng

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

Ví dụ: Mô hình Thất nghiệp

Loại đo lường RMSE $R^2$
train 0.7082675 0.8029275
test 0.9349416 0.7451896
cross-validation 0.8175714 0.7635331
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...