楊 孟 許宏科 錢 超 朱 熹
(長安大學(xué)電子與控制工程學(xué)院1) 西安 710064) (深圳市城市交通規(guī)劃設(shè)計(jì)研究中心有限公司2) 深圳 518021)
隨著智能交通系統(tǒng)(intelligent transportation system, ITS)研究的深入展開,道路交通數(shù)據(jù)規(guī)模和復(fù)雜度呈爆發(fā)式增長,呈現(xiàn)出大數(shù)據(jù)的“6V”特征[1].采用傳統(tǒng)的串行處理方式,其計(jì)算速度已無法滿足大數(shù)據(jù)環(huán)境下實(shí)時(shí)業(yè)務(wù)需求.因此,采用并行化與分布式的數(shù)據(jù)處理技術(shù)來提高交通信息處理水平成為當(dāng)前交通大數(shù)據(jù)平臺(tái)研究的熱點(diǎn).建立綜合運(yùn)輸服務(wù)大數(shù)據(jù)平臺(tái),促進(jìn)交通運(yùn)輸大數(shù)據(jù)產(chǎn)業(yè)化應(yīng)用成為迫切的行業(yè)需求[2].
目前,國內(nèi)外在交通大數(shù)據(jù)應(yīng)用領(lǐng)域積極展開相關(guān)研究.由于傳統(tǒng)的數(shù)據(jù)存儲(chǔ)方法無法解決海量交通數(shù)據(jù)的高效存儲(chǔ)和快速增長問題,Zhu等[3-4]采用Hadoop的分布式文件系統(tǒng)進(jìn)行交通數(shù)據(jù)并行存儲(chǔ),并應(yīng)用MapReduce分布式計(jì)算框架實(shí)現(xiàn)對交通數(shù)據(jù)的統(tǒng)計(jì)分析,提高了海量交通數(shù)據(jù)的存儲(chǔ)和計(jì)算效率;Rathore等[5]根據(jù)城市交通監(jiān)控?cái)?shù)據(jù),利用Hadoop的MapReduce機(jī)制,在并行環(huán)境下將視頻進(jìn)行分塊處理,提高城市道路違規(guī)檢測的效率.為提高交通數(shù)據(jù)處理能力,孫衛(wèi)真等[6]改進(jìn)了分布式調(diào)度算法模型,優(yōu)化了Hadoop的處理能力,從而彌補(bǔ)了傳統(tǒng)調(diào)度算法實(shí)時(shí)性的不足;Park等[7]采用數(shù)據(jù)挖掘算法對交通流數(shù)據(jù)進(jìn)行聚類與分類分析,提出了一種改進(jìn)的交通事故預(yù)測模型;Fan等[8]以ETC收費(fèi)數(shù)據(jù)為基礎(chǔ),采用隨機(jī)森林算法與Hadoop構(gòu)建大數(shù)據(jù)機(jī)器學(xué)習(xí)分析平臺(tái),實(shí)現(xiàn)公路旅行時(shí)間的預(yù)測;Chen等[9]利用歷史的交通速度,在Hadoop平臺(tái)上集成了KNN算法和高斯過程對道路速度進(jìn)行預(yù)測.以上研究主要利用歷史數(shù)據(jù)對交通數(shù)據(jù)進(jìn)行處理,為了實(shí)現(xiàn)交通數(shù)據(jù)的實(shí)時(shí)處理,Tsai等[10]利用Spark平臺(tái)實(shí)時(shí)處理數(shù)據(jù)的能力,構(gòu)建了一種可以實(shí)時(shí)提供路網(wǎng)交通量的系統(tǒng);黃廷輝等[11]利用道路檢測數(shù)據(jù),提出了一種分布式城市交通流預(yù)測模型,實(shí)現(xiàn)了實(shí)時(shí)、準(zhǔn)確的交通流預(yù)測;段宗濤等[12]在Hadoop平臺(tái)上設(shè)計(jì)并實(shí)現(xiàn)了一種多路徑的實(shí)時(shí)交通流分配方法,解決了傳統(tǒng)交通分配方法的難以保證交通流均衡性問題;陳釗正等[13]結(jié)合實(shí)際的交通流數(shù)據(jù),利用聚類算法對交通流量和速度進(jìn)行聚類分析,給定了交通狀態(tài)劃分方法,結(jié)果反映了實(shí)時(shí)、準(zhǔn)確交通運(yùn)行狀態(tài).
綜上所述,應(yīng)用分布式系統(tǒng)進(jìn)行交通大數(shù)據(jù)研究集中在對傳統(tǒng)交通模型的改進(jìn)以及對交通信息預(yù)測,缺少利用實(shí)時(shí)的交通數(shù)據(jù)對路網(wǎng)交通運(yùn)行狀態(tài)進(jìn)行更加合理、準(zhǔn)確的分析研究,從而進(jìn)行多指標(biāo)綜合評(píng)價(jià).因此,本文設(shè)計(jì)了一種基于Spark的路網(wǎng)交通運(yùn)行狀態(tài)分析系統(tǒng),以實(shí)時(shí)的交通流指標(biāo)為基礎(chǔ),實(shí)現(xiàn)對路網(wǎng)運(yùn)行狀態(tài)的判別.結(jié)合真實(shí)路網(wǎng)交通數(shù)據(jù),對系統(tǒng)分析結(jié)果進(jìn)行綜合評(píng)價(jià),驗(yàn)證了系統(tǒng)的準(zhǔn)確性與高效性.
Spark是Apache項(xiàng)目的一個(gè)開源集群運(yùn)算框架[14],具有分布式存儲(chǔ)和并行計(jì)算的能力,同時(shí)還提供了機(jī)器學(xué)習(xí)算法編程的接口,以及利于迭代運(yùn)算的并行化執(zhí)行機(jī)制,保證平臺(tái)在可接受的時(shí)間內(nèi)完成大規(guī)模數(shù)據(jù)的學(xué)習(xí)和訓(xùn)練.本文采用Spark技術(shù)搭建的路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)總體框架,見圖1.在Linux操作系統(tǒng)上搭建Hadoop與Spark平臺(tái),利用Hadoop平臺(tái)的分布式文件系統(tǒng)(hadoop distributed file system, HDFS)作為路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)的數(shù)據(jù)存儲(chǔ)層,負(fù)責(zé)底層交通數(shù)據(jù)存儲(chǔ)管理.數(shù)據(jù)處理層利用Spark SQL對交通數(shù)據(jù)進(jìn)行讀取與查詢,并將讀取的結(jié)果作為SparkR的輸入,利用Spark調(diào)用的k-means算法和隨機(jī)森林算法實(shí)現(xiàn)路網(wǎng)交通運(yùn)行狀態(tài)的判別;并在數(shù)據(jù)應(yīng)用層對數(shù)據(jù)判別結(jié)果進(jìn)行研究分析.在數(shù)據(jù)的存儲(chǔ)、處理與應(yīng)用過程中,由于Spark平臺(tái)的獨(dú)立調(diào)度器(standalone)模式較為簡單方便,無需依賴其他任何的資源管理系統(tǒng),利用Standalone模式實(shí)現(xiàn)底層資源調(diào)度;同時(shí),利用彈性分布式數(shù)據(jù)集(resilient distributed datasets, RDD)進(jìn)行交通數(shù)據(jù)處理任務(wù)的并行執(zhí)行;相較于MapReduce方法,RDD利用高速內(nèi)存代替了低速磁盤I/O操作,提高了整體的運(yùn)算效率.
圖1 路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)
路網(wǎng)暢通程度是描述道路運(yùn)行狀態(tài)的重要指標(biāo).2012年,交通運(yùn)輸部在《公路網(wǎng)運(yùn)行監(jiān)測與服務(wù)暫行技術(shù)要求》中以路段平均車速為標(biāo)準(zhǔn),將道路交通運(yùn)行狀態(tài)劃分為“暢通”“基本暢通”“輕度擁堵”“中度擁堵”“嚴(yán)重?fù)矶隆蔽寮?jí).但不同的道路速度可能會(huì)有多種不同的道路狀況,僅用平均車速來度量交通運(yùn)行狀態(tài)缺乏科學(xué)性和可靠性.因此,本文以道路交通流量、速度和占有率作為評(píng)價(jià)交通運(yùn)行狀態(tài)的指標(biāo),采用聚類算法將道路擁堵程度劃分為五種狀態(tài).傳統(tǒng)的k-means算法由于其原理簡單而被廣泛使用,當(dāng)數(shù)據(jù)量較大時(shí),算法的時(shí)間開銷非常大.本文采用分布式k-means算法進(jìn)行聚類分析,將大量交通流數(shù)據(jù)劃分為多塊子數(shù)據(jù),采用多個(gè)處理器并行計(jì)算,從而減少算法的運(yùn)算時(shí)間.分布式k-means算法的基本思想基本過程如下.
1) 從高速公路交通流數(shù)據(jù)集D={x1,x2,…,xn}中,隨機(jī)選擇k個(gè)中心點(diǎn)mj,并將其存入文件clusterList中.
2) 在路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)的分布式文件系統(tǒng)中,每個(gè)節(jié)點(diǎn)都包含部分?jǐn)?shù)據(jù)集Di,將文件clusterList分發(fā)給分布式文件系統(tǒng)的每個(gè)節(jié)點(diǎn)中.
3) 在每個(gè)子數(shù)據(jù)集Di中,計(jì)算非中心數(shù)據(jù)xi到k個(gè)中心點(diǎn)數(shù)據(jù)mj的距離d(xi,mj),如果d(xi,mj)=min{d(xi,mj),i=1,2,…,n′;j=1,2,…,k},則將xi劃分到中心數(shù)據(jù)mj的類中.
5) 計(jì)算k-means算法的誤差平方和準(zhǔn)則函數(shù)J,若聚類準(zhǔn)則函數(shù)收斂或聚類迭代達(dá)到最大,則得到最終聚類結(jié)果;否則重復(fù)步驟2)、3)、4)繼續(xù)迭代,直到滿足聚類停止條件.
6) 迭代結(jié)束,得到交通流運(yùn)行狀態(tài)聚類結(jié)果.
利用k-means算法實(shí)現(xiàn)路網(wǎng)交通運(yùn)行狀態(tài)聚類后,每條交通流數(shù)據(jù)被賦予一個(gè)特定的分類標(biāo)簽,其聚類結(jié)果為T={(xi,mj);i=1,2,…,n;j=1,2,…,5}.其中:xi為交通流運(yùn)行數(shù)據(jù),包括交通流量、速度和占有率,n為數(shù)據(jù)集記錄數(shù),mj表示交通流運(yùn)行數(shù)據(jù)聚類后的標(biāo)記即五種交通運(yùn)行狀態(tài).隨機(jī)森林算法(random forest, RF)是以聚類產(chǎn)生的類別標(biāo)簽為規(guī)則,判別數(shù)據(jù)與分類規(guī)則之間的關(guān)系.將帶標(biāo)簽的交通流數(shù)據(jù)作為隨機(jī)森林算法的輸入數(shù)據(jù),實(shí)現(xiàn)路網(wǎng)運(yùn)行狀態(tài)判別,其具體判別過程如下.
1) 以高速公路交通流運(yùn)行數(shù)據(jù)集D={x1,x2,…,xn}與各樣本對應(yīng)的客戶類別為基礎(chǔ),采用Bootstrap重采樣技術(shù)從數(shù)據(jù)集D中有放回地隨機(jī)抽取numTrees個(gè)子數(shù)據(jù)集,并將numTrees個(gè)子數(shù)據(jù)集Di基本均勻的分配到路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)的所有節(jié)點(diǎn)中.
2) 分別從平臺(tái)所有節(jié)點(diǎn)的數(shù)據(jù)集Di中隨機(jī)選取M(M≤3)個(gè)特征屬性,將M個(gè)特征屬性作為數(shù)據(jù)集Di的特征屬性.
3) 并行訓(xùn)練所有節(jié)點(diǎn)的數(shù)據(jù)集Di,以計(jì)算信息增益的方式確定最優(yōu)的屬性劃分點(diǎn),構(gòu)建numTrees棵交通流運(yùn)行狀態(tài)判別決策樹.
4) 利用numTrees棵決策樹形成交通流運(yùn)行狀態(tài)判別隨機(jī)森林,并綜合numTrees棵決策樹的判別結(jié)果,按numTrees棵樹分類器投票決定最終分類結(jié)果.
綜合評(píng)價(jià)路網(wǎng)判別結(jié)果,本文引入交通運(yùn)行狀態(tài)混淆矩陣見表1,其中,每一列代表了交通運(yùn)行狀態(tài)的類別,每一行代表了交通數(shù)據(jù)真正的歸屬類別.混淆矩陣可以直觀反應(yīng)實(shí)際交通運(yùn)行狀態(tài)與判別結(jié)果的分布情況,根據(jù)混淆矩陣提取出精確度、召回率和F度量等指標(biāo)來評(píng)判判別結(jié)果的準(zhǔn)確性.
表1 交通運(yùn)行狀態(tài)混淆矩陣
(1)
2) 召回率Rec描述交通運(yùn)行狀態(tài)判別模型中正確結(jié)果占實(shí)際交通運(yùn)行狀態(tài)的百分比,其中Pj為實(shí)際交通運(yùn)行狀態(tài)為j的測試數(shù)據(jù)記錄數(shù).
(2)
3)F度量 精確度Prec與召回率Rec的調(diào)和均值,體現(xiàn)了判別模型的穩(wěn)定性.
(3)
PeMS(performance measurement system)是美國加州運(yùn)輸局運(yùn)行監(jiān)測系統(tǒng),包含近40 000個(gè)檢測器的實(shí)時(shí)路網(wǎng)交通數(shù)據(jù).本文選取西奧克蘭(West Oakland)地區(qū)高速公路作為實(shí)驗(yàn)路網(wǎng),包括I880號(hào)、I580號(hào)、I980號(hào)、I80號(hào)和SR24號(hào)高速公路,共布設(shè)57個(gè)車輛檢測器,實(shí)驗(yàn)路網(wǎng)見圖2.以2016年5月29日—9月3日的交通流運(yùn)行數(shù)據(jù)作為基礎(chǔ)數(shù)據(jù),具體數(shù)據(jù)量為1 608 768條,采樣間隔為5 min.實(shí)驗(yàn)路網(wǎng)交通流運(yùn)行參數(shù)見表2.
圖2 實(shí)驗(yàn)路網(wǎng)
表2 交通流運(yùn)行原始數(shù)據(jù)表
本文利用5臺(tái)PC機(jī)搭建包含一個(gè)控制節(jié)點(diǎn)和四個(gè)計(jì)算節(jié)點(diǎn)的路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái),處理器Intel(R) Core(TM)2 i5-6500@3.20 GHz,4 G內(nèi)存.在路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)中的所有節(jié)點(diǎn)上均安裝有Linux(ubuntu 12.04)操作系統(tǒng),并配置Spark所需的軟件,包括:Java,Hadoop,Scala,Spark和R.
聚類結(jié)果的可靠性決定了路網(wǎng)運(yùn)行分析系統(tǒng)準(zhǔn)確性.因此,本文通過對比并行化聚類算法和傳統(tǒng)的聚類算法結(jié)果、并行化聚類算法結(jié)果和實(shí)際交通特性,對聚類結(jié)果進(jìn)行評(píng)價(jià).
3.2.1并行化聚類和傳統(tǒng)的聚類結(jié)果分析
相較于傳統(tǒng)的聚類算法,路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)對預(yù)處理后的交通流數(shù)據(jù)進(jìn)行并行計(jì)算,大幅度提高了聚類效率,聚類結(jié)果統(tǒng)計(jì)見表3.由表3可知,兩種聚類方式的聚類結(jié)果占比基本一致,其平均相對誤差約為7.3%,說明并行化聚類和傳統(tǒng)聚類算法結(jié)果具有一致性.
表3 并行化聚類與傳統(tǒng)聚類結(jié)果
3.2.2并行化聚類結(jié)果時(shí)間特性分析
圖3為401416號(hào)檢測器6月7日并行聚類結(jié)果時(shí)間分布特性圖,采用“1”“2”“3”“4”“5”表示交通運(yùn)行狀態(tài)的“暢通”“基本暢通”“輕度擁堵”“中度擁堵”“嚴(yán)重?fù)矶隆?由于I980號(hào)高速公路具有早晚高峰特點(diǎn),而401416號(hào)檢測器處于I980號(hào)高速公路下行線上.由圖可知:401416號(hào)檢測器并行聚類結(jié)果時(shí)間分布特性具有早高峰特點(diǎn),在早晨08:00前后道路交通量和占有率達(dá)到最高,同時(shí)道路上車輛的速度下降到最低值,與交通流運(yùn)行特性是一致的,說明交通流運(yùn)行數(shù)據(jù)并行聚類結(jié)果是可靠的.
圖3 401416號(hào)檢測器樣本與并行化聚類結(jié)果時(shí)間分布
3.3.1傳統(tǒng)判別與并行化判別結(jié)果評(píng)價(jià)
在單機(jī)和路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)上分別構(gòu)建路網(wǎng)交通運(yùn)行狀態(tài)判別模型,其中85%的路網(wǎng)數(shù)據(jù)作為訓(xùn)練集,15%的路網(wǎng)數(shù)據(jù)作為測試集,構(gòu)建傳統(tǒng)判別與并行化判別結(jié)果的交通運(yùn)行狀態(tài)混淆矩陣,并從混淆矩陣中提取出兩種判別結(jié)果平均精確度、召回率和F度量見圖4.由圖4可知,在路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)上并行化判別路網(wǎng)運(yùn)行狀態(tài)會(huì)影響其判別結(jié)果,并行化判別的精確度、召回率和F度量略低于傳統(tǒng)判別,但均達(dá)到98.5%以上,說明并行化判別結(jié)果的準(zhǔn)確性依然可靠.
圖4 傳統(tǒng)判別與并行化判別結(jié)果評(píng)價(jià)指標(biāo)平均值對比
3.3.2并行化判別模型評(píng)價(jià)
在路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)中,為評(píng)價(jià)判別模型的準(zhǔn)確性,本文選用邏輯回歸模型(Logit)、多層感知器(multi-layer perception, MLP)和隨機(jī)森林算法(RF)進(jìn)行對比.采用85%數(shù)據(jù)作為訓(xùn)練集和15%數(shù)據(jù)作為測試集進(jìn)行實(shí)驗(yàn),圖5為在不同交通運(yùn)行狀態(tài)下Logit,MLP,RF分類算法的精確度、召回率和F度量對比,圖6為Logit,MLP,RF分類算法的平均精確度、召回率和F度量對比.由圖6可知,隨機(jī)森林算法的精確度、召回率和F度量高于Logit和MLP算法,并均達(dá)到98%以上,說明在路網(wǎng)大數(shù)據(jù)機(jī)器學(xué)習(xí)平臺(tái)中,隨機(jī)森林算法的準(zhǔn)確性相較于其他分類算法準(zhǔn)確性較高.
圖5 不同分類算法下五種判別結(jié)果的指標(biāo)對比
圖6 不同分類算法下判別結(jié)果的指標(biāo)對比
3.4.1運(yùn)行時(shí)間
以路網(wǎng)交通流數(shù)據(jù)為基礎(chǔ),不斷增加數(shù)據(jù)規(guī)模,分析在不同計(jì)算節(jié)點(diǎn)數(shù)下路網(wǎng)交通運(yùn)行分析系統(tǒng)的運(yùn)行時(shí)間,結(jié)果見圖7.當(dāng)數(shù)據(jù)規(guī)模較小時(shí),增加計(jì)算節(jié)點(diǎn)的數(shù)量對系統(tǒng)的運(yùn)行時(shí)間影響不大;隨著數(shù)據(jù)規(guī)模的增大,系統(tǒng)中計(jì)算節(jié)點(diǎn)的數(shù)量越多,其運(yùn)行時(shí)間的越短.
圖7 不同節(jié)點(diǎn)運(yùn)行時(shí)間對比
3.4.2加速比
在在不同數(shù)據(jù)規(guī)模下,改變系統(tǒng)中計(jì)算節(jié)點(diǎn)的數(shù)量,分析并行判別系統(tǒng)的加速比,結(jié)果見圖8.增加計(jì)算節(jié)點(diǎn)的數(shù)量,加速比均會(huì)上升;當(dāng)數(shù)據(jù)規(guī)模較少時(shí),加速比隨著計(jì)算節(jié)點(diǎn)數(shù)量的增加先增大后趨于平穩(wěn);當(dāng)數(shù)據(jù)規(guī)模較大時(shí),增加系統(tǒng)中計(jì)算節(jié)點(diǎn),系統(tǒng)的加速比也不斷上升.
圖8 路網(wǎng)交通運(yùn)行分析系統(tǒng)加速比
3.4.3可擴(kuò)展性
以不同規(guī)模數(shù)據(jù)為基礎(chǔ),通過改變系統(tǒng)節(jié)點(diǎn)數(shù)量分析路網(wǎng)交通運(yùn)行分析系統(tǒng)的運(yùn)行時(shí)間,結(jié)果見圖9.增加系統(tǒng)中計(jì)算節(jié)點(diǎn)的數(shù)量,數(shù)據(jù)的運(yùn)行時(shí)間均有所下降;數(shù)據(jù)規(guī)模越大,系統(tǒng)的運(yùn)行時(shí)間下降的幅度越大,說明路網(wǎng)交通運(yùn)行分析系統(tǒng)適用于不同規(guī)模數(shù)據(jù)處理,具有良好的可擴(kuò)展性.
圖9 路網(wǎng)交通運(yùn)行分析系統(tǒng)可擴(kuò)展性
1) 以交通流量、速度和占有率為基礎(chǔ)進(jìn)行交通運(yùn)行狀態(tài)評(píng)價(jià),從而更加全面、準(zhǔn)確的反映路網(wǎng)中的路網(wǎng)運(yùn)行狀態(tài).
2) 經(jīng)實(shí)驗(yàn)證明,相較于傳統(tǒng)的運(yùn)算系統(tǒng),本文提出的并行運(yùn)算系統(tǒng)結(jié)果依然可靠、準(zhǔn)確,系統(tǒng)的加速比提升了近50%,并具有良好的可擴(kuò)展性,能更有效的對大規(guī)模數(shù)據(jù)進(jìn)行處理.
3) 本文采用定點(diǎn)檢測器采集的交通流量、速度和占有率數(shù)據(jù)實(shí)現(xiàn)路網(wǎng)交通狀態(tài)的判別,檢測器的布設(shè)密度對實(shí)際結(jié)果具有一定的影響.因此,在未來的研究中,采用定點(diǎn)檢測器數(shù)據(jù)與動(dòng)態(tài)采集設(shè)備的數(shù)據(jù)相融合,能進(jìn)一步提高交通狀態(tài)判別的準(zhǔn)確性和可靠度.