xgboost で自転車レンタル数を学習して予測する
この演習では、xgboost() を使って勾配ブースティングモデルを学習し、天気、種別、時間帯から1時間あたりの自転車レンタル台数を予測します。7月のデータで学習し、8月のデータで予測します。
データフレーム bikesJuly、bikesJuly.treat、bikesAugust、bikesAugust.treat はすでに読み込まれています。vtreat 済みデータには目的変数の列が含まれない点に注意してください。元のデータから(cnt 列)取得する必要があります。
便宜上、前の演習で使用した木の本数 ntrees が利用できます。
xgboost()(docs)の引数は xgb.cv() とよく似ています。
この演習はコースの一部です
R による Supervised Learning:回帰
演習の手順
- 空欄を埋めて、7月データに対して
xgboost()を実行してください。as.matrix()を使って、vtreat 済みデータフレームを行列に変換します。- 目的関数は
"reg:squarederror"を指定します。 - 反復回数は
ntreesを使います。 etaは0.75、max_depthは5、verboseはFALSE(非表示)に設定します。
- 次に、
bikesAugust.treatに対してpredict()を呼び出し、8月のレンタル台数を予測します。- テストデータ(
vtreat済み)もas.matrix()で行列に変換します。 - 予測値を
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()