时空预测2-GCN_LSTM

参考: https://keras.io/examples/timeseries/timeseries_traffic_forecasting/

任务:

交通多步预测

准备数据

节点:228
计算每个节点之间的距离: 288 * 288
速度: 12672 * 288,时间 * 节点

为简化说明,只选取了26个节点

训练:6336 * 26
验证:2534 * 26
测试:3802 * 26

图数据

构图:邻接矩阵

  1. 每个node对应着一个向量计算distance matrix,这里实例中的原始数据已经给出.
  2. 将distance matrix转化为adj matrix。bool类型的矩阵
  3. adj通过np.where得到1对应的行和列,作为node和neighbour。也就是转化为两两的pair关系

实例中的方法大于一定阈值的都算有边,而百度风机的方法里每个节点计算最相关的k个

距离矩阵转化为邻接矩阵采用论文中的方法,tf中采用的方法是segment
在这里插入图片描述
以下实例中,segmeng_id针对的是向量,第一种ID0,也就是前两个的和,第二种ID1,也就是第三个的和。从而得到结果

c = tf.constant([[1,2,3,4], [-1,-2,-3,-4], [5,6,7,8]])
tf.math.segment_sum(c, tf.constant([0, 0, 1]))
#  ==>  [[0 0 0 0]
#        [5 6 7 8]]

模型

输入: batch * time_steps * node * feature
transpose: node * batch * time_steps * feature
GCN:周边消息传播
transpose: batch * node, time_steps, feature
LSTM:
dense: batch * node, pred_time_steps
output reshape: batch, pred_time_steps, node

其中的特殊之处在于GCN层,输入为node * batch * time_steps * feature
其中 in_feature = 1

多步预测

多步可以直接给出dense

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YueTann

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值