拟合 xgboost 自行车租赁模型并进行预测
在本练习中,您将使用 xgboost() 训练一个梯度提升模型,根据天气、类型以及一天中的时间来预测每小时的自行车租赁数量。您将使用 7 月的数据进行训练,并在 8 月的数据上做预测。
数据框 bikesJuly、bikesJuly.treat、bikesAugust 和 bikesAugust.treat 已预加载。请记住,经过 vtreat 处理后的数据不再包含输出列,因此需要从原始数据中获取(cnt 列)。
为方便起见,上一练习得到的树数量 ntrees 已可直接使用。
xgboost()(文档)的参数与 xgb.cv() 类似。
本练习是课程的一部分
R 中的监督学习:回归
练习说明
- 填空以在 7 月数据上运行
xgboost()。- 使用
as.matrix()将 vtreat 处理后的数据框转换为矩阵。 objective设为"reg:squarederror"。- 使用
ntrees轮数。 - 将
eta设为0.75,max_depth设为5,verbose设为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()