向AI转型的程序员都关注了这个号????????????

机器学习AI算法工程   公众号:datayx

根据郑州市某年8-11月各地铁闸机刷卡数据来预测12月1-7日的地铁客流量。通过对数据进行分析和清理后我们发现该问题为时序模型问题,因此我们在建立模型时分析并去除了异常的时间点,再应用构建的时序模型预测出相应的客流量。

代码 以及运行教程  获取:

关注微信公众号 datayx  然后回复  地铁  即可获取。

AI项目体验地址 https://loveai.tech

字段分析

比赛数据给了41个字段的数值,用于预测每日客流量。从题目要求中可知,我们所需要输出的预测结果只有“日期”,“TRADE_ADDRESS(刷卡地点编号)”和“预测客流量”三种数据。这意味着很多所给的字段可能是无用的。并且我们发现,预测客流量并不是一个直观的字段,因此需要我们自己对其进行整理。建立ipython文件Traffic_dataAnalysis。先用pandas库读取csv的数据:

交通-地铁客流量python时间序列预测_数据挖掘

客流量并没有出现在字段中,由题目要求得知,每个站点的日客流量是交易类型21,22之和,因此客流量实际上就是对应行的和。因此我们选择用python进行作图,来判断字段之间的联系和影响。

交通-地铁客流量python时间序列预测_机器学习_02

通过作图我们可以看出,每个月不同刷卡地点的客流量的变化趋势十分接近,因此可以知道刷卡地点TRADE_ADDRESS字段的数据拟合的非常好。

数据清洗

通过分析我们字段我们得出结论,这是一个关于时序模型预测的问题。其余无关的属性字段对预测并没有帮助,可以去除。因为预测的数据单位为天(day),因此我们先将日期进行正则处理,只取年月日(Y-m-d):

交通-地铁客流量python时间序列预测_深度学习_03

增加字段TRADE_DATE_DAY:

交通-地铁客流量python时间序列预测_数据挖掘_04

通过dataframe的排序求和,我们获得对应日期对应刷卡地点的客流量字段VAL:

交通-地铁客流量python时间序列预测_数据挖掘_05

将重新整理的数据输出,此时便得到了用来训练时间序列模型的数据集。


特征工程

新建ipython文件Traffic_modelNPre,对新输出的数据集进行操作。通过分析相关字段的客流量变化,可以看出其波动非常之大,这势必对模型的拟合产生影响,所以我们建立新字段VAL_LOG,对VAL进行指数转化,使变化值处于一个相对小的范围内。

交通-地铁客流量python时间序列预测_数据挖掘_06

交通-地铁客流量python时间序列预测_数据挖掘_07

针对整理好的数据,可以分析出:地铁客流的时间序列具有一定的连续性,以一周为单位,整段时间的客流情况会具有相似性。因此对于该题我们决定使用 时间序列模型 作为基本模型进行解答。这时开始继续分析数据:

交通-地铁客流量python时间序列预测_人工智能_08

该函数能提取相应TRADE_ADDRESS的时间序列数据,及每天的平均连接数。

交通-地铁客流量python时间序列预测_数据挖掘_09

绘图结果如下,可以看出有存在异常的天数。

交通-地铁客流量python时间序列预测_人工智能_10

所以需要写如下函数将异常的日子过滤掉,此处的过滤策略是:对每月特定时间段天数的数据求均值与标准差,然后将均值与标准差落在10%分位数以下和90%分位数以上的日子去除。

交通-地铁客流量python时间序列预测_深度学习_11

去除后序列如下:

交通-地铁客流量python时间序列预测_图像识别_12

将异常的天数筛选出来后,保留剩余的天数所对应的数据,并且将异常天数对应的日客流量取每月正常天数客流量的均值,使得模型能更好的拟合。这样我们便得到了新的数据集,保存在data_final文件夹中。这样,就完成了建立模型的前置工作。


建立模型

数据都已经准备好,可以开始着手模型的构建了。因为地铁人流具有连续性的特征,我们使用ARMA来对预测进行一定的修正,模型如下:

交通-地铁客流量python时间序列预测_数据挖掘_13

我们选择了8-10月的数据作为临时训练集,将11月1-7日的数据作为验证集来测试模型拟合的好坏。通过计算得到,该时序模型的置信区间落在(2,0),因此我们的时间序列模型p,q数值的取值分别取2和0作为参数。

交通-地铁客流量python时间序列预测_机器学习_14

从结果图上来看,对于时间序列趋势的预测还算不错,但仍存在部分偏差。模型基本构建完成,可以开始进行预测了。

结果预测

按照要求的表格形式,输出成dataframe,

交通-地铁客流量python时间序列预测_人工智能_15

进行输出就完成了预测数据:

交通-地铁客流量python时间序列预测_机器学习_16

我们将训练模型保存,用9月1日-9月7日作为测试集进行预测,与实际数据比对,最终得到的MAE=4135.218。

交通-地铁客流量python时间序列预测_图像识别_17


 

 ​

不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

交通-地铁客流量python时间序列预测_人工智能_18


机大数据技术与机器学习工程

 搜索公众号添加: datanlp

交通-地铁客流量python时间序列预测_机器学习_19

长按图片,识别二维码