【问题标题】:Combining two different datasets for machine learning结合两个不同的数据集进行机器学习
【发布时间】:2021-09-14 12:25:42
【问题描述】:

我有两个数据集。第一个是流量数据。列代表节点(交通传感器位置),索引是时间。里面的值是对应的时空速度值。看起来像这样:

In [1]: speed_matrix
Out[1]:
Time                   node1  node2  node3
2015-01-01 00:00:00       55     45     60  
2015-01-01 00:10:00       57     48     58
2015-01-01 00:20:00       56     50     60

第二个数据集是具有时间和天气条件的天气数据。看起来像这样:

In [2]: weather_data
Out[2]:
Time                   temperature  humidity  windspeed
2015-01-01 00:00:00             10        71        0.0  
2015-01-01 00:10:00             10        71        0.0 
2015-01-01 00:20:00             11        70        0.0 

我正在使用这些数据集来预测使用来自here 的 GraphConvolutionalLSTM 类(以及 PrepareDataset、TestModel 和 TrainModel 类)的流量。

我想以某种方式组合这两个数据集并测试使用额外的天气数据预测交通是否可以提高预测的准确性。我用于预测的模型适用于 speed_matrix,但我不知道如何添加天气数据。我应该以某种方式将数据集融合到一个数据集中吗?或者对模型进行更改?

我尝试像这样简单地合并两个数据框:

In [3]: merged data
Out[3]:
Time                   node1  node2  node3  temperature  humidity  windspeed
2015-01-01 00:00:00       55     45     60           10        71        0.0 
2015-01-01 00:10:00       57     48     58           10        71        0.0
2015-01-01 00:20:00       56     50     60           11        70        0.0

但运行代码时出现错误:

RuntimeError: mat1 and mat2 shapes cannot be multiplied (40x331 and 323x323)

我不确定 mat1 和 mat2 到底是什么。

【问题讨论】:

标签: python pandas dataframe machine-learning


【解决方案1】:

只需加入 2 个数据框。它们将根据索引对齐:

merged_data = speed_matrix.join(weather_data)

【讨论】:

    【解决方案2】:

    合并是这里的关键:

    import pandas
    dfinal = speed_matrix.merge(weather_data, on="Time", how = 'inner')
    

    【讨论】:

      猜你喜欢
      • 2016-06-12
      • 2012-08-13
      • 2020-02-03
      • 2018-09-07
      • 2021-12-21
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多