开始使用免费开始使用

拟合 xgboost 自行车租赁模型并进行预测

在本练习中,您将使用 xgboost() 训练一个梯度提升模型,根据天气、类型以及一天中的时间来预测每小时的自行车租赁数量。您将使用 7 月的数据进行训练,并在 8 月的数据上做预测。

数据框 bikesJulybikesJuly.treatbikesAugustbikesAugust.treat 已预加载。请记住,经过 vtreat 处理后的数据不再包含输出列,因此需要从原始数据中获取(cnt 列)。

为方便起见,上一练习得到的树数量 ntrees 已可直接使用。

xgboost()文档)的参数与 xgb.cv() 类似。

本练习是课程的一部分

R 中的监督学习:回归

查看课程

练习说明

  • 填空以在 7 月数据上运行 xgboost()
    • 使用 as.matrix() 将 vtreat 处理后的数据框转换为矩阵。
    • objective 设为 "reg:squarederror"
    • 使用 ntrees 轮数。
    • eta 设为 0.75max_depth 设为 5verbose 设为 FALSE(静默)。
  • 现在在 bikesAugust.treat 上调用 predict(),预测 8 月的租车数量。
    • 使用 as.matrix()vtreat 过的测试数据转换为矩阵。
    • 将预测结果作为 pred 列添加到 bikesAugust 中。
  • 填空以绘制实际租车量与预测值的对比图(横轴为预测值)。
    • 您是否看到了预测可能存在的问题?

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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()
编辑并运行代码