Huấn luyện mô hình xgboost cho thuê xe đạp và dự đoán
Trong bài tập này, bạn sẽ huấn luyện một mô hình gradient boosting dùng xgboost() để dự đoán số lượng xe đạp được thuê theo giờ dựa trên thời tiết, loại hình và thời điểm trong ngày. Bạn sẽ huấn luyện mô hình trên dữ liệu tháng 7 và dự đoán trên dữ liệu tháng 8.
Các data frame bikesJuly, bikesJuly.treat, bikesAugust và bikesAugust.treat đã được nạp sẵn. Hãy nhớ rằng dữ liệu đã qua vtreat không còn cột biến mục tiêu, nên bạn cần lấy biến mục tiêu từ dữ liệu gốc (cột cnt).
Để thuận tiện, số lượng cây cần dùng, ntrees từ bài trước đã sẵn sàng để dùng.
Các đối số của xgboost() (docs) tương tự như xgb.cv().
Bài tập này là một phần của khóa học
Học có giám sát với R: Hồi quy
Hướng dẫn bài tập
- Điền vào chỗ trống để chạy
xgboost()trên dữ liệu tháng 7.- Dùng
as.matrix()để chuyển data frame đã vtreated thành ma trận. - Objective nên là
"reg:squarederror". - Dùng
ntreesvòng lặp. - Đặt
etalà0.75,max_depthlà5, vàverboselàFALSE(im lặng).
- Dùng
- Gọi
predict()trênbikesAugust.treatđể dự đoán số xe đạp thuê trong tháng 8.- Dùng
as.matrix()để chuyển dữ liệu kiểm thử đã quavtreatthành ma trận. - Thêm dự đoán vào
bikesAugustdưới dạng cộtpred.
- Dùng
- Điền vào chỗ trống để vẽ biểu đồ số lượt thuê thực tế so với dự đoán (đưa dự đoán lên trục x).
- Bạn có thấy vấn đề tiềm ẩn nào với các dự đoán không?
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Run xgboost
bike_model_xgb <- xgboost(data = ___, # training data as matrix
label = ___, # column of outcomes
nrounds = ___, # number of trees to build
objective = ___, # objective
eta = ___,
max_depth = ___,
verbose = FALSE # silent
)
# Make predictions
bikesAugust$pred <- ___(___, ___(___))
# Plot predictions (on x axis) vs actual bike rental count
ggplot(bikesAugust, aes(x = ___, y = ___)) +
geom_point() +
geom_abline()