【问题标题】:Predicting availability on a bike station预测自行车站的可用性
【发布时间】:2018-05-16 23:35:19
【问题描述】:

我最终决定开始学习机器学习,为此我试图预测我所在城市公共自行车共享系统的自行车可用性。

  • Dataset (1MB) 用于一个自行车站。列:日期、工作日、id、车站、free_bikes、free_docks

我一直在使用 Keras 关注 Machine Learning Mistery 的 tutorials,在这种情况下,它用于多变量时间序列预测 LSTM,我认为这足以解决我的问题。

目前,我正在训练 NN 喂它:weekday(t-1)、free_bikes(t-1) 和 free_bikes(t)。

损失和 val_loss graph 我认为看起来不错(ish)。如果我没记错的话,0.9 的 RMSE 表示我在进行预测时可能会出现错误或 1 辆自行车。

如果所有这些都是正确的,我还想向 NN 提供样本的采集日期,但我遇到了一些我不知道我能解决的问题。添加一个额外的列我得到这种错误:

ValueError: operands could not be broadcast together with shapes (5949,2) (3,) (5949,2)

要将日期添加到问题中,我将在读取文件时删除第 63 行上显示 index_col = 0 的部分。

添加日期来改进预测是否正确,应该如何做?

【问题讨论】:

  • 你能说出这些列的名字吗,还有你想预测哪一列?
  • 列是日期、工作日、id、车站、free_bikes、free_docks,我正在尝试预测 free_bikes(自行车可用性)

标签: python machine-learning keras


【解决方案1】:

values = values.astype('float32') 行将所有列转换为 float ,因此所有列都应为数字格式。 您的 2 列 Weekday 使用此行转换为整数

values[:, 0] = encoder.fit_transform(values[:, 0])

这一行将第 0(第一)列转换为整数。这里您的第一列是日期。

解决方案: 只需将第二列转换为整数

在上一行之后添加这一行

values[:, 1] = encoder.fit_transform(values[:, 1])

现在回答你的第二个问题

添加日期来改进预测是否正确,应该如何做?

不,不是。您可以只使用月份而不是时间日期

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多