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

数据集地址: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 训练数据

python 复制代码
import pickle
import os
os.chdir('data/shanghai/')

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

a=pickle.load(f)
a

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

python 复制代码
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 测试数据

python 复制代码
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 训练数据

python 复制代码
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 地铁站的物理图

python 复制代码
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 地铁站的相关图

python 复制代码
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 地铁站的相似性图

python 复制代码
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))
'''
相关推荐
lingggggaaaa1 小时前
免杀对抗——C2远控篇&PowerShell&有无文件落地&C#参数调用&绕AMSI&ETW&去混淆特征
c语言·开发语言·笔记·学习·安全·microsoft·c#
lxmyzzs1 小时前
作为一名工程师,何不试试瑞芯微?
笔记·rk3588
wgego2 小时前
polarctf-web做题笔记
笔记·web安全
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [kernel]workqueue
linux·笔记·学习
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [kernel]usermode_helper
linux·笔记·学习
一只爱做笔记的码农4 小时前
【BootstrapBlazor】移植BootstrapBlazor VS工程到Vscode工程,报error blazor106的问题
笔记·学习·c#
木西4 小时前
人间观察:关于健康、善良与选择的思考
笔记
星轨初途4 小时前
数据结构排序算法详解(2)——选择排序(附动图)
c语言·数据结构·经验分享·笔记·b树·算法·排序算法
charlie1145141916 小时前
勇闯前后端Week2:后端基础——Flask API速览
笔记·后端·python·学习·flask·教程
深蓝海拓6 小时前
OpenCV学习笔记之:调整ORB算法的参数以适应不同的图像
笔记·opencv·学习