孫 琦,高彥宇,許心越,陳麗丹
(1. 北京軌道交通路網(wǎng)管理有限公司,北京 100101;2. 北京交通大學 軌道交通控制與安全國家重點實驗室,北京 100044)
近年來,北京城市軌道交通規(guī)模發(fā)展十分迅猛。截至2019年底,北京軌道交通路網(wǎng)運營里程達到699.3 km,運營線路23條,運營車站共計405座,最高年度日均客流達1 086萬人次。軌道交通網(wǎng)絡(luò)規(guī)模的不斷擴大和客流量的不斷增加,導(dǎo)致軌道交通擁擠、服務(wù)質(zhì)量下降,鐵路網(wǎng)客流結(jié)構(gòu)、波動規(guī)律異常復(fù)雜[1],鐵路網(wǎng)形式變化比較快,列車粗獷式配置很容易導(dǎo)致大規(guī)模擁擠或者晚點,如何精細化城市軌道交通客流預(yù)測,快速響應(yīng)路網(wǎng)波動,實時配置運力資源已成為運營管理者迫切需要解決的問題。
目前,國內(nèi)很多主要城市的軌道交通運營企業(yè)建設(shè)相應(yīng)的客流預(yù)測系統(tǒng)。這些客流預(yù)測系統(tǒng)大多依據(jù)不同的客流預(yù)測方法或客流預(yù)測模型,王瑩等人[2]提出季節(jié)時間序列模型(SARIMAM,seasonal ARIMA model)對北京地鐵進站客流量進行預(yù)測,Sun等人[3]提出了小波-SVM混合方法對北京地鐵系統(tǒng)的換乘客流進行預(yù)測。Roos等人[4]提出了利用不完整歷史觀測數(shù)據(jù)預(yù)測短期客流的動態(tài)貝葉斯網(wǎng)絡(luò)方法。Li等人[5]提出用徑向基函數(shù)(RBF,Radial Basis Function)神經(jīng)網(wǎng)絡(luò)預(yù)測單站客流。Jiao等人[6]提出基于貝葉斯組合和非參數(shù)回歸的改進卡爾曼濾波模型來預(yù)測北京地鐵13號線高峰時段的客流。梁強升等人[7]提出一種融合循環(huán)門控單元和圖卷積神經(jīng)網(wǎng)絡(luò)的城市軌道交通客流預(yù)測模型(GCGRU,Graph Convolutional Networks and Gate Recurrent Unit)。
當前大部分的客流預(yù)測系統(tǒng)采用的預(yù)測模型單一、提供的預(yù)測客流指標不全,時空粒度較粗,多場景的適用性不足。因此,亟須開發(fā)一套能夠適用于多場景的全指標的精細化精準客流預(yù)測系統(tǒng),實現(xiàn)支持基于OD的多種精細化客流預(yù)測模型和方法,為多場景下調(diào)度指揮和客運管理提供高準確度、精細化時空粒度的客流預(yù)測數(shù)據(jù)支持。
當前,我國的城市軌道交通已經(jīng)進入快速發(fā)展時期,超大型城市線網(wǎng)規(guī)模快速擴大,導(dǎo)致城市軌道交通客流激增、客流增長規(guī)律復(fù)雜和運營場景多樣化?,F(xiàn)場客流預(yù)測系統(tǒng)存在以下不足:
(1)既有預(yù)測系統(tǒng)存在系統(tǒng)功能不全,適用的場景具有局限性;
(2)既有預(yù)測系統(tǒng)存在預(yù)測粒度不夠精細,不能完全刻畫客流演變過程,無法支撐日常運營的全部業(yè)務(wù)。
通過對地鐵運營公司現(xiàn)場業(yè)務(wù)進行分析,發(fā)現(xiàn)不同場景下路網(wǎng)客流量和客流規(guī)律等不同,需要在不同場景下為各調(diào)度指揮和客運管理部門持續(xù)提供精細化客流預(yù)測數(shù)據(jù)支持,總體需求主要包括以下3個方面。
(1)在常規(guī)場景下,通過用戶的設(shè)定或選擇機器學習模型實現(xiàn)未來預(yù)測日期的客流預(yù)測功能,輸出客流進出站、OD等精細化客流預(yù)測結(jié)果。
(2)在節(jié)假日場景下,通過用戶的設(shè)定或選擇針對特殊日期單獨的預(yù)測方法,對路網(wǎng)結(jié)構(gòu)進行調(diào)整、對模型參數(shù)進行設(shè)定,實現(xiàn)在節(jié)假日場景未來預(yù)測日期的客流預(yù)測功能,輸出客流進出站、OD等精細化客流預(yù)測結(jié)果。
(3)在新線場景下,通過用戶的設(shè)定或選擇加權(quán)平均法模型,對路網(wǎng)結(jié)構(gòu)進行調(diào)整、對模型參數(shù)進行設(shè)定,實現(xiàn)新線開通后未來預(yù)測日期的客流預(yù)測功能,輸出客流進出站、OD等精細化客流預(yù)測結(jié)果。
該系統(tǒng)主要由數(shù)據(jù)準備、客流預(yù)測及分析、數(shù)據(jù)提供3個部分組成,系統(tǒng)總體結(jié)構(gòu),如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)
(1)數(shù)據(jù)準備部分主要是準備數(shù)據(jù),以及對業(yè)務(wù)數(shù)據(jù)進行處理,包括參數(shù)數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù)。a. 業(yè)務(wù)數(shù)據(jù)有交易數(shù)據(jù)和行車數(shù)據(jù);b. 參數(shù)數(shù)據(jù)有模型參數(shù)、預(yù)測參數(shù)和路網(wǎng)參數(shù)。
(2)客流預(yù)測及分析部分主要包括預(yù)測場景、預(yù)測客流、預(yù)測客流評估展示、預(yù)測算法和客流規(guī)律庫。a. 預(yù)測場景包括常規(guī)場景預(yù)測、節(jié)假日場景預(yù)測和新線場景預(yù)測,對應(yīng)的預(yù)測模型是機器學習模型和加權(quán)平均法模型;b. 預(yù)測客流模塊支持根據(jù)用戶的設(shè)定或選擇不同的模型或算法實現(xiàn)未來預(yù)測日的客流預(yù)測功能,輸出客流進出站、OD等精細化客流預(yù)測結(jié)果;c. 預(yù)測結(jié)果評估模塊實現(xiàn)預(yù)測數(shù)據(jù)和實際數(shù)據(jù)的對比分析,通過對比分析發(fā)現(xiàn)預(yù)測模型或算法的問題,進行優(yōu)化調(diào)整;d. 預(yù)測算法有機器學習模型、比例法模型和聚類算法等;e. 客流規(guī)律庫包括客流高平峰、客流波動規(guī)律、OD標準時間及相似結(jié)果集。
(3)數(shù)據(jù)提供部分主要是預(yù)測數(shù)據(jù)對外支撐,包括預(yù)測進站量、預(yù)測出站量、預(yù)測斷面滿載率、預(yù)測客流來源去向等。
本系統(tǒng)采用的技術(shù)構(gòu)架包括展示層、訪問層、大數(shù)據(jù)存儲計算與微服務(wù)層和基礎(chǔ)數(shù)據(jù)交換層,如圖2所示。
圖2 系統(tǒng)技術(shù)架構(gòu)
(1)展示層采用Html5進行用戶界面展示,采用LayUI和Finereport完成頁面UI交互控制,部分矢量圖像采用基于Html5的js和canvas技術(shù)實現(xiàn)。
(2)訪問層采用Ngnix作為系統(tǒng)統(tǒng)一入口,并通過API Gateway對外提供服務(wù)訪問接口。
(3)大數(shù)據(jù)存儲計算與微服務(wù)層基于Hadoop各類數(shù)據(jù)計算與存儲服務(wù),主要有HDFS分布式文件存儲、Spark內(nèi)存計算、Hive/SparkSQL離線分析、Flink流數(shù)據(jù)處理、HBase海量數(shù)據(jù)查詢、Kafka分布式消息、ElasticSearch分布式搜索引擎等,其中SparkMlib和TensorFlow提供的AI基礎(chǔ)框架為各種預(yù)測場景提供底層算法庫支持,Spring cloud的微服務(wù)器框架為應(yīng)用提供基礎(chǔ)運行環(huán)境。RocketMQ為系統(tǒng)提供消息處理引擎,Redis和Oracle為系統(tǒng)的各類預(yù)測和清分數(shù)據(jù)實時處理提供內(nèi)存計算環(huán)境。
(4)基礎(chǔ)數(shù)據(jù)交換層采用MQ隊列或FTP方式實現(xiàn)外部數(shù)據(jù)接入,并為外部系統(tǒng)提供客流預(yù)測數(shù)據(jù)服務(wù)。
接口主要是為了接收系統(tǒng)所需要的數(shù)據(jù)和提供系統(tǒng)生成的結(jié)果數(shù)據(jù)。接收數(shù)據(jù)主要包括歷史城市軌道交通自動售檢票系統(tǒng)(AFC,Automatic Fare Collection)交易數(shù)據(jù)、每日AFC交易數(shù)據(jù)、運行圖數(shù)據(jù)和其他參數(shù)類數(shù)據(jù)。接口方式主要通過FTP、MQ隊列、HTTP請求等方式實現(xiàn)。
源數(shù)據(jù)來自于各個業(yè)務(wù)系統(tǒng),指標口徑對不上,會出現(xiàn)不一致、重復(fù)、不完整、存在錯誤或異常(偏離期望值)的數(shù)據(jù),所以需要數(shù)據(jù)清洗,其主要步驟如下。
(1)缺失值清洗:主要包含確定缺失值范圍、去除不需要的字段、填充缺失內(nèi)容、重新取數(shù)。
(2)格式內(nèi)容清洗:a. 格式內(nèi)容問題有時間、日期、數(shù)值和全半角等顯示格式不一致,需將其處理成一致的某種格式;b. 內(nèi)容中有不該存在的字符,最典型的就是頭、尾、中間的空格,也可能出現(xiàn)姓名中存在數(shù)字符號、身份證號中出現(xiàn)漢字等問題,這種情況下,需要以半自動校驗、半人工方式來找出可能存在的問題,并去除不需要的字符;c. 內(nèi)容與該字段應(yīng)有內(nèi)容不符,需要詳細識別問題類型。
(3)邏輯錯誤清洗:主要包含去重、去除不合理值和修正矛盾內(nèi)容,其中,不合理數(shù)據(jù)主要有日期、消費情況、出行里程等信息。
(4)非需求數(shù)據(jù)清洗:a. 該步驟主要是把不需要的字段刪除,歷史AFC交易數(shù)據(jù)、每日AFC交易數(shù)據(jù)和運行圖數(shù)據(jù)的主要對數(shù)據(jù)格式、重復(fù)數(shù)據(jù)、異常字段數(shù)據(jù)修正等信息進行清洗;b. 清洗完成后將不同方式接入的數(shù)據(jù)進行集成存儲,保存至一個一致的數(shù)據(jù)存儲中;c. 對海量的數(shù)據(jù)的數(shù)據(jù)格式進行設(shè)計定義,對原有格式進行轉(zhuǎn)換,轉(zhuǎn)換成適合客流預(yù)測系統(tǒng)的數(shù)據(jù)形式。
根據(jù)路網(wǎng)拓撲結(jié)構(gòu),將路網(wǎng)劃分為不同區(qū)段,得到區(qū)段集合S=[trans1,sta1-sta2,trans2,sta3-sta4-sta5,···], 其中,transn表 示換乘站,staa-···-stab表示同一條線路上的連續(xù)非換乘站;利用AFC系統(tǒng)中的乘客刷卡記錄數(shù)據(jù),統(tǒng)計路網(wǎng)n個車站中第i個車站在日期j的第k個時段(高峰時段與平峰時段)去往路網(wǎng)中其他車站的OD;利用前面得到的各車站、各日期、各時段的OD,計算各車站、各時段的重點去向車站集合I。具體計算流程如下。
(1)計算各車站各時段的進站客流總量中去向其他各車站的客流量的占比,作為各去向車站的貢獻度,計算公式如下:
其中,odij表示從c站到d站的OD;Rij表示d 站作為c站的去向車站的客流貢獻度。
(2)車站總體客流去向服從冪律分布,將不同去向貢獻度下的累積車站數(shù),取對數(shù)后進行線性回歸,計算樣本中車站數(shù)的對數(shù)的下四分位數(shù),將所得數(shù)值帶入回歸函數(shù),計算得到去向貢獻度臨界值r。
(3)統(tǒng)計去向貢獻度大于步驟(2)中所得的去向貢獻度臨界值r的去向車站,作為車站的重點去向車站集合I。
(4)利用步驟(2)和步驟(3)得到的重點去向車站集合I及區(qū)段集合S,構(gòu)成車站去向集合D,每個車站在工作日(雙休日)的不同時段有不同的去向集合。將車站i在日期j的第k時段,以重點去向車站l為去向的客流量Niijkl,以及以除重點去向車站之外的區(qū)段m為去向的客流量Nsijkm,構(gòu)建得到聚類樣本為: [Niijk1,Niijk2,···,Niijkl,Nsijk1,Nsijk2,···,Nsijkm]。
(5)車站i在日期T的聚類樣本形式如下:
其中,Si(T)為車站i在日期T的聚類樣本;pij(k)為車站i在時段k內(nèi)去往重點車站j的客流量;rij(k)為車站i在時段k內(nèi)去往區(qū)段j的客流量(若區(qū)段j內(nèi)包含重點車站,則扣除去往重點車站客流量);u為重點車站個數(shù);v為區(qū)段個數(shù)。
(6)采用z-score標準化法將聚類樣本標準化為均值為0,方差為1的數(shù)據(jù)。
利用AP聚類算法對各車站各特征日各時段下所有日期的標準化聚類樣本進行聚類,得到各車站各日期各時段的聚類結(jié)果。
為了實現(xiàn)自動化預(yù)測,模型需要實現(xiàn)根據(jù)預(yù)測日期特征自動選擇采用相似規(guī)律的歷史客流作為預(yù)測依據(jù)。因此,采用聚類形成的類別樣本數(shù)據(jù)構(gòu)建決策樹模型,并將構(gòu)建后的決策樹模型用于輸出預(yù)測日期所屬的歷史規(guī)律類別。決策樹采用ID3算法,算法輸入形式為歷史數(shù)據(jù)每日各時段的特征及該時段車站的進站客流的聚類類別。
算法核心是在決策樹各個節(jié)點上應(yīng)用信息增益準則選擇特征,遞歸構(gòu)建預(yù)測各車站各時段進站客流的決策樹。2018年1、2季度蘋果園站的進站客流 聚類結(jié)果構(gòu)建的決策樹,如圖3所示。
圖3 2018年1、2季度蘋果園站的進站客流決策樹
將預(yù)測日的日期特征輸入構(gòu)建好的決策樹,得到預(yù)測日所屬的日期類別。假設(shè)要預(yù)測蘋果園站2018-06-29高峰時段(PEAK1)的進站客流,該預(yù)測日的輸入特征為[第2季度,工作日,星期五],決策樹結(jié)構(gòu)的第1個特征為季度,將2018-06-29劃分到第2季度的分支;決策樹結(jié)構(gòu)的第2個特征為星期幾,繼續(xù)將2018-06-29劃分到星期五的分支;決策樹的最后一個特征為日期類型,按照2018-06-29的日期類型(為工作日)最終確定所屬類別為類別6。
為了提高決策樹的泛化能力,需要對樹進行剪枝,把過于細分的葉節(jié)點去掉而回退到其父節(jié)點或更高的節(jié)點,使其父節(jié)點或更高的節(jié)點變?yōu)槿~節(jié)點。將數(shù)據(jù)集劃分成訓練集和驗證集2個部分,用訓練集決定樹生成過程中每個節(jié)點劃分所選擇的屬性,驗證集在剪枝中用于判斷該節(jié)點是否需要進行剪枝。
4.1.1 預(yù)測方案
在常規(guī)場景下,基于歷史客流數(shù)據(jù)和路網(wǎng)拓撲數(shù)據(jù),運用聚類方法[8]和機器學習方法構(gòu)建機器學習預(yù)測模型,對目標日期分時段OD進行預(yù)測。機器學習預(yù)測模型是一個全自動、自學習式的預(yù)測模型,是通過對歷史客流分布和路網(wǎng)拓撲數(shù)據(jù)進行聚類,總結(jié)出不同特征日下的客流分布模式類別,使用預(yù)測日的日期特征尋找歷史日期中與之同類別的日期集合,利用日期特征相似程度對同類別日期進行加權(quán),并利用客流月份變化趨勢修正系數(shù)[9]對同類別日期進行修正,從而擬合得到預(yù)測日分時OD。常規(guī)場景客流預(yù)測流程,如圖4所示。
圖4 常規(guī)場景客流預(yù)測流程
4.1.2 效果分析
圖5和圖6分別是在常規(guī)場景下路網(wǎng)分時進、出站客流預(yù)測情況對比,可以看出預(yù)測趨勢和實際情況相符,進站量平均相對誤差為0,出站量平均相對誤差為5.13%,這說明該算法取得了良好的預(yù)測效果。
圖5 常規(guī)場景下進站量對比折線
圖6 常規(guī)場景下出站量對比折線
4.2.1 預(yù)測方案
由于每年節(jié)假日天數(shù)少,客流結(jié)構(gòu)特殊,且每年路網(wǎng)結(jié)構(gòu)都會發(fā)生變化,難以積累足夠多的樣本數(shù)據(jù)進行聚類預(yù)測。所以需要設(shè)計單獨的預(yù)測方法針對特殊日期進行預(yù)測,具體預(yù)測流程,如圖7所示。
圖7 節(jié)假日場景客流預(yù)測流程
(1)使用上一年度對應(yīng)節(jié)假日期之前的歷史分時OD客流進行聚類,獲得聚類結(jié)果。然后,利用上一年度節(jié)假日期分時OD,通過與聚類中心距離判斷節(jié)假日所屬類別,獲得相同類別日期集合。
(2)使用同類別日期客流加權(quán)擬合預(yù)測上一年度節(jié)假日期分時OD,并與實際值進行對比,獲得各車站的修正系數(shù),以及路網(wǎng)修正系數(shù)。
(3)將上一年度節(jié)假日相對位置的同類別日期客流數(shù)據(jù)映射到本年度中,獲得本年度節(jié)假日日期同類別日期組合。
(4)利用本年度節(jié)假日期同類別的日期客流,加權(quán)擬合獲得各車站初始預(yù)測客流,利用前面得到的修正系數(shù),對各車站的初始預(yù)測客流進行修正。對于新線開通的車站,使用路網(wǎng)修正系數(shù)進行修正,得到最終的預(yù)測客流。
4.2.2 效果分析
圖8和圖9是分別在節(jié)假日場景下路網(wǎng)分時進、出站客流預(yù)測情況對比,可以看出預(yù)測趨勢和實際情況相符,進站量平均相對誤差為0,出站量平均相對誤差為2.56%,這說明該算法取得了良好的預(yù)測效果。
圖8 節(jié)假日場景下進站量對比折線
圖9 節(jié)假日場景下出站量對比折線
4.3.1 預(yù)測方案
新線開通后,由于路網(wǎng)結(jié)構(gòu)發(fā)生變化,第1個特征日沒有對應(yīng)的歷史規(guī)律可以用來預(yù)測,同時在開通初期相同路網(wǎng)拓撲下的歷史客流數(shù)據(jù)樣本規(guī)模小,決策樹不能對所有車站都輸出預(yù)測結(jié)果,因此對于新線客流的預(yù)測需要制定專門的預(yù)測方法。
(1)第1階段
第1階段為新路網(wǎng)拓撲運營第1個星期,對于第1個特征日,既有站使用上一年度數(shù)據(jù)進行聚類預(yù)測,輔以人工修正。新開通車站使用專家預(yù)測值。對后續(xù)日期,使用既有相同特征日數(shù)據(jù)進行擬合。第1階段預(yù)測流程,如圖10所示。
圖10 第1階段預(yù)測流程
(2)第2階段第2階段為新路網(wǎng)拓撲運營第2~4個星期,由 于樣本量規(guī)模限制,決策樹不能完整預(yù)測所有車站,對于決策樹能夠預(yù)測的車站及時段,采用常規(guī)預(yù)測方法進行預(yù)測;對于不能輸出聚類類別的車站,使用設(shè)定規(guī)則篩選相似日期類別。第2階段預(yù)測流程,如圖11所示。
圖11 第2階段預(yù)測流程
(3)第3階段
第3階段為新路網(wǎng)拓撲運營第5個星期及以后,正常使用決策樹進行類別預(yù)測并擬合預(yù)測客流,具體預(yù)測流程,如圖12所示。
圖12 第3階段預(yù)測流程
4.3.2 效果分析
圖13和圖14分別是新線接入場景下路網(wǎng)分時進、出站客流預(yù)測情況對比,可以看出預(yù)測趨勢和實際情況相符,進站量平均相對誤差為0,出站量平均相對誤差為0,這說明該算法取得了良好的預(yù)測效果。
圖13 新線場景下進站量對比折線
圖14 新線場景下出站量對比折線
本文開發(fā)的路網(wǎng)精細化客流預(yù)測系統(tǒng)已經(jīng)在北京軌道交通指揮中心投入實際使用,為生產(chǎn)服務(wù)平臺(TCC系統(tǒng))等多個業(yè)務(wù)系統(tǒng)持續(xù)提供精細化路網(wǎng)客流預(yù)測數(shù)據(jù)支撐,取得了良好的效果,為北京市軌道交通有預(yù)見性地進行網(wǎng)絡(luò)化調(diào)度指揮和客運管理發(fā)揮了重要作用。
未來需要對北京軌道交通路網(wǎng)客流規(guī)律,尤其是特殊場景的客流規(guī)律進行更為深入的分析,不斷增加和優(yōu)化客流預(yù)測模型和算法,提高節(jié)假日、新線接入、大型活動等多種特殊場景的客流預(yù)測準確度。