Melatih model xgboost untuk penyewaan sepeda dan melakukan prediksi
Dalam latihan ini, Anda akan melatih model gradient boosting menggunakan xgboost() untuk memprediksi jumlah sepeda yang disewa per jam berdasarkan cuaca serta jenis dan waktu hari. Anda akan melatih model pada data bulan Juli dan melakukan prediksi pada data bulan Agustus.
Data frame bikesJuly, bikesJuly.treat, bikesAugust, dan bikesAugust.treat juga sudah dimuat sebelumnya. Ingat bahwa data yang telah diproses dengan vtreat tidak lagi memiliki kolom keluaran, sehingga Anda harus mengambilnya dari data asli (kolom cnt).
Untuk kepraktisan, jumlah pohon yang akan digunakan, ntrees dari latihan sebelumnya, tersedia untuk digunakan.
Argumen untuk xgboost() (docs) mirip dengan xgb.cv().
Latihan ini adalah bagian dari kursus
Supervised Learning di R: Regresi
Petunjuk latihan
- Lengkapi bagian kosong untuk menjalankan
xgboost()pada data bulan Juli.- Gunakan
as.matrix()untuk mengonversi data frame yang telah diprosesvtreatmenjadi matriks. - Tujuan (objective) harus
"reg:squarederror". - Gunakan
ntreesputaran. - Atur
etake0.75,max_depthke5, danverbosekeFALSE(senyap).
- Gunakan
- Sekarang panggil
predict()padabikesAugust.treatuntuk memprediksi jumlah sepeda yang disewa pada bulan Agustus.- Gunakan
as.matrix()untuk mengonversi data uji yang telah diprosesvtreatmenjadi matriks. - Tambahkan prediksi ke
bikesAugustsebagai kolompred.
- Gunakan
- Lengkapi bagian kosong untuk membuat plot jumlah sewa sepeda aktual versus prediksi (prediksi pada sumbu x).
- Apakah Anda melihat kemungkinan masalah pada prediksinya?
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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()