開始使用免費開始

訓練 xgboost 自行車租借模型並進行預測

在這個練習中,你會使用 xgboost() 訓練一個梯度提升模型,根據天氣、類型與一天中的時間來預測每小時租借的自行車數量。你將以 7 月的資料訓練模型,並在 8 月的資料上進行預測。

bikesJulybikesJuly.treatbikesAugustbikesAugust.treat 這些資料框已經預先載入。請記得,經 vtreat 處理後的資料不再包含目標欄位,因此你必須從原始資料中取得(cnt 欄)。

方便起見,上一個練習中的樹數 ntrees 可以直接使用。

xgboost()文件)的引數與 xgb.cv() 類似。

本練習屬於課程

R 中的監督式學習:回歸

檢視課程

練習說明

  • 填空以在 7 月資料上執行 xgboost()
    • 使用 as.matrix() 將經 vtreated 的資料框轉為矩陣。
    • objective 應為 "reg:squarederror"
    • 使用 ntrees 輪次。
    • eta 設為 0.75max_depth 設為 5,並將 verbose 設為 FALSE(靜默)。
  • 接著在 bikesAugust.treat 上呼叫 predict(),預測 8 月的自行車租借量。
    • 使用 as.matrix() 將經 vtreat 處理的測試資料轉為矩陣。
    • 將預測結果加入 bikesAugust,欄位名稱為 pred
  • 填空以繪製實際租借量與預測值的對照圖(x 軸為預測值)。
    • 你是否看到預測可能存在的問題?

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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()
編輯並執行程式碼