秦偉 曾明





摘要:本文利用鄭州地鐵的乘客OD數據,對不同時間周期內的站點進、出站客流進行預測。利用深度學習網絡,將數個弱回歸模型集成融合成強回歸模型。同時,利用參數修正算法對該模型進行進一步地增強。最終,通過鄭州地鐵真實數據對該模型進行了評估,得到了滿意的效果。
關鍵詞:集成融合;深度學習;回歸模型
1背景
地鐵是市民常用的交通工具之一,地鐵的進站和出站人數會隨著季節、節假日、工作日、周末、每天不同的時段等不同而發生變化,特別是在節假日、工作日的早晚高峰期,這對地鐵工作人員進行實時管控提出了很大的要求。如果沒有實時的掌握住每個時段的客流信息,那么將會對整個列車的調度造成很大的影響,也會給市民的出行造成很大的不方便。所以,對地鐵客流進行預測是非常重要的。
本文提出了一種基于集成融合算法的客流預測模型,可以靈活地融合地鐵OD數據、節假日、天氣、特殊事件等信息,利用深度學習、機器學習、集成融合等方法,通過數據預處理、特征工程、模型建立、訓練和評估這一系列的過程,進行站點/線路不同時間周期內進、出站客流量的預測。
本文后續章節安排如下:第2章,介紹客流預測模型的總體設計和重點算法;第3章,對客流預測模型進行測試評估,并且分析結果;第4章,進行總結和提出后續工作方向。
2總體設計方案
本次模型的總體設計方案如下圖所示:
將需要預測的日期根據實際的分析結果,進行分類:
1.第一類是待預測日期對應的歷史客流數據變化穩定在某一個非常小的固定范圍內的數據,這類數據使用統計規則算法進行預測,得到的效果非常好。
2.第二類是待預測日期對應的歷史客流數據分布變化不穩定、復雜的日期,這類數據使用DNN深度學習算法進行預測,得到的效果非常好,典型的就是周末、節假日。
3.結合統計規則算法和DNN深度學習算法的優缺點,我們使用集成融合算法對這兩種算法進行集成、融合,達到更加好的擬合效果。
下面將對上述算法進行詳細介紹。
2.1統計規則算法
統計規則算法的流程如下:
1.對預測日期分類:將預測日期分詞工作日、周末、節假日3類。
2.對于節假日預測:
其中:N是指跟待預測日期類型(節假日)相同的歷史數據,按照日期降序排序,取最近的N個日期。y表示的是跟待預測日期類型(節假日)相同的歷史數據真實客流量。
3.對于工作日/周末預測
其中,N是指跟待預測日期類型(工作日/周末)相同的歷史數據,按照日期降序,取最近的N個日期。N是指跟待預測日期類型(相同的星期)相同的歷史數據,按照日期降序,取最近的N的日期。y表示的是跟待預測日期類型(節假日/周末/相同的星期)相同的歷史數據真實客流量。
2.2DNN深度學習算法
DNN深度學習算法的核心步驟主要是特征工程
所謂特征工程的構建,主要是通過數據分析、相關性分析、AutoML等方式構建一些有價值的變量,作為模型的輸入,主要包括以下變量:
■待預測日前7天對應客流數據
■前三周中與待預測日星期所在日相同的數據
■待預測日月份
■待預測日星期
■氣溫
2.3集成融合算法
集成融合算法同樣是構建一個DNN深度學習網絡,不同的是在進行構建一個新的DNN深度學習網絡之前,會將上一個DNN深度學習算法的預測結果和統計規則算法預測結果作為本次DNN深度學習網絡的一個特征作為輸入,再次進行訓練,達到集成融合的效果。
整個步驟最核心的就是特征的合并,也叫做張量連接,下面是張量連接的實現步驟:
■特征工程向量:
■深度學習算法預測結果:
■統計規則算法預測結果:
■張量連接:
3模型評估
3.1數據集
本次模型評估,根據星環公司提供的鄭州地鐵從2015年1月1日至2015年12月24日出入的客流量數據,利用提出的客流預測模型對未來一個星期(2015-12-25~2015-12-31)的客流量進行預測,根據官方給出的評價指標,通過評價指標在所有參賽隊伍中的排名,驗證我們的地鐵客流預測模型的技術可行性。
3.2評價函數
本文使用模型平均絕對誤差人數MAE來評價模型的好壞,具體的計算如下:
i表示站點,范圍為[1,N],N表示站點的總個數,本次比賽中公有20個站點。
d表示天數,范圍為[1,7],表示未來7天的客流量
表示預測出來的客流量,表示真實的客流量
3.3評估結果
利用前面介紹的數據集和評價函數,統計了參賽各隊的結果。從中可以看到,我們團隊的MAE值為1557.34,在所有參賽隊伍中是最小的。更進一步的,本文提出的墨西哥比排名第二的湖南預測如神工院隊模型的MAE值2734.67,足足小了1200多。這就足以說明本文提出的基于集成融合的客流預測模型,在所有參賽隊伍中是最好的,取得了最優的擬合效果。
4結論和后續工作
4.1結論
本文利用鄭州地鐵的乘客OD數據,對不同時間周期內的站點進、出站客流進行預測。利用深度學習網絡,將數個弱回歸模型集成融合成強回歸模型。同時,利用參數修正算法對該模型進行進一步地增強。最終,通過鄭州地鐵真實數據對該模型進行了評估,得到了滿意的效果。
4.2后續工作
4.2.1多時間粒度+進出站驗證
根據星環公司官方的要求,目前只是針對天時間粒度,對進出站的客流總數進行預測。但是天時間粒度相對來說會比較大,在實際的地鐵運營需求中,時間粒度應該是小時、甚至是分鐘,而且乘客的進出站規律也是不一樣的,所以,后續需要對多時間粒度,特別是細時間粒度(比如1小時、半小時、15分鐘、5分鐘、1分鐘)和進出站分別預測。
4.2.2多數據集驗證
根據星環公司官方給到的數據,是2015年的乘客刷卡記錄,我們知道隨著時間的推進,地鐵客流量會發生不斷的變化。用2015年的數據建立起來的模型,是否適用于其他數據集,比如2016年、2017年、2018年、2019年則有待驗證。所以在后續的工作當中需要利用多數據集進行來驗證模型的穩定性。
參考文獻
[1]賈銳軍、冉祥來、吳俊霖、戴晨斌等,基于XGBoost算法的機場旅客流量預測[J],民航學報,2018年06期
[2]蒙特卡羅模擬,百度百科,https://baike.baidu.com/item/%E8% 92%99%E7%89%B9%E5%8D%A1%E7%BD%97%E6%A8%A1%E6%8B%9F/5160083?fr=aladdin
[3]小白都能看懂的蒙特卡洛方法以及python實現,CSDN博客,2018.
https://blog.csdn.net/bitcarmanlee/article/details/82716641