开始使用免费开始使用

可视化共享单车租赁的预测

在上一个练习中,您使用标准的"真实结果 vs. 预测值"散点图来可视化单车模型的预测。由于单车租赁数据是时间序列数据,您可能更关心模型随时间的表现。在本练习中,您将对比 8 月前 14 天的逐小时预测值和实际租赁量。

为创建该图,您将使用 tidyr::pivot_longer() 函数(文档)将 bikesAugust 中的预测值和实际值整合到一列中。pivot_longer() 的参数包括:

  • 需要透视的"宽格式"数据框(在管道中隐式传入)
  • 要收集到单列中的列名(关键字 "cols")。
  • 要创建的键列名称——包含被收集列的名称(关键字 "names_to")。
  • 要创建的值列名称——包含被收集列的数值(关键字 "values_to")。

您将使用透视后的数据框,随时间对比实际与预测的租赁计数。时间索引 instant 表示自数据收集开始以来的观测编号。示例代码将该索引转换为以天为单位的数值,从 0 开始。

已预加载包含预测值(bikesAugust$pred)的 bikesAugust 数据框。

本练习是课程的一部分

R 中的监督学习:回归

查看课程

练习说明

  • 填空以按小时绘制 8 月前 14 天的预测值与实际计数。
    • instant 从小时转换为天的单位
    • 使用 pivot_longer()cntpred 两列合并到名为 value 的列中,键列名为 valuetype
    • 使用 filter() 过滤出 8 月的前两周
    • value 作为 instant(天)的函数进行绘图。

模型是否捕捉到了单车租赁的整体时间模式?

交互式实操练习

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

# Plot predictions and cnt by date/time
bikesAugust %>% 
  # set start to 0, convert unit to days
  mutate(instant = (instant - min(instant))/24) %>%  
  # collect cnt and pred into a value column
  pivot_longer(cols = c('cnt', 'pred'), names_to = '___', values_to = '___') %>%  
  filter(instant < 14) %>% # restric to first 14 days
  # plot value by instant
  ggplot(aes(x = ___, y = ___, color = valuetype, linetype = valuetype)) + 
  geom_point() + 
  geom_line() + 
  scale_x_continuous("Day", breaks = 0:14, labels = 0:14) + 
  scale_color_brewer(palette = "Dark2") + 
  ggtitle("Predicted August bike rentals, Quasipoisson model")
编辑并运行代码