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

数据集地址: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))
'''
相关推荐
深圳雨林凯AI1 小时前
图案裂变的“风格归一化“设计思路:主体保得住,画风才拉得齐|雨林凯AI技术笔记
人工智能·笔记
冬木家居2 小时前
40㎡客厅变形记,小家住出大自由[特殊字符]
android·经验分享·笔记·智能家居·微信公众平台
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
推送者5 小时前
用宠物照片制作桌宠:从AI拆帧到九点标定的本地化实现笔记
笔记·宠物·用宠物照片制作桌宠
一条破秋裤5 小时前
16_TIM编码器接口测速
笔记·stm32·学习
tju新生代魔迷5 小时前
Verilog HDL 学习笔记(十)| 第10章 时序和延迟
笔记·学习·fpga开发
血小板要健康7 小时前
链表 阶段算法总结
java·数据结构·笔记·算法·leetcode·链表
浔溺7 小时前
al+大数据每日学习笔记31
大数据·笔记·学习
摇滚侠7 小时前
《SpringBoot 3:入门与应用实战》第 9 章 跨域问题 阅读笔记 27
spring boot·笔记·okhttp
山岚的运维笔记7 小时前
mysql 专业笔记 -- 第 8 章:使用变量
运维·数据库·笔记·后端·学习·mysql·dba