楊愷鶴,丁小兵,劉志鋼,陳家萍,萬 蘇
(上海工程技術大學 城市軌道交通學院,上海201620)
中國軌道交通建設和運營高速發(fā)展,在運營管理方面積累了經驗,也帶來了一定的問題:城市區(qū)域內交通通行擁堵狀況加重,城市的部分功能開始轉移向郊區(qū),市郊區(qū)間的時段客流明顯增加,市郊線路、地鐵客流的出行規(guī)律產生了明顯改變,且預測難度較大,增加了車站客流組織的難度,若車站站臺的滯留客流過大,還可能引發(fā)嚴重的安全問題。本文通過大數據理論分析,結合先進的數據挖掘技術研究軌道交通客流在車站的聚集規(guī)律,可以及時獲取不同規(guī)模車站,不同手段的客流出行特征,有助于運營企業(yè)及時調整行車計劃,為日常行車調度指揮提供決策依據。
在國內外研究地鐵客流出行分布所構建的模型中,以重力模型和增長系數法用得較多,奠定了客流研究的基礎。1940年,Stouffer最早提出了介入機會模型;1955年,Casey提出了重力模型,后來該模型在最大熵原理和最大似然原理方面均得NT解釋;1965年,Fumess提出了著名的增長系數法。隨后,美國在交通規(guī)劃中開始使用線性回歸模型來預測出行發(fā)生和吸引量;1960年末,英國專家首先提出一種交叉分析法的客流研究算法,基于此Gordon W.S提出了不以家庭為出行單位的研究模型,研究了客流的分布于聚集模型[1];Richard C.M.Yam建立專門模型來研究專有客流的出行特征[2];J.L.Bowman等以出行者的活動安排為切入點建立模型,來預測出行的產生[3]。這些國外學者在客流量預測和分布的模型上作了較為深入的研究,奠定了理論基礎。國內近幾年在該方面作了較多值得借鑒作用的研究:楊曉光構建了研究客流分布滯后的預測模型,并兼顧了其他關鍵因素的影響,所建模型更加完善,計算結果也更加精確[4];姚恩建指出非集計模型在理論上的不足,提出了一種集計數據的客流OD分布模型,并進行了實例驗證[5]。在OD分布及路徑選擇的聯合模型上,由于缺少關于目的地選擇的調查結果,在參數標定上采用外推方式,致使兩階段分開,影響了模型的預測精度。隨后,趙鵬提出了基于狀態(tài)空間方法的短時客流OD估計模型,預測結果的精確度得到較為理想的提高[6];陳小鴻以客流OD矩陣為出發(fā)點,建立了以廣義最小二乘理論為基礎的OD矩陣估計模型,并采用遞增拉格朗日算法給出了相應的求解過程,但反推結果的精度不太理想[7]。
上述研究成果在海量客流數據預處理方面均未深入研究,對數據字段值缺失等未形成補充機制;對地鐵客流積累的數據的應用尚不夠充分,還有很多方面可以深入挖掘。若能對客流數據進行精細化預處理和缺失補充,探索乘客的時段聚集實時狀態(tài),為軌道交通市郊線路行車組織方案優(yōu)化提供數據支持。本文擬從運營企業(yè)獲取的AFC進出站客流數據為支撐,研究基于乘客出行交通卡卡號及出行時段的信息跟蹤,并結合相關時段參數數據,計算乘客的走行時間,從而構建模型挖掘乘客的聚集機理,以聚集機理為支撐獲取乘客的出行時段特征及時段分布,以此指揮軌道交通的行車組織,列車運行計劃的編制及臨時調整等,亦可為客流預測及客流應急疏導模型的補充等提供理論及方法參考。
軌道交通運營企業(yè)在日常運營中積累了大量客流數據,該客流數據包含了刷卡卡號、進出站時間、進出站車站編號等重要數據。而Oracle數據庫容量較大,且早期在建設數據庫時,字段、存儲過程、數據規(guī)則、范式等設計合理性欠佳等原因,數據庫中的客流數據字段及其存儲值有冗余甚至錯誤,不僅浪費存儲空間,還降低了數據挖掘與分析的效率和穩(wěn)定性。所以對客流數據的異常識別很有必要,本文研究的異常數據包括:按字段填充缺失的數據、冗余的數據、錯誤數據等。
采集的原始數據通常存在冗余、字段值不完整、數據內容不規(guī)范等問題,不能直接用于數據挖掘,需要設計數據預處理算法。但由于數據量大,預處理的效率較低,若算法設計不完善,則會出現冗余計算,甚至錯誤計算,導致處理性能和計算結果的準確度降低。本文擬從數據清洗算法角度進行優(yōu)化,從而提高清洗運算效率,主原始數據預處理設計過程如圖1所示。
在軌道交通日常運營維護等積累的數據中,有的是手工填寫、有的是根據系統(tǒng)前臺運行采集并經過轉換自動填寫而成,數據不完整,字段值缺失等是極有可能存在的。故本文提出一種改進的樸素貝葉斯分類算法,用于對重要數據字段缺失的填充,進而數據的有效性能得到保證,基本流程如圖2所示。
圖1 原始數據預處理算法設計Fig.1 The flow chart of data cleaning and pretreatment
圖2 缺失值填充流程圖Fig.2 The flow chart of filling missing value
在對缺失值的參數估計方面,通過式(1)來計算各缺失字段值的可能概率,其中P(X)的取值在各個可能取值狀態(tài)下都可視為常數。在該狀態(tài)下計算出P(X|C i)×P(C i),即可完成填充缺失值。若缺失值的先驗概率不可提前預知的情況下,可將其預先設為等概率發(fā)生,所以P(X|C i)可由式(2)變形求得:
通過分析和推導,缺失值的參數估計算法可以轉化為求所缺失字段的取值概率P(X|C i)。 當研究數據的樣本達到標準時,其概率近似等價于發(fā)生的頻率,可用數據字段完整且數據值符合規(guī)則的記錄取值出現頻率來估計缺失值的發(fā)生概率P(X n|C i)。
式(2)在計算含有缺失值的記錄值時,因數據庫范式的依賴性關系,主碼的取值很大程度上決定了各待填充值的概率,由于MapReduce算法在Map階段和Reduce階段將處理時間切割成小碎片時,其實際一次僅能處理一條實體記錄,基于此必須將依賴屬性取值和其條件概率取值關聯起來,以期求得的值更加準確。
數據的填充模塊主要通過MapReduce算法實施,通過對比數據連接模塊運算結果與原始輸入數據的偏差值進行連接模塊運算的輸入,Map階段的計算和連接模塊一致;而在Reduce階段,則利用式(2)計算出每個C i對應的條件概率,選擇其中P(C i|X)概率最大的C i作缺失值填充。
當數據庫中的數據實體量或字段值發(fā)生變化后,原來的模糊頻繁屬性集則可能發(fā)生變化而不再是頻繁屬性集。針對模糊頻繁屬性集集合、負邊界的定義及計算方法,計算出模糊屬性集在原始數據庫中的最小模糊支持度,本文提出了一種動態(tài)模糊頻繁屬性集的負邊界的計算方法,并將該方法用于軌道交通時段客流量聚集度的挖掘。
將軌道交通運營的時段進行模糊離散化,令時間序列S=(x1,x2,x3…x n),取寬度為w的時間窗作用于S形成的子序列S i=(x1,x2…x i+w-1),單步滑移形成一系列寬度為w的子序列x1,x2,x3,…,x n-w+1,式(3):
將W(s,w)看作w維歐氏空間中的n-w+1個點,隨機地分到k類中,計算每類中心作為每類的代表,計算集合W(s,w)的元素S i(i=1,2,…n-w+1),第j類代表的隸屬度屬性函數u j(S i)為式(4):
其中:b>1,b為常數,用于控制聚類的模糊度,‖si-x j‖2為第i個點到第j類點距離絕對值的平方。
如果支持度滿足A條件,則在時間T范圍內B發(fā)生,即,需要確定A發(fā)生的頻率數為式(5):
其中:u A(S i)為S i點屬于第A個代表屬性的隸屬度。
其中:F(A,B,T)表示A發(fā)生的條件下,T時間內B事件發(fā)生的概率(頻率數),主要計算過程如A的C-mean s方法,式(7)所示:
其中:p(A)表示滿足A規(guī)則情況的發(fā)生概率;p(B T|A)表示A事件發(fā)生的情況下,在時間T內B事件發(fā)生的概率;式(7)右側表示從先驗概率p(B T)到后驗概率p(B T|A)的信息傳遞及獲取過程。
經過數據清洗所得軌道交通車站AFC客流數據已經較為精準,符合數據挖掘的基本要求,擬構建算法挖掘軌道交通車站時段客流的聚集關聯規(guī)則,時段客流量的聚集機理及以交通卡卡號為主碼的客流OD對的最小支持度是挖掘的主要對象,本文構建的算法如下:
Step 1首先計算u A(S i),根據軌道交通客流時段聚集支持度進而計算并設好
Step 2將清洗和預處理后的數據作為客流聚集關聯規(guī)則挖掘初始數據,根據預先設定的條件對AFC客流數據庫進行初始化,掃描事務數據庫T ID,從事務庫中遍歷搜索出所有的項集長度為k=l的項集,形成候選1項集C1,將C1代入式(5)、(7),計算每項的支持度,依次與最小支持度比較,支持度大于minsupport的則形成頻繁1項集L1;
Step 3以頻繁k項集為基礎產生候選(k+1)項集C k+1,如果C k+1為空集,則進入下一步,否則繼續(xù)循環(huán);
Step 4遍歷客流數據庫所有記錄,計算各候選項集的基于時段聚集的客流支持度;
Step 5將候選項中支持度計算值小于minsupport的移出,形成(k+1)項頻繁項集L k+1;
Step 6k=k+1,轉入Step 3;
Step 7由此得出分時段客流聚集量的頻繁項集關聯規(guī)則;
Step 8輸出以2 h時粒度的分時段客流聚集量及OD對結果,以指導軌道交通運營計劃的編制與調整。
本文客流數據來源于上海軌道交通9號線AFC閘機,客流時段覆蓋6:00-22:00,數據庫表數據字段覆蓋交通卡卡號、進站時間、進站編號、出站編號、出站時間、是否使用了P+R停車場。所構建的算法的參量需要對原始數據字段編程計算得到,如乘客的總在途時間等,但數據庫存儲的AFC客流數據,會出現乘客因逃票、漏刷、卡丟失等原因,導致數據缺失、無效等而無法使用,部分原始數據見表1。
由原始數據可知,部分數據出現字段缺失,尤其是必填字段,運用數據清洗及填充方法,處理原始數據,以方便數據挖掘。
為填充原始數據的丟失值,將式(2)代入式(1)得式(8):
以AFC數據的卡號字段值為依據,運用SQL語句檢索統(tǒng)計每位乘客的出行次數及OD百分比,代入式(8),并通過參數估計、連接、填充等模塊,補充原始數據,得表2。
表1 上海軌道交通9號線AFC客流數據(原始)Tab.1 The AFC passenger flow data of Shanghai Metro line 9(Original)
表2 上海軌道交通9號線AFC客流數據表(補充修正后)Tab.2 The AFC passenger flow data of Shanghai Metro line 9(supplementary and correction)
根據時間序列離散化設計:將客流時段按照2 h粒度劃分,并單步滑移形成一系列寬度為2的時間序列S=(x1,x2,x3…x n)。 計算W(s,w)={S i|i=1,2,…n-w+1},以及隸屬度函數,客流時段覆蓋6:00-22:00,以2 h粒度劃分,進而得到每個2 h粒度的車站客流聚集隸屬度,見表3。
用挖掘算法可計算出上海軌道交通9號線部分車站客流聚集量:世紀大道、陸家浜路、馬當路、肇嘉浜路、徐家匯、宜山路、桂林路、七寶、九亭、佘山、松江大學城的2 h粒度時段客流量,各站分別對應St1-St11,計算結果見表4。
表3 上海軌道交通9號線松江大學城站2 h粒度客流特征值Tab.3 Characteristic values of 2 h particle size of da xue cheng station
表4 車站分時段客流聚集量Tab.4 The aggregation passengers’flow based on distribution time
線路分時段數據變化趨勢如圖3所示,可較為直觀的顯示沿線車站在2 h粒度區(qū)間的客流量分布情況,該客流分布情況可直接指導運營產生實踐。
圖3 車站分時段客流聚集量Fig.3 The aggregation passengers’flow based on distribution time
表4 的挖掘結果可為乘客出行高峰期,軌道交通車站制定行車調整方案提供數據支撐,使得列車運能與客流相匹配,快速疏散乘客至路網中。亦可為軌道交通市郊線路快慢車開行比例的確定提供數據支持,從而節(jié)省能耗和乘客的出行時間。
計算每張交通卡號的OD對的c(AT→B),并與對比,高于該值的確定為OD對,挖掘結果見表5。該挖掘結果可為快慢車模式下,快車停站方案的確定提供精準的決策支持。
表5 乘客出行OD對規(guī)律挖掘(上行方向)Tab.5 The mining of passengers’travel OD law(upward direction)
由表5可知,若能結合乘客的出行時段來挖掘OD對,則可為快慢車開行方案的優(yōu)化提供更加精細化的決策支持。
特大城市的軌道交通市郊線路客流具有比較明顯的潮汐性?;贏FC的客流刷卡數據包含字段具有較好的挖掘價值,運用大數據處理方法對軌道交通運營數據,以問題為導向構建算法對現有字段構建算法并運算,進而深層次挖掘客流的時段聚集規(guī)律,客流出行OD對等,可用于指導全路網的運營計劃的編制,優(yōu)化軌道交通開行方案的分時段運輸效率,提高乘客出行的可達性。