商志巍
(四川大學計算機學院,成都610065)
近幾年來,隨著城市的現代化建設和快速發展,城市居民交通出行需求持續增長,交通擁堵現象的發生日益頻繁,出行的方式逐漸呈現多樣化趨勢,包含地鐵、輕軌等城市軌道交通系統在眾多大型城市中扮演著至關重要的角色。地鐵系統得益于其運行速度快、可靠性高、載客量大、票價低廉等優點,越來越多的居民將地鐵作為首選的出行方式。載客人數指列車在車站裝載的乘客數量,是地鐵運載效率的重要指標,通過預測地鐵列車在未來某一時段內的載客數量,有助于地鐵運營商能提前獲知地鐵系統運載效率的變化趨勢,在優化列車時刻表、提升地鐵系統整體運載效率、減少乘客平均耗時等領域有重要的研究意義。傳統的統計學方法需要耗費大量的時間和人力成本進行現場調研,數據量小,無法量化各影響因素與列車載客人數之間的關系,預測精度差。而一些熟知的時間序列模型僅考慮時間因素,無法用于評估調整其他影響因素后對列車載客人數造成的變化。
地鐵系統中,自動檢票系統(Auto Fare Collection,AFC)記錄了海量的乘客進出站信息,使得我們可以采用數據挖掘方法從中獲取乘客過去任意時刻的位置。通過合并所有乘客的位置信息,可以進一步得到過去任意時刻地鐵系統的運行情況,為分析各影響因素與裝載人數的關系提供基礎。

圖1 乘車事務

本文將乘客從起點站刷卡進站直到到達終點站刷卡出站的整個過程定義為一條乘車事務,如圖1 所示,一條由站點i 出發,到達站點j 的事務的總耗時計算公式如下:其中,Tij為該事務的總耗時,為該乘客從i 車站的檢票閘機到站臺的步行時間,為該乘客從進入站臺到所乘坐列車離開該站的等待時間,為列車從i 站出發到達j 站開啟車門的總行駛時間,為該乘客離開列車到j 站檢票閘機刷卡出站的步行時間。按上述時間節點可將乘客歷史任意時刻位置劃分為:未進站、步行進站、站臺候車、乘車、步行出站、已出站。
當乘車事務數據足夠多時,會出現列車準備關門前剛好到達站臺的乘客,即這些乘客未經歷站臺等待時間,對應事務的總耗時計算公式為:

假設,對于站點i 所有乘客進出站時間TiK相同,對于站點i 站點j 所有列車行駛時間TijB相同。則Tij*在所有由i 到j 的事務中總耗時最短,其他由i 站到j 站的乘客經歷的等待時間TiW為:

對于按列車行駛方向排序的3 個站點p、i、q,對應的最短事務Tpi*、Tiq*、Tpq*的關系如圖2 所示:

圖2 最短耗時事務間的關系
由圖2 可以推得:

其中,TiD為列車在i 站從打開車門到關閉車門的時間,本文也假設對所有列車,TiD相同。若Tid已知,則可求得i 站平均步行時間Tik。通過以上步驟,可以得到乘客乘車事務中任意時段的耗時,并估算各關鍵時間節點的發生時間,進而獲得乘客過去任意時刻所在位置。
支持向量機回歸(Support Vector Regression,SVR)作為支持向量機的一個重要分支,基本思想是將特征向量映射到高維特征空間中,再進行回歸。SVR 的一般回歸形式為:

其中ω ?Rn,b ?R,Φ 為Rn到高維空間的非線性轉換。確定w 和b 的問題轉化為:

C 為常量,表示對估計誤差的懲罰系數,Γ()?為損失函數:

w 可以用數據點表示為:

將上式代入f(x)中:

k(xi,x)即為核函數,核函數使得我們可以在不知道具體映射函數Φ 的情況下,使用低維空間特征輸入在高維特征空間中執行點積,本文采用線性核函數。通過求解二次優化問題最小化目標函數:

拉格朗日乘子ai,ai*是二次優化問題的解。再通過KKT 條件計算b:

研究所分析的數據來源為重慶軌道交通系統檢票閘機的刷卡數據。數據包含重慶地鐵1 號線從2014年12 月1 日至2014 年12 月31 日的所有乘客的刷卡數據,共計11454362 條記錄,乘客每進站或出站一次則產生一條記錄,每條記錄包含以下字段:卡片id、刷卡時間、站點id、進出站標志。列車在站臺的平均停靠時間通過現場調研的方式獲取。
(1)構建乘車事務
由于原始數據只包含單次進站或出站的刷卡記錄,沒有包含一次完整的乘客乘車事務信息,所以需要對刷卡記錄進行匹配。將原始數據按卡片id 分組,再按刷卡時間排序。刷卡記錄中進出站標志字段21 表示進站,22 表示出站。排序后再按進出站標志前后匹配對,生成完整的乘車事務。
(2)提取耗時最短乘車事務
對特定的起點站和終點站,生成的事務中包含總耗時過短或過長的噪聲數據,采用一種基于密度的聚類算法DBSCAN 去除這些噪聲。最終得到關于不同起點站和終點站的矩陣,矩陣中的元素為對應站點的最短事務的總耗時。
(3)站臺實時人數計算
由站臺上的人數變化可以表現地鐵列車從站臺裝載的乘客人數。對于一個特定站點,由最短事務矩陣可以計算多組進出站步行時間,取其平均值最為該站點步行時間的估計值。則由該站點出發的所有乘客對應乘車事務的關鍵時間節點都可計算得到,對于時刻t,將到達站臺時刻小于t,列車離開時刻大于t 的乘客判別為該時刻在站臺候車的乘客。從最早運營時間開始,每15s 計算一次站臺實時候車人數。圖3 以一個站點下行方向站臺為例展示了計算結果,圖中曲線的波動性符合實際站臺乘客人數的變化規律。
(4)SVR 預測列車載客人數
由本文的定義可以推出,圖3 曲線中人數最高的時刻即為列車駛離站臺前最后一個時刻,相鄰的下一個時刻為列車離開后的第一個時刻,對應圖中波谷,則波峰時刻的人數與相鄰波谷時刻人數的差即為該班列車在該站臺上的裝載人數。此外,所有波峰對應時刻形成了該站臺當天的列車時刻表。本文將列車序號、列車與前一班列車之間的發車間隔、列車發車時刻、站臺總乘客數,作為SVR 模型的輸入特征,進行訓練和預測。
均方根誤差和平均絕對誤差是回歸問題領域常用的兩種評價指標,我們采用這兩種指標驗證本文提出的方法的有效性,其定義如下:

其中yi為模型的預測值,yi*為真實值。將本文提出的模型與其他兩種預測模型進行比較,結果如圖4 所示,表明本文提出的基于SVR 的方法相比于其他模型在預測精度上均有明顯提升。
本文提出了基于SVR 的地鐵載客人數預測算法,在真實的地鐵系統運營數據集上進行了實驗,并與兩種常用模型進行了對比,RMSE 和MAE 兩種回歸評價指標的計算結果,驗證了本文算法能更為精確地預測地鐵列車的載客人數,為地鐵運營商提供有效參考。除地鐵交通系統外,本文的算法也適用于普通鐵路系統、高速鐵路系統、公交系統等場景,具有一定的延展性。

圖3 站臺實時人數

圖4 實驗結果