康 軍,溫興超,段宗濤,唐 蕾
1(長安大學 信息工程學院,西安 710064)
2(陜西省道路交通智能檢測與裝備工程技術研究中心,西安 710064)
近年來,基于軌跡數(shù)據(jù)挖掘人類移動規(guī)律和興趣愛好已成為研究人員的熱點研究領域之一.在軌跡數(shù)據(jù)處理方面,高強等人[1]對基于軌跡大數(shù)據(jù)的處理技術進行了綜述,介紹了多種軌跡處理分析方法;在出租車GPS軌跡分析方面,鄭運鵬等人[2]通過聚類方法識別乘客熱點區(qū)域并對出租車司機進行熱點推薦;在基于出租車GPS軌跡數(shù)據(jù)研究城市交通狀況方面,王晗等人[3]提出使用大規(guī)模出租車GPS軌跡數(shù)據(jù)對城市交通狀況進行建模和預測,構(gòu)建基于大規(guī)模出租車GPS軌跡的宏觀交通密度動態(tài)模型,預測未來的交通密度,何雯等人[4]提出了基于GPS軌跡的規(guī)律路徑挖掘算法;在基于GPS軌跡數(shù)據(jù)研究人類活動方面,段宗濤等人[5]以西安市GPS軌跡為例基于Hadoop分布式系統(tǒng)設計了出租車服務策略分析模型.Moreira Matias L 等人[6]通過出租車GPS軌跡實時數(shù)據(jù)和出租車站牌的乘客需求預測在短時間內(nèi)(幾分鐘)的出租車乘客空間分布從而進行智能派遣.
本文基于西安市大規(guī)模的出租車GPS數(shù)據(jù),利用大數(shù)據(jù)分析平臺,首先對不同時段的司機收入進行量化;再根據(jù)各時段司機收入分布情況進行軌跡數(shù)據(jù)篩選,然后利用過濾數(shù)據(jù)對出租車的換道行為進行識別和次數(shù)統(tǒng)計,并計算出租車的平均速度;最后與司機收入結(jié)合分析出租車司機換道行為的習慣和心理對運營的影響.
本文基于西安市出租車調(diào)度系統(tǒng)采集的GPS數(shù)據(jù);數(shù)據(jù)格式依次為:‘序號’,‘車輛牌照’,‘時間’,‘經(jīng)度’,‘緯度’,‘水平速度’,‘方向’,‘狀態(tài)位’(0 無狀態(tài)位 1 防劫2 簽到 3 簽退 4 空車 5 重車 6 點火 7 熄火).將 GPS 數(shù)據(jù)轉(zhuǎn)化為文本格式,上傳到HDFS分布式存儲平臺.原始的GPS軌跡數(shù)據(jù)可能存在數(shù)據(jù)缺失,漂移,時間錯亂,不完整等問題.因此本文通過數(shù)據(jù)預處理過程從12 000多輛出租車GPS數(shù)據(jù)中,選取了3189輛數(shù)據(jù)完備和準確的GPS數(shù)據(jù)進行分析,根據(jù)統(tǒng)計學原理,為了保障精度,假設在整個樣本區(qū)間95%的置信度下,0.05的誤差限,此時認為數(shù)據(jù)選取足夠可靠.
在數(shù)據(jù)預處理過程中,首先對GPS軌跡數(shù)據(jù)進行二次排序,獲得車輛的完整時空軌跡,然后對其進行以下幾個方面的處理:
(1)錯誤數(shù)據(jù).一天出租車狀態(tài)位為‘4’即空車的數(shù)據(jù),對于研究是無用數(shù)據(jù),對于超出西安市范圍(東經(jīng)108度~109 度,北緯 33.65 度~34.65 度)的數(shù)據(jù)均認為無用的錯誤數(shù)據(jù),對錯誤數(shù)據(jù)直接刪除.
(2)重復數(shù)據(jù).GPS 數(shù)據(jù)時間重復現(xiàn)象,如果重復時間數(shù)據(jù)沒有斷點現(xiàn)象,直接刪除一條重復數(shù)據(jù),如果某時刻的重復數(shù)據(jù)造成斷點現(xiàn)象,刪除重復數(shù)據(jù)后,還需利用上下兩條數(shù)據(jù)進行插值處理.
(3)缺失數(shù)據(jù).原始的GPS軌跡存在部分字段缺失(速度或航向角)現(xiàn)象,如果連續(xù)時間點中間某一字段缺失,利用上下兩條數(shù)據(jù)插值補足,如果存在大量連續(xù)時間點字段缺失,直接刪除.
(4)異常數(shù)據(jù).在原始 GPS 數(shù)據(jù)中,存在 speed<0或者 speed >120(單位為 km/h)的異常速度值,還存在相鄰時刻的經(jīng)緯度之差大于0.012閾值的GPS軌跡誤差,這些認為是異常數(shù)據(jù),這樣的數(shù)據(jù)比較少直接剔除比較簡單并對后續(xù)研究沒有影響.
汽車的行駛過程符合物理運動規(guī)律,如圖1所示建立汽車行駛運動的平面圖.圖1中i,j,k代表連續(xù)時間間隔車輛所在的經(jīng)緯度點,Vi,Vj,Vk為車輛的瞬時速度,δi,δj,δk表示車輛行駛的航向角(即車輛瞬時速度與正北方向沿順時針形成的角度),θij,θjk表示軌跡方向(即相鄰上一時刻GPS點與當前GPS點的連線與正北方向的順時針角度).
圖1 汽車行駛運動軌跡
出租車在行駛過程中會發(fā)生航向角和軌跡方向的波動,而直線換道行為的軌跡波動會呈現(xiàn)規(guī)律變化,如圖2所示,Δδ1,Δδ2,Δδ3表示航向角偏差(相鄰兩個航向角之差),Δθ1,Δθ2表示軌跡偏差(相鄰兩個軌跡方向角之差),連續(xù)的四個GPS軌跡中,Δδ 先變大,再逐漸變小,之后又變大滿足關系 Δ δ1≈ Δδ3> Δδ2;對于軌跡方向,換道行為發(fā)生在同一道路方向,變化不大,即Δθ1≈ Δθ2.上述規(guī)律換道行為發(fā)生在同一道路方向,圖2中示例的是右拐彎,左拐彎也符合這一規(guī)律,如果是十字路口拐彎則滿足 Δ δ1≈ Δδ3< Δδ2且 Δ θ1< Δθ2,環(huán)島行為滿足 Δ δ3> Δδ1> Δδ2且 Δ θ1< Δθ2,因此根據(jù)航向角偏差和軌跡偏差的關系與變化規(guī)律可以區(qū)別不同的換道行為,本文研究的是在同一道路方向的換道行為即直道換道行為.
圖2 換道運動軌跡關系
以換道行為的航向角偏差和軌跡方向偏差為特征,建立特征向量樣本集合T={(x1,y1),···,(xn,yn)},其中xi=(Δδi1,Δδi2,Δδi3,Δθi1,Δθi2),1 ≤i≤n,其中 Δ δi1,Δδi2,Δδi3表示連續(xù)四個GPS軌跡點之間的航向角偏差,同理Δθi1,Δθi2表示連續(xù)四個GPS軌跡點之間的連續(xù)兩個軌跡方向偏差;以D1表示1次出租車換道行為,D2表示其它情況;yi表示樣本xi屬于D1類或D2類的數(shù)學值,則:
支持向量機 (Support Vector Machine,SVM)是機器學習領域可以用于分類的經(jīng)典模型,它在解決有限樣本,數(shù)據(jù)非線性適應,模式識別中表現(xiàn)出許多優(yōu)勢,本文利用Spark的SVMWithSGD進行換道行為識別.
SVMWithSGD通過求得最優(yōu)分類面g(x)=wTx+b,將D1和D2分開.SVMWithSGD引入損失函數(shù)和正則化函數(shù)求解最優(yōu)分類面[7],轉(zhuǎn)化為目標函數(shù)
最后采用隨機梯度下降求解.根據(jù)以上分析,換道行為識別算法如表1.
表1 換道行為識別算法
經(jīng)過出租車(裝配GPS設備)在城市道路的實測,如表2所示得到200個由航向角和軌跡方向偏差與標簽組成的特征數(shù)據(jù),標簽1表示換道行為,0表示其他,將200個特征數(shù)據(jù)隨機分為訓練樣本(120個樣本,大概有50多次換道行為)和測試樣本.利用spark的SVMWithSGD(stepSize,numIterations,gradient,updater,optimizer)進行模型訓練.其中,stepSize:迭代步長,默認為 1;numIterations:迭代次數(shù),設置為 50;gradient:梯度下降的損失函數(shù),設置為 hinge loss;updater:正則化,設置為L2范數(shù);optimizer:隨機梯度下降優(yōu)化計算.
表2 部分特征數(shù)據(jù)集
采用80個測試樣本(40次換道行為)進行測試,測試結(jié)果如表3所示,可以看出,Spark的SVM算法可以準確的識別換道行為.
表3 SVM 分類準確率
司機的換道行為的分析主要是研究不同時段司機換道行為發(fā)生的次數(shù)與出租車平均行駛速度的關系,首先將一天劃分成12個時段(即每兩個小時為一個時段),并按時段量化司機收入,大量的收入數(shù)據(jù)滿足大數(shù)中心定律,近似服從T分布,對平均收入進行區(qū)間估計并過濾置信范圍內(nèi)的GPS軌跡數(shù)據(jù),數(shù)據(jù)過濾后,利用SVM進行換道行為識別,并統(tǒng)計各時段換道行為發(fā)生次數(shù)和出租車平均行駛速度.換道行為的分析的關鍵是數(shù)據(jù)的定量統(tǒng)計和分析,由于數(shù)據(jù)量規(guī)模比較大,傳統(tǒng)的的數(shù)據(jù)庫和數(shù)據(jù)分析工具SPSS等分析方法比較耗時,而且本文分析的統(tǒng)計量計算步驟繁復,需進行大量的迭代操作.Spark是一個分布式系統(tǒng)架構(gòu)的計算引擎,它是基于內(nèi)存計算的框架,計算速度快,適合大規(guī)模數(shù)據(jù)迭代運算[8],并且spark包含數(shù)據(jù)統(tǒng)計庫函數(shù),可以直接調(diào)用進行復雜的數(shù)學統(tǒng)計,為了分析計算方便,因此本文采用大數(shù)據(jù)平臺spark進行分析數(shù)據(jù).
司機收入量化即計算司機每個時隙的收入,通過計算每個時隙出租車司機載客的距離,根據(jù)出租車運營價格大致得到司機的收入.利用司機載客狀態(tài)的GPS數(shù)據(jù)相鄰時間經(jīng)緯度的變化,計算出間隔的距離,累積一個時隙得到司機的載客距離,從而得到司機的大致收入.利用spark對出租車司機收入量化,主要用到三個算子:map,groupByKey 和 mapValue.map 算子將原始數(shù)據(jù)切分成key_value型數(shù)據(jù)((車牌號,日期,時隙),原始數(shù)據(jù)),groupByKey 將 (車牌號,日期,時隙)這種key相同的數(shù)據(jù)聚合到一個組.mapValue對group成一組的數(shù)據(jù)進行操作,對司機收入進行量化.算法1中的V表示原始數(shù)據(jù),原始數(shù)據(jù):(車牌號,日期,時段,經(jīng)度,緯度,航向角,狀態(tài))=(carid,date,slot,lon,lat,A,state).
算法1.司機收入并行量化算法輸入:按時間排序的GPS軌跡數(shù)據(jù).輸出:各個時隙司機的收入.1.map:2.切分數(shù)據(jù)為 key_value 形式:((carid,date,slot),V);3.groupByKey:4.將key相同的數(shù)據(jù)聚合成一組,即(carid,date,slot),iterable(V));5.mapValue:6.對每組數(shù)據(jù)的value進行操作7.for (line<- iterable(V)){8.if(state==5){9.累積計算載客狀態(tài)的每兩個相鄰時間間隔GPS點距離,olon,olat代表上一個經(jīng)緯度;
10.distance=GetDistace(olon,olat,lon,lat);11.累積計算一個時隙載客總距離;12.Dis=Dis+distance;13.}14.累積計算一個時隙司機的收入;15.Salary=Dis*運營單價;16.}17.整合數(shù)據(jù)為 ((carid,date,slot),Salary).
對于出租車司機的收入,由于存在很多非營運因素造成出租車司機收入過高或過低,影響出租車換道行為的分析結(jié)果.因此,首先假設出租車司機收入服從T分布,然后對出租車司機收入進行區(qū)間估計,在后續(xù)分析過程中,僅保留收入在置信水平為95%的置信區(qū)間內(nèi)的出租車的軌跡數(shù)據(jù),以消除收入極值的影響.出租車司機收入的置信區(qū)間如下式
其中,n為出租車數(shù)量,x為出租車收入均值的估計值,S為出租車收入方差的估計值,tα/2(n–1)為T分布水平α的分位數(shù),其中顯著水平 α為0.05.在spark平臺上提取各時段平均收入置信區(qū)間內(nèi)數(shù)據(jù),算法2首先對量化收入用 map 數(shù)據(jù)轉(zhuǎn)化為 (時隙,(收入,原始數(shù)據(jù))),然后進行groupByKey和mapValue計算,得到各個時段的置信區(qū)間,然后對收入數(shù)據(jù)進行filter操作,過濾出置信數(shù)據(jù).
算法2.司機收入置信區(qū)間范圍內(nèi)軌跡提取算法輸入:算法 1 數(shù)據(jù) ((c a r i d,d a t e,s l o t),S a l a r y)輸出:置信區(qū)間的軌跡數(shù)據(jù)1.m a p:2.轉(zhuǎn)換數(shù)據(jù)為 (s l o t,( S a l a r y,V));3.g r o u p B y K e y:4.將 k e y 相同數(shù)據(jù)聚合為一組,即5.(s l o t,I t e r a t o r(S a l a r y,V));6.m a p V a l u e:ˉX 7.計算各時隙平均收入 和方差SˉX 8.=g e t A v e S a l a r y(I t e r a t o r(S a l a r y,V));ˉX 9.S=g e t V a r(I t e r a t o r(S a l a r y,));1 0.m a p:1 1.得出每個時隙收入的置信區(qū)c o n d i s;1 2.f i l t e r:1 3.從 (s l o t,(S a l a r y,V))過濾置信數(shù) d a t a;1 4.d a t a=f i l t e r(c o n d i s.c o n t a i n s(S a l a r y)).
上述置信區(qū)間的軌跡數(shù)據(jù),算法3在Spark上通過groupByKey和mapValue計算航向角和軌跡方向的偏差和平均行駛速度,并建立特征向量,通過map算子利用Spark已建立SVM模型進行換道行為判別,最后通過reduceByKey統(tǒng)計換道次數(shù).
算法3.基于S V M的出租車換道次數(shù)提取算法輸入:置信區(qū)間的軌跡數(shù)據(jù)輸出:換道次數(shù)和平均速度1.g r o u p B y K e y:2.將(s l o t,V)按k e y聚合為一組;3.m a p V a l u e:4.計算每個時隙的平均速度m e a n v 5.m e a n v=g e t A v e r a g e S p e e d(I t e r a t o r(V));6.m a p V a l u e:7.計算連續(xù)四個G P S軌跡的航向角偏差和軌跡方向偏差;x i x i=(Δ δ i1,Δ δ i2,Δ δ i3,Δ θ i1,Δ θ i2)=g e t V e c t o r(I t e r a t o r(V));8.m a p:9.判別換道行為為 1,其他為 0;x i1 0.s t a t e=S V M M o d e l.p r e d i c t();1 1.r e d u c e B y K e y:1 2.統(tǒng)計換道次數(shù)S;1 3.整合數(shù)據(jù)為 (s l o t,(m e a n v,S)).
通過司機收入量化,置信數(shù)據(jù)提取,和換道行為的分析,得到了各個時隙的換道行為次數(shù),司機的收入,和出租車平均速度.最后,對換道行為的次數(shù)和出租車平均速度,司機收入進行相關性計算,評估三者的關聯(lián)關系.實驗環(huán)境:Spark 集群,13 臺 Workers,104 個Cores,64G Memory;GPS 數(shù)據(jù)集:西安市 2015年9月一個月的數(shù)據(jù),約 70 GB數(shù)據(jù),包含1萬多輛出租車.
本文相關性分析采用皮爾遜相關系數(shù)評估算法,通過相關系數(shù)臨界值表得知,當自由度為1000,顯著水平α=0.05時,顯著相關的相關系數(shù)臨界值為0.041,即對于1000組樣本數(shù)據(jù),其相關系數(shù)絕對值大于等于0.041,則相關性顯著.以下各圖分析樣本的數(shù)量均大于等于1000.
在圖3中,可以看出0點到5點,出租車司機收入與置信范圍的邊界值低于其它時段,說明乘客量比較少,自 6 點后,收入開始增加,在 8 點到 9 點和 18 點到19點,出租車司機收入相比前一時段增幅比較大,說明這幾個時段是客流量高峰期.
圖3 各個時隙出租車司機的平均收入與其置信范圍的最低和最高值
在圖4中,0點到5點速度高于其它時段,速度與收入的相關系數(shù)低于臨界值0.041,不顯著相關,可以理解在這期間司機的駕駛速度快,與收入沒有直接的關聯(lián)關系,自 6 點后的其它時段,速度降低,相關系數(shù)大于臨界值,呈現(xiàn)正相關,表明在這期間,司機的駕駛速度變快,收入就會增加,并且在速度較低的時段相關系數(shù)明顯大于臨界值,說明在車流量多的時候速度與收入正相關性越顯著.
圖4 各個時隙出租車的平均速度及其與司機收入平均值的相關系數(shù)
圖5中0點到5點平均換道次數(shù)少于其他時段,速度與換道次數(shù)的相關系數(shù)為負值,小于臨界值-0.041,可以看出換道次數(shù)與平均速度沒有直接關系;6點以后換道次數(shù)增多,在車流量高峰時明顯高于其他時段,如 8 點到 9 點,18 點到 19 點,換道次數(shù)與速度的的相關系數(shù)呈現(xiàn)顯著的負相關,說明速度越慢,換道次數(shù)越多.結(jié)合圖4速度與收入的相關系數(shù),可以得出結(jié)論,0 點到 5 點,在這期間,車流量少,出租車司機都以較快的駕駛速度運營,換道次數(shù)少,速度與換道次數(shù)和收入三者沒有相關關系;6點以后,隨著車流量增加,收入與速度呈現(xiàn)正相關,出租車司機通過提高速度來增加收入,為了提高速度多次換道,尤其在車流量高峰期,而頻繁的換道行為,造成了交通不暢,加劇了交通擁堵,反而降低車的行進速度,因此換道次數(shù)與速度呈現(xiàn)負相關.
圖5 各個時隙出租車的換道次數(shù)及其平均速度的相關系數(shù)
出租車司機的直道換道行為是一種司空見慣的駕駛行為,一般的,我們認為出租車司機的的換道行為會提高出租車的駕駛速度,有利于出租車司機更好的服務乘客,但這種行為會對城市交通狀況產(chǎn)生什么影響,進一步這一行為受到什么因素驅(qū)動,本文通過大規(guī)模的GPS軌跡數(shù)據(jù)挖掘城市出租車司機的換道行為,發(fā)現(xiàn)出租車GPS軌跡數(shù)據(jù)中隱藏的規(guī)律與特征.
通過結(jié)果分析,出租車司機的直道換道行為受到收入的驅(qū)動,當車流量較少時,換道行為可以提高收入,但當車流量較大時司機頻繁換道行為致使車流整體速度降低,造成交通不暢,而出租車司機駕駛速度會影響它的收入,速度越慢收入越低,所以當車流量較大時,司機的頻繁直道換道行為會降低收入并且影響城市交通狀況,而且容易造成交通事故,建議出租車司機在車流量較大時盡量減少不必要的換道行為,養(yǎng)成良好的駕駛習慣,促進城市交通和諧.