熊蘇生
(1.華南師范大學(xué),廣東 廣州 510631; 2.阿里巴巴集團,浙江 杭州 311121)
用戶的交通模式是指人們的出行方式,隨著交通越來越智能化,對居民出行的交通模式識別,有利于城市規(guī)劃建設(shè)者和道路交通管理者掌握人們的出行方式,合理規(guī)劃交通布局,緩解交通壓力,為智能交通的精細引導(dǎo)、實時路況以及市政決策提供了數(shù)據(jù)支撐。手機傳感器技術(shù)具有的實時性、動態(tài)性、可持續(xù)性等特性,被部分交通行業(yè)學(xué)者所發(fā)掘[1]。應(yīng)用手機傳感器數(shù)據(jù)進行交通模式識別逐漸成為國內(nèi)外學(xué)者研究的熱點。
識別用戶的交通模式是一個典型的模式識別問題,目前國內(nèi)外研究者提出了相應(yīng)的解決方案。首先,通過手機和穿戴式設(shè)備收集數(shù)據(jù)并對數(shù)據(jù)集進行一個基本的預(yù)處理,去除一些重復(fù)數(shù)據(jù)和信號異常數(shù)據(jù),生成待實驗數(shù)據(jù)集。然后,提取特征值并對特征值進行分析與比較,得到最終特征。最后,使用各分類模型進行分類,得出分類結(jié)果并評估。
在識別用戶交通模式的研究中,較高的識別準確率、豐富的識別種類和便于實施的要求非常重要[2]。一方面,準確地識別多種類別的交通模式是它能夠被實際應(yīng)用的基礎(chǔ);另一方面,考慮到成本與實施問題,要求方法是易于被普通用戶接受的。近年來已經(jīng)有不少相關(guān)研究,然而,這些研究均不能很好地滿足以上3個方面的需求。Wang等[3]提出的方法能識別包括地鐵在內(nèi)的6種交通模式,但在分類規(guī)則方面,使用基于生活規(guī)則的判別條件加單一分類算法決策樹,相比于集成學(xué)習(xí)分類算法(如隨機森林等),在識別準確率、強壯性和適應(yīng)性方面表現(xiàn)均存在不足。Reddy等[4]提出一種基于手機的GPS和加速度傳感器的交通模式識別方法,準確率高達93.6%,且僅依賴于手機傳感器數(shù)據(jù)滿足便于實施的要求,但是它只能區(qū)分靜止、步行、跑步、自行車和機動車這5種模式,不能將機動化的交通模式區(qū)分開來。Xiao等[5]和廖思靜[6]提出一種基于決策樹的組合模型的交通模式識別方法,能夠識別豐富的類別(包括地鐵),實施簡便,但識別非步行交通模式準確率較低。Stenneth等[7]提出一種基于GPS和GIS的識別方式,準確率高達93.4%,能夠?qū)⒌孛嫔系臋C動化交通區(qū)分開來(不包括地鐵),但識別需借助于后臺服務(wù)器的運算,不易實施。Yu等[8]提出一種基于加速度傳感器、陀螺儀和磁力計的識別方法,能耗低并且易運算,但數(shù)據(jù)預(yù)處理和特征選擇方法較為簡單,對機動化交通識別準確率不高。
對當前國內(nèi)外的研究現(xiàn)狀和進展進行總結(jié),得到如下結(jié)論:在數(shù)據(jù)采用方面大部分使用GPS、WiFi、藍牙和加速度傳感器這些數(shù)據(jù)相結(jié)合,在識別類別豐富的前提下,對步行交通模式識別準確率較高,但是對非步行交通模式識別準確率較低。針對這類問題,本文提出一種基于改進的LightGBM算法[9](K-lightGBM)結(jié)合移動端的識別方法對交通模式進行識別的方法。
LightGBM是微軟DMTK團隊開源發(fā)布的,為Gradient Boosting算法的改進版本。LightGBM是一個輕量級的GB框架,基于決策樹的學(xué)習(xí)算法,支持分布式。其中Gradient Boosting算法的思想是將弱分類算法提升為強分類算法,從而一定程度提高分類準確率。算法主要流程如下:
1)初始化m棵決策樹,訓(xùn)練樣例的權(quán)重為1/m;
2)訓(xùn)練弱分類器f(x);
3)決定該弱分類器的話語權(quán)?;
5)得到最終分類器:
Fm(x)=?0f0(x)+?1f1(x)+?2f2(x)+…+?mfm(x)
(1)
針對LightGBM算法在交通模式識別應(yīng)用中很難區(qū)分機動車交通模式這一問題,本文提出改進的K-lightGBM算法進行識別,給每個決策樹子分類器的話語權(quán)引入K值,進行重新判定?;诮煌J揭?guī)則去除部分錯誤分類樹,針對2種交通模式特征區(qū)域相似(在交通模式中例如:汽車和公共汽車),用一階隱馬爾科夫鏈[10]驗證結(jié)果,更新K值,使損失函數(shù)L(Fm(x),y)更加減少,提高模式識別精度。算法主要流程如下:
1)初始化m棵決策樹,訓(xùn)練樣例的權(quán)重為1/m;
2)訓(xùn)練弱分類器f(x);
3)決定該弱分類器的話語權(quán)?;
4)根據(jù)前一段軌跡,判斷其是否符合步行-非步行-步行的交通規(guī)則;
5)針對特征區(qū)域相似的2種交通模式,采用馬爾科夫鏈對弱分類器結(jié)果進行驗證,更新話語權(quán)為K?;
7)得到最終分類器:
Fm(x)=?0K0f0(x)+?1K1f1(x)+
?2K2f2(x)+…+?mKmfm(x)
(2)
K值的設(shè)定如公式(3):
(3)
其中,
(4)
圖1 K值選取算法流程
式(4)中:n1表示當前決策樹子類識別模式樣本總數(shù),n2表示另一種與該模式特征區(qū)域相似的樣本總數(shù)。K值選取流程如圖1所示。
從圖1可知,當決策樹子類識別結(jié)果不滿足步行-非步行-步行的交通規(guī)則,則認定該子類為錯誤分類,設(shè)K=0;如滿足交通規(guī)則,當識別的交通模式是汽車和公共汽車的一種時,使用一階隱馬爾科夫鏈驗證,如識別結(jié)果與決策樹子類不相同,則認定該子類為模糊分類,設(shè)K=γ;其余情況,認定子類為精確分類,設(shè)K=1。
在隨機序列中,居民當前的交通模式只與前一交通模式有關(guān),符合一階隱馬爾科夫過程(時間是離散的,因有步行轉(zhuǎn)換過程)。公式如下:
θ=(C,D,π)
(5)
式中,隱馬爾可夫模型θ由初始狀態(tài)概率向量π、狀態(tài)轉(zhuǎn)移概率矩陣C和觀測概率矩陣D決定。π和C決定狀態(tài)序列,D決定觀測序列。馬爾可夫模型中最主要的是狀態(tài)轉(zhuǎn)換的轉(zhuǎn)移矩陣,下面闡述在交通模式識別中,狀態(tài)轉(zhuǎn)移過程。設(shè)在馬爾科夫鏈中第n個時刻的狀態(tài)為Sn,則可能轉(zhuǎn)移的狀態(tài)有9種:S0,S1,S2,…,S8。整個狀態(tài)集合定義為:
S={S0,S1,S2,…,S8}
(6)
其中,第n個時刻的狀態(tài)Sn∈S。轉(zhuǎn)移概率如式(7):
pij=p(Sn+1=Sj/Sn=Si)
(7)
式(7)中,
Si,Sj∈S,pij表示Si狀態(tài)到Sj狀態(tài)的轉(zhuǎn)移概率。狀態(tài)轉(zhuǎn)移矩陣可描述為式(8):
(8)
在分類中,一般損失函數(shù)[11]越小,模型擬合程度越好。經(jīng)過改進后的最終分類器,損失函數(shù)的變化如式(9):
L(Fm(x),y)≤L(Fm-1(x),y)
(9)
式(9)中,除了子類是錯誤分類,目標損失函數(shù)L不變,否則目標損失函數(shù)L是隨著子類的增加而減少的。經(jīng)過m次目標損失函數(shù)變化,得到最終分類器Fm(x)。
本文選擇了3種傳感器的時域特征和頻域特征的最優(yōu)特征集對多種交通模式進行分層識別,分別是步行、汽車和公共汽車、跑步、自行車、摩托、火車、地鐵和高鐵。采用基于交通模式規(guī)則(居民出行交通模式是步行到非步行再到步行的周期過程)和一階隱馬爾科夫鏈算法改進的K-lightGBM算法,減少了錯誤分類率,分層識別算法如圖2所示。
圖2 分層識別算法
本文的算法框圖如圖3所示。首先用Butterworth濾波[12]對加速度計、陀螺儀和磁力計這3種傳感器數(shù)據(jù)進行濾波處理,然后分別計算3種傳感器用于交通模式識別的時域特征和頻域特征,經(jīng)過對提取的特征用CFS算法進行分析,選取最優(yōu)特征集,最后通過改進的K-lightGBM算法進行識別,得出最終結(jié)果。
圖3 算法框架圖
為了選擇合理的傳感器數(shù)據(jù)進行交通模式識別,本文在文獻[8]基礎(chǔ)上,分析了傳感器能耗和數(shù)據(jù)集對分類精度的影響,采用控制變量的方法進行實驗。把僅使用加速度計傳感器數(shù)據(jù)進行識別的分類精度作為基準,平均精度提升率設(shè)置為0%;把使用GPS數(shù)據(jù)進行識別的能耗作為基準,平均能耗降低設(shè)置為0 mA[8];“√”表示采用了該類傳感器數(shù)據(jù),如表1所示。
表1 傳感器影響分類精度與能耗表
從表1可知,三軸加速度計對實驗的分類精度影響最大,當缺少三軸加速度傳感器數(shù)據(jù)時,精度下降了20.20%。而同時采用三軸加速度計、陀螺儀和磁力計傳感器的數(shù)據(jù)時精度是最高的,提升了11.45%。使用三軸加速度計、陀螺儀和磁力計相對于使用GPS有較低的能耗,至少降低23.5 mA,其中減少使用三軸加速度計、陀螺儀和磁力計其中的1種或2種傳感器對能耗的降低不明顯。從而可知,使用三軸加速度計、陀螺儀和磁力計傳感器收集數(shù)據(jù)進行模式識別不僅能耗較低,而且還有較高的精度。
當傳感器收集數(shù)據(jù)時,電路經(jīng)常存在較大噪聲,對于數(shù)據(jù)的分析有重大影響,真實的傳感器數(shù)據(jù)會被噪聲所干擾,使得結(jié)果數(shù)據(jù)質(zhì)量嚴重下降。為了在實驗中抑制高頻信號干擾,本文采用Butterworth低通濾波方法對數(shù)據(jù)進行濾波。
在實際應(yīng)用中,傳感器數(shù)據(jù)除了對一些特定的動作使用特定的單軸來辨別方向之外,通常將三軸數(shù)據(jù)合成一個值[13],這樣在確保精度的同時,減少了計算復(fù)雜性,見公式(10):
(10)
式(10)中,A為合成值,ax、ay和az分別表示三軸讀數(shù)。在對傳感器數(shù)據(jù)進行濾波時,為提高濾波效果,本文分別對三軸數(shù)據(jù)進行了Butterworth濾波,再將三軸數(shù)據(jù)進行合成。Butterworth濾波傳遞函數(shù)為:
(11)
式(11)中,(u,v)為原點坐標,w0為截止頻率,n為濾波階數(shù),取正整數(shù),它控制濾波的衰減速度。濾波的特性完全由階數(shù)n決定,當n增大時濾波器的特性曲線變得更陡峭,因此在通帶的更大范圍內(nèi)接近于1,在阻帶內(nèi)更迅速地接近于0,因而振幅特性更接近于理想的矩形頻率特性。濾波前后對比如圖4所示。
圖4給出了3種傳感器數(shù)據(jù)濾波前后波形。橫坐標表示時間,縱坐標表示傳感器示數(shù),其中A、G和M波段分別表示加速度計、陀螺儀和磁力計濾波前的信號波形,γ(A)、γ(G)和γ(M)波段分別表示加速度計、陀螺儀和磁力計濾波后的信號波形。從濾波前的波形可以看出,信號有很雜亂的毛刺波形,經(jīng)過Butterworth濾波后,數(shù)據(jù)曲線變得光滑,毛刺波形較少。
(a) 加速度計數(shù)據(jù)濾波前后對比波形
(b) 陀螺儀數(shù)據(jù)濾波前后對比波形
(c) 磁力計數(shù)據(jù)濾波前后對比波形
本文針對每種傳感器計算了19種特征,并將它們分為時域特征和頻域特征,采用Filter的相關(guān)性度量CFS算法對每一維的特征“打分”并進行特征選擇。CFS(Correlation-based Feature Selection)是基于關(guān)聯(lián)規(guī)則的特征選擇算法,由Hall[14]提出。CFS估計特征子集并對特征子集進行排序,即對每個特征子集進行排名。采用啟發(fā)式的方式評估特征子集的價值。啟發(fā)式方程為:
(12)
表2 特征排序表
本文采用HTC公司提供的數(shù)據(jù)集,該數(shù)據(jù)集大小為100 GB,記錄了一組150名大學(xué)生和一組74名工人各311 h的軌跡數(shù)據(jù)。他們的交通模式分為9種模式:步行、跑步、自行車、摩托車、汽車、公共汽車、地鐵、火車和高速鐵路(高鐵)。在系統(tǒng)設(shè)計中,本文采用分層抽樣,把數(shù)據(jù)從內(nèi)部分成74.5%訓(xùn)練集和25.5%測試集進行實驗,橫坐標表示交通模式類型,縱坐標表示軌跡段數(shù),數(shù)據(jù)分布如圖5所示。
本文用Python語言編寫代碼,設(shè)置好模型參數(shù),將經(jīng)過預(yù)處理的數(shù)據(jù)分別代入到K-lightGBM、LightGBM、XGBoost、SVM和KNN這5種分類模型進行實驗,得出最終分類結(jié)果。
圖5 數(shù)據(jù)分布圖
準確率和召回率是廣泛用于交通模式識別領(lǐng)域的2個度量值,用來評價結(jié)果的質(zhì)量。f1值是準確率和召回率的調(diào)和均值,相當于準確率和召回率的綜合評價指標。公式如下:
(13)
(14)
(15)
其中,tp表示將正類預(yù)測為正類的數(shù),fp表示將負類預(yù)測為正類的數(shù),fn表示將正類預(yù)測為負類的數(shù)。
K-lightGBM算法在對于2種特征區(qū)域相似的交通模式識別中,當子類驗證為模糊分類時,需要分析K的取值對分類精度的影響。如圖6所示,當K=γ時,識別的分類最高,當K從0到1進行取值,分類精度是先增加,然后再減少的過程。從而可知,在經(jīng)過一階隱馬爾科夫鏈驗證決策樹子類為模糊分類時,令K=γ最佳。
圖6 K取值對分類精度的影響
本文采用SVM、KNN、XGBoost、LightGBM和K-lightGBM這5種模型進行實驗,對比分析各模型對交通模式的識別結(jié)果。
表3 各模型分類精度表
如表3所示,通過HTC數(shù)據(jù)集分類結(jié)果的對比,可以看出,K-lightGBM分類方法對該數(shù)據(jù)集的準確率、召回率和f1值最高,分別為94%、95%和94%,其中K-lightGBM的準確率相比于LightGBM分類方法提高了3%,比XGBoost提高了4%,比SVM提高了20%,比KNN提高了19%。由此結(jié)果可以得出,K-lightGBM算法在對交通模式識別時,比其他4種模型識別效果好,各項指標都有一定的提高。
K-lightGBM識別方法與同樣使用HTC數(shù)據(jù)集的文獻[8]的方法對比如表4所示,分析可知,在步行、跑步、自行車和機動車(摩托、汽車、公共汽車、火車、地鐵和高鐵的總稱)交通模式上分類準確率分別提高了8%、1%、3%和5%。這說明本文提出的K-lightGBM相對于文獻[8]方法能更準確地識別居民出行的交通模式。
表4 K-lightGBM與文獻[8]分類精度比較
實驗將HTC數(shù)據(jù)集按遞增梯度分成樣本大小不同的6組數(shù)據(jù),從分類準確率的角度分析改進后的K-lightGBM、LightGBM和XGBoost三者的算法優(yōu)異。
圖7 3種算法識別準確率比較
從圖7可以看出,除了樣本較小的極少組實驗,K-lightGBM算法比其他2種集成學(xué)習(xí)算法分類精度都要高,從準確率曲線表明,本文提出的K-lightGBM算法比其他2種算法較優(yōu)。
為探究K-lightGBM的識別效果,針對HTC數(shù)據(jù)集的不同交通模式的識別效果進行實驗。
表5 K-lightGBM對不同交通模式識別準確率
如表5所示,從K-lightGBM模型中各交通模式的分類結(jié)果可以看出,高鐵、地鐵、自行車、公共汽車、汽車、摩托、跑步、火車和步行都有很高的分類準確率、召回率和f1值。其中火車的分類準確率最低,但仍舊有87%,跑步和步行的準確率最高達到了98%。由此可以得出結(jié)論,K-lightGBM算法對各交通模式均有很高的識別精度。
本文提出一種基于智能手機傳感器的模式識別方法,首先通過Butterworth濾波器對加速度計、陀螺儀和磁力計這3種傳感器數(shù)據(jù)進行濾波,減少噪聲對真實數(shù)據(jù)的干擾,隨后用Filter方差法選擇最優(yōu)特征集,使用基于居民出行規(guī)則和一階隱馬爾科夫鏈改進的K-lightGBM模型進行分類,實驗表明該方法分類精度不僅較高,而且能識別多種交通模式。實驗過程依靠手機傳感器收集數(shù)據(jù),操作簡單,有一定的工程應(yīng)用價值。
目前影響交通模式識別的因素有很多,主要影響有3方面:數(shù)據(jù)集的選擇、特征值的選擇和分類模型的選擇[15-17]。因為數(shù)據(jù)集的局限性,本文方法在選擇特征時沒有與周圍環(huán)境相結(jié)合。如,日常生活中在軌跡附近的興趣點不同,居民的停留時間和行為是不一樣的;不同地區(qū)人們停留的次數(shù)和方向的轉(zhuǎn)換率也是不同的。筆者下一步研究特征值時,將結(jié)合停留點周圍環(huán)境去計算相應(yīng)的特征,最后通過排序和比較選擇最優(yōu)特征集合,同時加強對集成學(xué)習(xí)和深度學(xué)習(xí)的研究,提高模式識別的分類精度。