数据集笔记:杭州 & 上海 地铁客流数据

数据集地址:PVCGN/data at master · liuwj2000/PVCGN (github.com)

1 数据集介绍

  • 从5:15到23:30的地铁乘客流量预测
    • 使用前四个时间间隔(15分钟 x 4 = 60分钟)的地铁乘客流量(进/出流量)来预测未来四个时间间隔(15分钟 x 4 = 60分钟)的地铁乘客流量(进/出流量)
      • 5:15-6:15 -- 预测 -> 6:15-7:15
      • 5:30-6:30 -- 预测 -> 6:30-7:30
      • ...
      • 21:15-22:15 -- 预测 -> 22:15-23:15
      • 21:30-22:30 -- 预测 -> 22:30-23:30
    • 每天可以分为66个时间片段
  • 杭州和上海每个数据集,各有六个pkl文件
    • 三个用于地铁乘客流量数据
      • 一个训练集、一个验证集和一个测试集
    • 三个用于地铁图信息
      • graph_conn.pkl: 地铁的物理图
      • graph_sml.pkl: 地铁的相似性图
      • graph_conn.pkl: 地铁的相关图

2 数据读取

2.1 流量数据

2.1.1 训练数据

import pickle
import os
os.chdir('data/shanghai/')

f=open('train.pkl','rb')

a=pickle.load(f)
a

字符串5:30表示从5:15到5:30的时间间隔

a['x'].shape,a['y'].shape
#((4092, 4, 288, 2), (4092, 4, 288, 2))

a['xtime'].shape,a['ytime'].shape
#((4092, 4), (4092, 4))
  • 可以看到,这个数据是一个由4个ndarray组成的字典
    • x: 前四个时间间隔的地铁乘客流量(进/出流量)
      • 其形状是[T, n, N, D]
        • T是时间片段的数量(62天)
        • n是输入序列的长度(这里是4)
        • N是地铁站的数量
        • D是 inflow 和 outflow,所以为2
    • y: 下四个时间间隔的地铁乘客流量(进/出流量)
      • 其形状也是[T, m, N, D]
        • m是输入序列的长度(这里是4)
    • xtime: x的时间戳。其形状是[T, n]
    • ytime: y的时间戳。其形状是[T, m]

2.1.2 测试数据

import pickle

f=open('val.pkl','rb')

a=pickle.load(f)
a['x'].shape,a['y'].shape,a['xtime'].shape,a['ytime'].shape
#((594, 4, 288, 2), (594, 4, 288, 2), (594, 4), (594, 4))

2.1.3 训练数据

import pickle

f=open('test.pkl','rb')

a=pickle.load(f)
a['x'].shape,a['y'].shape,a['xtime'].shape,a['ytime'].shape
#((1386, 4, 288, 2), (1386, 4, 288, 2), (1386, 4), (1386, 4))

2.2 地图数据

2.2.1 地铁站的物理图

import pickle

f=open('graph_sh_conn.pkl','rb')

a=pickle.load(f)
a,a.shape
'''
(array([[1., 1., 0., ..., 0., 0., 0.],
        [1., 1., 1., ..., 0., 0., 0.],
        [0., 1., 1., ..., 0., 0., 0.],
        ...,
        [0., 0., 0., ..., 1., 1., 0.],
        [0., 0., 0., ..., 1., 1., 1.],
        [0., 0., 0., ..., 0., 1., 1.]]),
 (288, 288))
'''

2.2.2  地铁站的相关图

import pickle

f=open('graph_sh_cor.pkl','rb')

a=pickle.load(f)
a,a.shape
'''
(array([[0.        , 0.01539433, 0.02738432, ..., 0.        , 0.        ,
         0.        ],
        [0.        , 0.        , 0.        , ..., 0.        , 0.        ,
         0.        ],
        [0.        , 0.01502989, 0.        , ..., 0.        , 0.        ,
         0.        ],
        ...,
        [0.        , 0.        , 0.        , ..., 0.01615014, 0.        ,
         0.03536008],
        [0.        , 0.        , 0.        , ..., 0.        , 0.0092369 ,
         0.        ],
        [0.        , 0.        , 0.        , ..., 0.03341621, 0.00712248,
         0.01228689]]),
 (288, 288))
'''

2.2.3  地铁站的相似性图

import pickle

f=open('graph_sh_sml.pkl','rb')

a=pickle.load(f)
a,a.shape
'''
(array([[1.        , 0.        , 0.13627907, ..., 0.        , 0.        ,
         0.        ],
        [0.        , 1.        , 0.        , ..., 0.        , 0.        ,
         0.        ],
        [0.13627907, 0.        , 1.        , ..., 0.        , 0.        ,
         0.        ],
        ...,
        [0.        , 0.        , 0.        , ..., 1.        , 0.        ,
         0.        ],
        [0.        , 0.        , 0.        , ..., 0.        , 1.        ,
         0.        ],
        [0.        , 0.        , 0.        , ..., 0.        , 0.        ,
         1.        ]]),
 (288, 288))
'''

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

UQI-LIUWJ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值