高 偉,黎 英,張金飛,黃名鈿
(昆明理工大學 信息工程與自動化學院,云南 昆明 650504)
伴隨著經濟的不斷發展和城市化進程的不斷加快,城市交通狀況問題越來越引人關注。隨著傳感器、計算機等技術的發展,大數據和數據挖掘等數據分析手段開始被引入交通領域。采用大數據和數據挖掘技術對交通狀況進行分析相比傳統人工操作不僅更加快速而且更加準確。
在這方面人們做過許多類似研究,比如上海大學武興業等人的基于GPS數據對城市擁堵區域進行挖掘, 北京工業大學杜志明等人利用出租車運行軌跡進行的城市熱點區域發現和重慶大學馮琦森等人基于出租車數據的城市熱點路徑和區域挖掘等。不過,上述研究采用的都是聚類方法。因此,產生的結果都是一片區域,其指定范圍較大,對后期結果的使用精度會造成一定的影響。且上述方法僅是對已有的固定數據進行處理,無法隨著交通狀況數據的改變而不斷更新計算結果。
基于以上研究現狀和交通的時段性,周期性和數據量大等特點,本文欲建立一個實時分層網絡自學習預測模型。該模型采用自學習分類方法,在充分考慮到城市交通狀況中存在的時段性,突發性,周期性,傳遞性,以及交通數據量龐大等特點的基礎上,挖掘城市不同路段不同時間之間存在的時空關聯性,從數據層面提高預測未來指定時段內城市高頻路段的準確性。
城市交通擁堵一直是受廣大城市居民廣泛關注和抱怨的一個話題,雖然政府相關部門一直在嘗試從各方面改善,但效果并不理想。然而事實上城市擁堵并不是意味著每個路段和路口都堵,可能有很多路段或路口很擁擠,而另一部分路段和路口行人和車輛卻很稀疏。如果能夠預測出未來不同時段城市的高頻路段,將會對居民出行和城市相關規劃帶來很多幫助及便利。
由于城市居民出行受到現實很多因素的影響,比如上班,使用交通工具類型和生活習慣等,城市交通狀況的變化存在有很多規律可循,這也就是城市交通具有的時段性與周期性。除此以外,上一時段某些路段交通狀況會對下一時段的某些路段交通狀況產生影響,城市交通還具有很強的時空相關性。因此如果能通過大量的歷史數據挖掘出城市交通的時段性、周期性和時空相關性,那么就可以對未來一定時間段的交通高頻路段進行很好的預測。
基于目前可以獲得的城市交通數據的特點,為了實現對城市交通高頻路段的準確預測,本文設計了一個具有多層結構的網絡自學習預測模型。該多層結構分別為時間地點預處理層(TAPM)、時空關聯分析層(AF)、概率計算層(CP)以及結果數據存儲模塊(CPRS)、關聯結果模塊(FARS)。他們每層相互協作,數據互相交互,分別負責不同任務,其中時間地點預處理層(TAPM)主要負責對于時間預分段和地點的自學習預標記,時空關聯分析層(AF)主要負責對不同時間段不同路段的關聯性分析挖掘,并將其結果作為后面概率計算的一個重要相關項,概率計算層(CP)主要是負責融合歷史交通數據和不斷新來的交通數據,隨著新的交通數據不斷更新,采用迭代計算的方式不斷更新優化模型預測結果。模型結構如圖1所示。

圖1 模型網絡框架Fig.1 network framework of mode
由于城市出租車是城市居民出行的重要代步工具之一,某種程度上出租車的位置數據可以反應城市各個路段的交通狀況,所以我們選用北京市出租車2008-02-02至2008-02-08期間一周的GPS數據作為模型測試的數據源。這些數據的格式每行從左到右依次為car ID,carTime,lat(維度),lon(經度)。列與列之間使用逗號隔開,如表1所示。

表1 數據樣例Table 1 data example
時間地點預處理模塊主要針對城市交通所具有的時段性和數據量龐大等特點,進行對數據按時間分區和地點自學習分類標記兩項工作,這樣可以有效地減少需實時處理的數據量。下面將分別對二者進行分析。
2.1.1 時間分區
由于城市交通具有很強的時段性,同一路段在不同時段的交通狀況會存在很大差異,比如典型的上下班高峰期和非上下班高峰期各個路段的狀況明顯不同,因此對城市交通狀況進行分時段處理顯得很重要。
要對城市交通進行分時段處理,首先對大量的城市交通數據進行按時段分區處理,從而模型在地點時間預處理層首先對數據進行按時間分區處理。對于數據源時間分區處理其公式如下:

上面公式中t_hour為數據的源中 carTime列的前兩個字段,sys_hour為實時系統時間。對二者求差值得出結果參數 _timeP ,當 _timeP 在0-1之間時其對應得數據將會被劃為一個計算單元。這樣在保證模型結果準確性和實時性同時也減少了后續計算的負擔。
2.1.2 自學習地點分類標記
傳統的分類算法中通常會是先訓練數據,在此過程對數據進行分類標記,然后存入相應的庫中,以便在的測試中使用。這種做法對于分類結果種類較少的數據比較適用,但對于分類結果種類數量異常的情況,這種辦法將即耗費大量的運算資源,同時還會遺漏標記類,影響分類結果的準確度。
城市交通數據量龐大且不同經緯度數據對應點多,以北京市出租車數據為例,如表2所示。其一天數據量將達百萬條,且每天數據量都不一樣,就符合典型的分類結果種類異常多情況。即使是將其數天數據用于訓練標記,也無法保證后續的測試過程中可能出現的點都出現在訓練庫中。而這將大大影響模型分析的精度,且大量耗費存儲資源和模型運行時間。由于這些問題的存在,很多學者對于城市交通數據相關處理都采用各種無監督的聚類算法進行,這樣雖然可以完美避開樣本標記過程中存在的上述問題,但對于城市交通數據應用而言其結果相對分類而言可能只能獲得某些片區的狀況,無法準確到特定路段的具體情況。

表2 數據量樣例展示Table 2 data size example show
針對上述存在的問題,并結合交通的特點,本模型對傳統的分類算法進行了改進。具體原理為在經典基于距離的KNN算法中加入了競爭淘汰機制,使得模型實現自學習,訓練庫會隨著每次新數據的到來而動態變化,該自學習算法的原理圖如圖2所示。
如圖所示其主要由數據輸入模塊、運算模塊和復檢模塊組成。當一條經緯度數據進入時該算法首先會去讀取訓練庫中內容,如果返回值為 null,其會自動調用相應的百度API對該數據進行相應的地點標記并將其輸出至數據庫存儲,其存儲格式如表2所示。如表 3所示該數據存儲格式為經緯度、地址和頻度。

圖2 自學習分類算法模型Fig.2 mode of self-learning classification algorithm
其中頻度決定該條 label數據能否在地點標記庫中繼續待下去,其默認值為 1。每次新的數據進入時都對頻度進行更改,當新數據和某條label數據出現匹配,不論匹配次數,都將則將該條label數據的頻度加 0.5,當頻度達到 2則不再增加。當 label庫中某條lable數據沒有和新來任何數據發生匹配,則將該條數據的頻度減0.5,當頻度小于等于0時,模型則將該條label數據刪除,匹配方法見下文。

表3 數據存儲格式Table 3 format of data storage
當一條數據進入算法模型后讀取訓練存儲庫返回值不為null時,模型將會對輸入數據進行與原有訓練庫label數據的匹配操作。其原理為首先將輸入數據復制和數據庫中存儲標簽經緯度地址數據相同行數份,并將其和數據庫中地點對應的經緯度數據各自放入矩陣中,然后對矩陣執行求二者歐式距離操作,運行可得出一個比對結果矩陣,再求得該矩陣中最小值,其原理如公式如下所示。

得到結果矩陣中最小值后運算模塊找到該最小值對應的地址數據,并將其標記給輸入的經緯度數據。
在將輸入數據及其標記結果輸出之前復檢模塊還要對上述計算得到的結果矩陣中的最小值進行復檢,復檢模塊中設置了一個控制位K和復檢因子1P,該011p<<。復檢模塊原理圖如圖所示。

K=1時,輸入數據對應的標記結果直接輸出。
K = 0時,復檢模塊判定該輸入數據未找到合適的匹配項,則對該輸入數據使用相應的百度API進行地址標記,并將該數據和其對應的地址標記加入歷史訓練結果中,且輸出其結果至整個分析模型下一層。
該地址識別層實現了對數據的持續訓練,且在訓練新數據的同時不影響歷史訓練數據,使得模型的歷史訓練庫集越來越完善,同時也實現了模型庫的動態增減,在一定程度上將大大節約存儲資源。
城市交通在具有周期性同時還具有時空相關性,城市交通路段之間相互連接,它們的交通狀況可傳遞,所以單純通過挖掘城市交通周期性特點來預測未來城市交通高頻路段,將會使預測結果準確度大大降低。
如圖3所示隨機選取某單純統計預測結果集中10項和驗證結果集中 10項,二者描述的交通狀況為同一時段,將二者對比,橫坐標為高車流量占有率路段,縱坐標為該路段對的車流量占有率。其中路段車流量占有率計算原理為:

通過圖3可以看出預測集和驗證集不管是點還是其對應的車流量占有率都差差異很大。所以如果只是單純的計算當前時段當前路段的車流模型預測結果精度就會不高(具體計算方法在概率計算層將會詳述),因為城市交通中上一時段某路段車流量較大時很可能就會導致在下一時段另一路段車流量也較大。該層所挖掘的城市交通時空關聯性就是要發現當某一時段某一路段車流量較大時,其對下一時段其它路段的影響,這將很大提高對城市高頻路段判別的準確性。針對上述相關情況,在模型時空分析層中設計了一個夾層側向生成網絡模塊,如圖 4所示。采用其來挖掘不同地點之間時空關聯性。該模塊將相鄰兩個時間段分別作為模塊的上下兩層,兩個時間段所出現的高概率擁堵路段作為其所屬層的成員。

圖3 純統計預測結果展示Fig.3 show of predicting results by Pure statistics
其原理為每當概率計算層(具體概率計算內容下一節將會詳解)完成某一個時間段(以t1為例)的n個地點擁堵概率概率計算后,該層就會對其進行排序,并挑選出其中 i個高頻點,并將該結果存入相應的數據庫。

圖4 夾層側向生成網絡模塊Fig.4 net module of interlayer side generate

當概率計算層計算 t1的下一時間時間段 (以t2為例)時,將以同樣方式對t2進行處理。


當完成后該層開始基于距離挖掘其二者相關性,原理公式如下:,這選擇出的距離小的q個t1中點,模型認為其是可能對t2中的2jp 點可能產生影響的點,

并將其存入用于存儲時空關聯特性結果的FAR庫中,并對該點單對 p2j賦一個權值C,C值默認為ε0,該模型計算方式以此類推不斷循環,每當概率計算層計算時,該關聯對出現一次則其對應的權值C加一,如果此次不出現則C減一。當C大于閾值γ0時認為其關聯性有效,反之則認為其無效,通過此舉可以進一步增加對于城市相關地點和路段的準確性。

公式12為概率層將要使用到的計算方法,具體其說明會在下一節詳述。
通過前面多層對數據的處理和優化,到達該層的數據包含了當前時間段內城市交通出租車所有出現的路段和點,從而該層主要任務就是對所有出現的路段進行計算,各個路段車流量對整個城市車流總量的占比,換言之既是預測城市各個路段是高頻路段的概率。
城市交通在其擁有周期性特點同時還具有一定的偶然性和多變性,圖 5-6所示隨機兩天同一時段之間高頻車流量路段分布存在較大差異,所以單通過挖掘固定不變少量歷史數據規律預測未來高頻路段誤差將會較大。

圖5 地圖標注(2008020408)Fig.5 Map lableling (2008020408)

圖6 地圖標注(2008020808)Fig.6 Map labeling (2008020808)
故本文針對上述情況在概率計算層采用迭代計算方式。采用迭代計算方式后在充分挖掘已有歷史數據規律同時,也將不斷新產生的交通數據作為數據源,且將天氣等其它異常狀況和不同路段之間的時空關聯性納入計算因子,而不是單一通過挖掘不變得歷史數據規律來預測未來城市高頻路段。這將使得模型可以隨著持續更新的交通狀況不斷更新對未來交通狀況的預測模型該層實現原理如下:

圖7 概率計算層原理圖Fig.7 schematic diagram of Probabilistic computing layer
如圖7所示該層主要由數據輸入單元LD,處理單元M,邏輯控制單元K3,存儲單元S和輸出單元O組成,各個單元相互連通,共同構成概率計算層。
邏輯控制單元 K3主要識別數據是否為第一次進入該層,每次數據進入時 K1都會通過掃描存儲單元S來判別數據是否為第一次進入,當數據第一次進入時K3=0,否則其為1。
存儲單元 S主要負責該層結果數據的存儲,S單元又由SP和SC兩個子單元組成,其中單元P負責存儲結果集中地點和其對應的概率,單元C用于存儲車流總數。
當K3=0時,單元 M2啟用單一運算模式。直接對進入該層的數據進行計數,計算出每個地點對應的占有概率adp(i)和當前車流總數alC。將地點及其對應的adp(i)按照adp(i)大小進行降序排序,并將其和當前車流總數alc分別存入單元S對應位置。下面公式中的1σ為當前時段相應地點對應的狀態因子,后面會詳細介紹,12ββ、和3β分別為對應的權重系數。


當K3=1時,單元 M2啟用混合運算模式。該模式下 M2首先對上層前來的數據執行單一運算模式得到新的各點占有概率 n_adp(i)和車流總數n_alc,與此同時單元M2從存儲單元S取歷史adp(i)和alc。得到上述新舊數據后單元M進行迭代更新,

上述公式中γ1、γ2γ3,和γ4分別為新舊地點占有概率、車流量總數,時空相關特性和狀態因子的迭代權重系數。時空相關特性將后面詳細介紹。迭代計算后單元 M2同樣對更新后的路段及其對應的adp(i) 進行排序處理,并將其與alc分別放入存儲單元S中P單元和C單元。
本文所建立的模型采用的試驗數據來自北京2008年 2月 2日至 8日一星期中一萬多輛出租車GPS數據,用其來驗證模型預測效果。
由于城市交通狀況具有很強的時段性和周期性,所以應該采用工作日的一定時段數據預測工作日的一定時段交通狀況,用非工作日的一定時段預測非工作日的一定時段交通狀況(本文采用一小時作為一個時段)。查閱相關2008年相關假期安排,這年2月2日至4日歲前兩天是周末但正常上班。故將其中2日至4日用作預測數據,5日作為驗證數據。本文中均取這些天的早八點至早九點的一個小時段進行測試。

圖8 預測和驗證結果對比Fig.8 The compare of prediction results and test results
該模型的判別規則為當某些點或路段在一定時間內通過車流量對該時段整個城市的占比超過一定閾值時,判別路段為高頻路段,具體閾值選擇因城市實際情況而定。高頻路段值較多值,我們均隨機取其10項進行展示,展示內容包括路段或點和其對應的車流量對整個城市車流量總和占比,如圖8所示。圖8中橫坐標為高車流量占有率路段,縱坐標為該路段對應的車流量占有率。從圖8結果和只使用純統計方法結果的圖3對比可以看出,圖3中預測結果和驗證結果不光車流量占有率相差較大,路段也有很大差異。而圖8中不光路段相似度較高,其對應的車流量占有率也差異很小。
因為每天城市的車流總量都不一樣,所以對結果集準確度的評估本文只考慮預測結果中高頻路段和驗證結果集中高頻路段的相似度。原理如下:

模型通過在python程序中先遍歷計數得出驗證結果集的高頻路段條數為test_count,再遍歷預測結果集,當出現和驗證結果集相同的高頻路段項時將true_count值加1,然后再利用公式即可得出模型準確度,通過驗證得模型準確度可達94.0397350993%。
由于數據量較大無法一一展示,借助地圖也可以看出預測具有較好的精度,預測結果地圖標注如圖9所示,驗證結果如圖10所示。

圖9 預測結果集地圖標注Fig.9 map labeling of prediction results
本文基于城市交通所擁有的周期性,時段性,時空關聯性和數據量大等特點,建立了一個實時分段網絡自學習模型。該模型可自學習不斷更新訓練庫,通過不斷迭代交通狀況新數據,不斷更新模型對交通狀況的實時感知,并挖掘不同時段可能擁堵點之間關聯性,并將此結果反饋給模型,以提高預測計算的準確性。

圖10 驗證結果集地圖標注Fig.10 map labeling of test results
相對采用聚類方法,該模型采用的分類算法可以更加精細到具體路段,預測出城市未來時段內城市交通的高頻路段。與傳統算法相比,模型中自學習分類標記算法能夠更好處理大批量數據,有效解決數據分類數較多、新數據分類數大于歷史數據分類數等問題,節約存儲和計算資源,提高分類準確性。針對城市交通不同路段之間狀況具有傳遞性的特點,在模型中建立了一個夾層側向生成網絡模塊,用于對城市交通進行時空相關性分析,相關單一統計可以使預測結果更加準確實時。模型預測結果將會對居民出行路徑選擇和相關部門規劃工作等方面提供很大幫助。
[1] 張俊濤, 李志勇, 張浩. 利用出租車軌跡數據估計城市道路擁堵狀況[J]. 測繪工程, 2016, 25(9): 69-72.
[2] 曹祎, 羅霞. 打車軟件背景下出租車運營平衡模型[J]. 長安大學學報(自然科學版), 2015(35): 203-207.
[3] Wang yilun, Zheng Yu, Xue Yexiang. Travel time Estimation of aRoutesUsingSparseTrajectories[C]. KDD, New York,2014.
[4] Aldrich C, Auret L. Unsupervised process monitoring and fault diagno-sis with machine learning methods[M]. Springer 2013.
[5] 劉凱利, 李晉宏. 基于決策樹C4.5算法的個人駕駛行為分析[J]. 軟件, 2016, 06(37): 83-86.
[6] 程陳. 大數據挖掘分析[J]. 軟件, 2014, 35(4): 130-131.
[7] PANG, QIG, ZHANGW, et al. Traceanalysisandminingforsmartcities: issues, methods, andapplications[J], IEEECommunications Magazine, 2013, 51(6): 120-126.
[8] 呂仁俊, 曹玖新. LBSN中基于行為分析的用戶位置預測[D]. 東南大學, 2015.
[9] 徐彬森, 魏元周, 毛光明, 李曼曼. 交通標志識別算法模型的研究與實現[J]. 軟件, 2017, 38(11): 74-81.
[10] Sha, Z. and Zhe, Z. et a1. “Discovering Individual Life Patterns from Anonymized WiFiScanlists”, IEEE International Conference on Ubiquitous Intelligence and Computing (UIC),2014.
[11] 張玉鵬, 陳權. 天津市城市道路交通擁堵解決方案[J]. 軟件, 2016, 37(7): 142-148.
[12] 劉暢, 李治軍, 姜守旭. 基于DBSCAN算法的城市交通擁堵區域發現[J]. 智能計算機與應用, 2015, 5(3): 68-72.
[13] Li W, Eickhoff C, de Vries A P.want a coffe: predicting users’trails[C]. Proceedings of the 35th imemational ACM SIGIR conference on Research and development in information retrieval. ACM.2012: 1171-1172.
[14] 王寶國, 李淵韜, 胡彤宇. 基于改進的BP神經網絡和小波奇異值的交通事件檢測[J]. 軟件, 2017, 38(6): 51-55.
[15] P.S. Castro, Daqing Zhang, Chao Chen, Shijian Li and Gang Pan. From Taxi GPS Traces to Social and Community Dynamics: A Survey[J]. ACM Computing Surveys (CSUR),2013.
[16] 李英杰, 李晉宏. 路口交通數據的分析與挖掘研究[J]. 軟件, 2017, 38(1): 131-134.