MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Lengkapi bagian kosong untuk menjalankan xgboost() pada data bulan Juli.
    • Gunakan as.matrix() untuk mengonversi data frame yang telah diproses vtreat menjadi matriks.
    • Tujuan (objective) harus "reg:squarederror".
    • Gunakan ntrees putaran.
    • Atur eta ke 0.75, max_depth ke 5, dan verbose ke FALSE (senyap).
  • Sekarang panggil predict() pada bikesAugust.treat untuk memprediksi jumlah sepeda yang disewa pada bulan Agustus.
    • Gunakan as.matrix() untuk mengonversi data uji yang telah diproses vtreat menjadi matriks.
    • Tambahkan prediksi ke bikesAugust sebagai kolom pred.
  • 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()
Edit dan Jalankan Kode