本文以AFC系统中乘客进出站刷卡记录数据为基础并对进出站客流量进行预测,将神经网络与客流量时间与空间的分布特征相结合,能够有效地揭示轨道交通客流量的变化趋势。更进一步组合LSTM和CNN模型进行较为客观的客流量预测数据统计,并通过深度学习将预测结果应用于实践之中对轨道交通发车频次进行合理优化,制定准确的发车间隔,以提升轨道交通运行效率。本文将使用上海10号线原始客流数据,通过python中的numpy和pandas库进行数据清洗。通过CNN的特征提取和LSTM的短期预测得到短期客流预变化趋势。相关代码如下:

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten, Reshape, Dropout, BatchNormalization
from tensorflow.keras.layers import LSTM, Conv1D, MaxPooling1D
from tensorflow.keras.optimizers import SGDfrom datetime import datetime
import matplotlib.dates as mdates
import matplotlib.pyplot as pltdata = pd.read_csv('all_day_data.csv')def sample(name, state):if state=='in':stop_data_in = data[data['3'] == name][data['5']==0.0]series_in = pd.Series([1]*len(stop_data_in), index=pd.to_datetime(stop_data_in['1']))series_in = series_in.resample('10T').sum()df_allday = pd.DataFrame({'Time':series_in.index, 'freq':series_in.values})return df_alldayelif state=='out':stop_data_out = data[data['3'] == name][data['5']!=0.0]series_out = pd.Series([1]*len(stop_data_out), index=pd.to_datetime(stop_data_out['1']))series_out = series_out.resample('10T').sum()df_allday = pd.DataFrame({'Time':series_out.index, 'freq':series_out.values})return df_alldaydf = sample('10号线五角场', 'in')
s_date = pd.to_datetime('20150408')
df['Time'] = pd.to_datetime(df['Time'])
m = max(df['freq'])
train_data = df[df['Time']<=s_date]['freq'].values
test_data = df[df['Time']>=s_date]['freq'].values
test_data = test_data/m
train_data = train_data/m
train_n = len(train_data)
test_n = len(test_data)
LOOK_BACK = 6train_x = np.array([train_data[k:k+LOOK_BACK] for k in range(train_n-LOOK_BACK+1)])
train_y = np.array(train_data[LOOK_BACK-1:])
train_x = tf.reshape(train_x, (-1, LOOK_BACK, 1))
test_x = np.array([test_data[k:k+LOOK_BACK] for k in range(test_n-LOOK_BACK+1)])
test_y = np.array(test_data[LOOK_BACK-1:])
test_x = tf.reshape(test_x, (-1, LOOK_BACK, 1))Model = Sequential()
Model.add(Conv1D(50, 3, activation='relu',input_shape=(LOOK_BACK, 1)))
Model.add(MaxPooling1D(2))
Model.add(LSTM(150))
Model.add(Dropout(0.1))
Model.add(BatchNormalization())
Model.add(Dense(1, activation='sigmoid'))
Model.compile(loss='mse', optimizer='Adam')
Model.fit(train_x, train_y, epochs=20, batch_size=16, verbose=1)mse = Model.evaluate(test_x, test_y)
print(f'average mean square error for model: {mse}')predict_y = Model.predict(test_x)test_time = df[df['Time']>=s_date]['Time']
time_x = [x.strftime('%H:%M') for x in test_time]
xs = [datetime.strptime(d, '%H:%M') for d in time_x]
ys = test_y*m
yp = predict_y*mplt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%H:%M'))
plt.gca().xaxis.set_major_locator(mdates.HourLocator())plt.plot(xs[LOOK_BACK-1:], ys)
plt.plot(xs[LOOK_BACK-1:], yp, 'r')
plt.gcf().autofmt_xdate()
plt.savefig('predict.png')

以10号线五角场站为例,其中红线代表预测值蓝线代表真实值。由图像不难看出,由于工作出行具有较强规律性在早晚高峰期模型预测精准度比较高,而在晚上由于出行游玩等原因往往表现出不规律的特征但预测误差也相对较小。在整体看来模型具有很分布预测性能。

通过上表显示组合模型要比单独的LSTM模型预测效果优异,各类误差均为最小,其预测的MAE为13.3052,RMSE为21.5747,MAPE为24.2243%。此评价标准的建立进一步显示了该模型在客流预测的优越性。可以充分说明CNN取证捕捉站点间空间相关关系再加上LSTM的时间预测使预测模型达到十分精确。

局限:

轨道交通短时客流预测是交通运营企业和交通运输部门关注的重要问题,本文虽然对客流与发车频率的预测进行模型建立,但短时客流预测和列车调度优化是一个极其复杂的过程,也希望研究此方面的同学或者工作中解决以下的问题:

1.由于节假日客流不确定性比较大,未建立起节假日和周末的预测模型

2.此模型只考虑正常情况,未对大型活动和突发情况进行客流预测

3.在列车发车频率优化方面我们仅考虑客流量和等待时间方面进行优化未考虑乘客时间价值、乘客感受度、列车过剩成本等多方面的影响

基于LSTM-CNN的地铁短时客流量预测相关推荐

  1. 基于小波分解与LSTM的城市轨道短时客流预测

    1.文章信息 文章题为<A novel prediction model for the inbound passenger flow of urban rail transit>,是一篇 ...

  2. 基于LSTM算法的风电功率区间预测【含源代码】

    基本情况: 数据集为2018年6月2日-2018年8月9日的6624个样本,采样间隔为15 分钟.选取2018年6月2日-2018年8月4日为训练集,剩下作为测试集.采用过去5个小时的特征作为输入,目 ...

  3. 基于深度学习的航空发动机剩余寿命预测

    背景介绍   近年来,随着微电子技术的进步与发展,传感器愈加智能化.微型化且价格低廉,相关产品在国防军工.机械装备.医疗电子以及环境治理等领域具有广泛的应用.传感器工作过程中能够产生大量的监测数据,工 ...

  4. 交通状态预测 | Python实现基于LSTM的客流量预测方法

    交通状态预测 | Python实现基于LSTM的客流量预测方法 目录 交通状态预测 | Python实现基于LSTM的客流量预测方法 基本介绍 研究回顾 模型结构 程序设计 参考资料 基本介绍 Pyt ...

  5. 基于LSTM、RNN及滑动窗口CNN模型的股票价格预测

    基于LSTM.RNN及滑动窗口CNN模型的股票价格预测 Abstract 股票市场或股票市场对当今经济产生深远影响.股价的上涨或者下跌对投资者的收益具有重要的决定作用.现有的预测方法使用线性(AR,M ...

  6. 基于Conv-LSTM网络的地铁乘客拥堵延误预测深度学习模型

    1 文章信息 <A Deep Learning Model with Conv-LSTM Networks for Subway Passenger Congestion Delay Predi ...

  7. lstm 根据前文预测词_干货 | Pytorch实现基于LSTM的单词检测器

    Pytorch实现 基于LSTM的单词检测器 字幕组双语原文: Pytorch实现基于LSTM的单词检测器 英语原文: LSTM Based Word Detectors 翻译: 雷锋字幕组(Icar ...

  8. DL之LSTM之MvP:基于TF利用LSTM基于DIY时间训练csv文件数据预测后100个数据(多值预测)状态

    DL之LSTM之MvP:基于TF利用LSTM基于DIY时间训练csv文件数据预测后100个数据(多值预测)状态 目录 数据集csv文件内容 输出结果 设计思路 训练记录全过程 数据集csv文件内容 输 ...

  9. DL之LSTM之UvP:基于TF利用LSTM基于DIY时间训练1200个数据预测后200个数据状态

    DL之LSTM之UvP:基于TF利用LSTM基于DIY时间训练1200个数据预测后200个数据状态 目录 输出结果 设计思路 训练记录全过程 输出结果 设计思路 训练记录全过程 INFO:tensor ...

最新文章

  1. Matlab与线性代数 -- 矩阵的特征值与特征向量
  2. (Java多线程)线程安全问题
  3. 禁用一个计算机用户,系统小技巧:Windows 10账户删除 禁用与启用
  4. 条件编译#ifdef 和#endif
  5. [Nvidia] nvidia-smi
  6. 常微分方程的初始条件使用
  7. Python模块_json pickle模块
  8. 因为计算机丢失user32.dll,user32dll丢失程序打不开|Win7系统开机提示Uxtheme.dll丢失如何解决?...
  9. 2021年下半年软考真题软件设计师真题答案(上午题)
  10. 伪逆矩阵(pseudo-inverse)
  11. Java 练习题:猜数小游戏
  12. SQLserver With As 用法
  13. 植物大战僵尸用户存档修改(单机版)
  14. 外国人入境日本 后天起须留指印头像
  15. 关于模态分析的基础知识总结
  16. “拷打”两天,扎克伯格胜利大逃亡!
  17. 合力亿捷发布云客服3.0,开启全员客服新时代
  18. 我的世界Catserver开服
  19. 真正通俗易懂的傅里叶变换讲解
  20. python win32gui+pynput 自动回复qq消息

热门文章

  1. 【数据结构 C描述】有两个整数集合 A 和 B 分别用两个线性表 LA 和 LB 表示,求:一个新的集合A=A∪B,A仍然为纯集合,线性表采用链式存储方式。【单链表】
  2. 蓝桥杯:旅行家的预算 贪心解法
  3. [影视推荐]黑客题材美剧—网络末日战
  4. CoffeeScript 的简介与代码实例
  5. 省电软件测试自学,噱头还是实用?手机省电APP效果横向测试
  6. 服务器显示无internet,为何我可以上网,但却显示无internet访问
  7. D3.js 绘制带圆角的矩形 + 带箭头的指示线
  8. linux查看gcccmake当前版本
  9. 如何将SEO与SEM结合推广网站
  10. 宝塔解压文件,通过SSH命令解压缩.tar.gz、.gz、.zip文件的方法