黃 亮,董智浩*,張銳明
(1.武漢理工大學,湖北 武漢 430070;2.廣東泰羅斯動力系統(tǒng)有限公司,廣東 佛山 528200)
隨著人們生活水平的提高,對于物質(zhì)生活的要求也在不斷地提升,體現(xiàn)在衣食住行的方方面面,其中對于汽車的需求量大幅增加,目前中國的汽車保有量突破2億,同時伴隨而來的還有不斷增加的交通事故數(shù)量。據(jù)統(tǒng)計中國每年交通事故超過50萬起,因交通事故死亡人數(shù)超過10萬人,平均每分鐘都會有1人因為交通事故而傷殘,每年因交通事故所造成的經(jīng)濟損失達數(shù)百億元。駕駛安全已成為人們不可忽略的問題之一,駕駛行為分析已成為了駕駛安全領域的焦點之一。近年來,隨著機器學習技術的崛起,給人們帶來了一種比傳統(tǒng)駕駛行為分析方法更快速解析海量駕駛數(shù)據(jù)的分析途徑。
機器學習在駕駛行為預測方面的應用已經(jīng)有很多科學家作出相關的研究。王武宏等[1]通過定量分析駕駛差錯狀態(tài)恢復行為的特性,依據(jù)對駕駛差錯狀態(tài)的識別和改正行為的測度,建立了駕駛恢復度模型;結(jié)合對駕駛行為的測試數(shù)據(jù)與主觀判斷,運用改進的決策樹求得了駕駛差錯狀態(tài)的恢復概率。郭孜政等[2]采用單因子方差分析提取危險狀態(tài)辨識主因子?;谪惾~斯判別構建了駕駛行為危險狀態(tài)辨識模型。梁軍等[3]針對傳統(tǒng)駕駛決策模型難以體現(xiàn)駕駛員駕駛過程中對交通環(huán)境的感知、判斷、決策、動作等環(huán)節(jié)存在不確定性和不一致性,提出了一種基于神經(jīng)網(wǎng)絡的駕駛行為動態(tài)集成學習算法(Dynamic Neural Network-Based Integrated Learning Algorithm,DNNIA)。Tezuka等通過采用靜態(tài)類型的高斯—貝葉斯網(wǎng)絡模型來預測駕駛員的駕駛行為,與隱馬爾科夫預測模型相比較,該模型具有更高的預測準確率。Prakash構建了一種基于人工神經(jīng)網(wǎng)絡的駕駛員模型,與傳統(tǒng)的比例積分微分(Proportional Integral Differential,PID)模型相比較,在跟馳加速過程中,其能更好地預測和控制駕駛行為[4]。
本文提出一種基于隨機森林的駕駛行為分析,用于對車主的駕駛行為進行分類,并具有預測功能,對駕駛安全技術的發(fā)展具有重要意義。
在普通的城市道路當中,駕駛行為的特征表現(xiàn)為耦合性、隨機性和復雜性(見圖1)。耦合性體現(xiàn)在駕駛行為的變化不僅受司機的影響,還會受到環(huán)境因素、車輛故障等其他因素的影響。隨機性體現(xiàn)在駕駛行為的變更在任何時間,任何地點都有可能出現(xiàn),不能百分之百地確定下一步司機將會如何控制車輛。復雜性體現(xiàn)在駕駛行為的分析過程存在著許多不確定的因素,包括前面提到的耦合性和隨機性,同時不同的因素對于駕駛行為的影響程度,在不同的環(huán)境下可能出現(xiàn)偏差。
圖1 駕駛行為的特征
駕駛行為數(shù)據(jù)的收集主要通過車載通訊模塊,將車輛數(shù)據(jù)實時傳送到后臺再加以解析,車載通信模塊平均每30 s上傳126字段數(shù)據(jù),而在這些數(shù)據(jù)中并不是每一條數(shù)據(jù)都是有用的,也不是每個字段都是必須的,過多的屬性和數(shù)據(jù)集會影響決策樹的生長速度和準確性,因此需要對數(shù)據(jù)和屬性進行挑選。本課題中一共收集了6 637條車輛數(shù)據(jù),經(jīng)過篩選選出4 290條有用數(shù)據(jù)。基于駕駛行為的課題,屬性上選擇了最具研究價值的4個屬性,包括車速、檔位、時間和天氣,其中車速用1,2和3分別表示車速小于30 km/h,車速在30~50 km/h和車速超過50 km/h;檔位的取值范圍是1~5;時間用0,1表示,1表示高峰期,包括7 a.m—9 a.m和6 p.m—8 p.m,0表示其他時間;天氣也用0,1表示。0表示晴天、陰天等較好的天氣狀況,1表示雨天、霧天等惡劣的天氣狀況。最終的結(jié)果屬性使用安全系數(shù)表示,其中0代表安全,1代表危險。樣本示例如表1所示。
表1 樣本示例
本文在屬性選擇方面的主要考慮因素是屬性對于駕駛行為造成的影響程度和駕駛行為對車輛的影響程度,其中車速,檔位是駕駛行為影響的最主要因素,時間和天氣屬性是影響駕駛行為的最主要因素。當然更多的屬性能夠更優(yōu)化整個駕駛行為模型,但其他屬性例如電機轉(zhuǎn)速、轉(zhuǎn)矩等,一方面可以通過速度、擋位屬性側(cè)面反映,另一方面機器故障等其他外因也有可能造成這些屬性的變化。為了實現(xiàn)對駕駛行為更準確的預測,本文在屬性的選取方面,突出了車速、檔位、時間和天氣的屬性優(yōu)先級。
駕駛行為分析問題歸納起來是一種分類回歸問題,在機器學習方法中對于這一類問題的解決方式有很多,例如:支持向量機、人工神經(jīng)網(wǎng)絡、邏輯回歸、決策樹和隨機森林等。本文采用隨機森林的方式來進行駕駛行為的分析,其構造過程如圖2所示。
圖2 隨機森林構建過程
隨機森林是一種基于決策樹算法的分類算法,它通過自助法重采樣技術,從原始訓練樣本集N中有放回地重復隨機抽取n個樣本生成新的訓練樣本集合訓練決策樹,然后按以上步驟生成n棵決策樹組成隨機森林,新數(shù)據(jù)的分類結(jié)果按分類樹投票多少形成的分數(shù)而定。其實質(zhì)是對決策樹算法的一種改進,將多個決策樹合并在一起,每棵樹的建立依賴于獨立抽取的樣本。
隨機森林的核心是決策樹的構造,決策樹結(jié)構如圖3所示,從根節(jié)點開始,測試待分類項中相應的特征屬性,并按照其值選擇輸出分支,直到到達葉子節(jié)點,將葉子節(jié)點存放的類別作為決策結(jié)果,其每個非葉節(jié)點表示一個特征屬性上的測試,每個分支代表這個特征屬性在某個值域上的輸出,而每個葉節(jié)點存放一個類別。
圖3 決策樹結(jié)構
構造決策樹的關鍵步驟是分裂屬性。所謂分裂屬性就是在某個節(jié)點處按照某一特征屬性的不同劃分構造不同的分支,其目標是讓各個分裂子集盡可能地“純”。盡可能“純”就是盡量讓一個分裂子集中待分類項屬于同一類別。構造決策樹的關鍵性內(nèi)容就是進行屬性選擇度量,屬性選擇度量是一種選擇分裂準則,它決定了拓撲結(jié)構及分裂點的選擇。
決策樹中主流的屬性選擇度量算法有3個:ID 3算法,采用信息增益最大的特征;C4.5算法,采用信息增益比選擇特征;分類與回歸樹(Classification and Regression Tree,CART)算法,利用基尼指數(shù)最小化準則進行特征選擇。根據(jù)不同的算法來分裂屬性,選出最佳節(jié)點,最終構成一棵完整的決策樹。針對駕駛行為的特征,本文在屬性選擇度量算法上選擇C4.5算法,優(yōu)點如下:
(1)用信息增益率來選擇屬性,克服了用信息增益選擇屬性時偏向選擇取值較多的屬性這一不足。(2)在決策樹構造過程中進行剪枝。(3)能夠完成對連續(xù)屬性的離散化處理。(4)能夠?qū)Σ煌暾麛?shù)據(jù)進行處理。
通過C4.5算法度量屬性,建立決策樹并重復此過程n次,最終構成隨機森林模型。當新的測試數(shù)據(jù)集需要檢驗時,只要將測試集中的數(shù)據(jù)元分別帶入隨機森林模型中,從而得到n個不同的分類結(jié)果,再利用投票機制選出最終結(jié)果。
本文之所以選擇隨機森林算法來實現(xiàn)駕駛行為的分析,是基于上述駕駛行為的特性分析,針對駕駛行為的耦合性,隨機性和復雜性,相比于其他機器學習算法的優(yōu)勢在于以下方面。
(1)駕駛行為的耦合性體現(xiàn)在駕駛行為受到許多不同因素的影響,因為隨機森林的核心是決策樹模型,而決策樹的這種樹形分類方式能有效地區(qū)分開不同的屬性,通過信息增益比來判斷不同屬性的優(yōu)先級,很好地解決了駕駛行為的耦合性。
(2)駕駛行為的隨機性體現(xiàn)在不同時間不同路況下駕駛行為都會出現(xiàn)變化,而隨機森林是一種基于大數(shù)據(jù)的分析模型,隨機篩選數(shù)據(jù)構造大量決策樹來組成隨機森林模型,再通過眾數(shù)投票方式選出結(jié)果,這種隨機大量選取,眾數(shù)決策的方式很好地應對了駕駛行為的隨機性問題。
(3)駕駛行為的復雜性體現(xiàn)在駕駛行為數(shù)據(jù)是由一組復雜的屬性數(shù)據(jù)構成,一方面本文只選取了主要影響屬性,另一方面決策樹的樹形結(jié)構更易于人們直觀地理解,不同的屬性對于駕駛行為的影響程度,很好地降低了數(shù)據(jù)復雜性。
本文一共選取了4種主要屬性集:{車速,擋位,時間,天氣}和最終分類結(jié)果集{安全,危險}。在構建單棵決策樹時,先通過計算信息增益比,選出信息增益比最大地屬性作為根節(jié)點,假設為車速;接著再在剩下的屬性集{擋位,時間,天氣}中計算出最大信息增益比的屬性,假設為擋位,以此類推,直到構成一棵完整的決策樹。這只是單棵樹的構造,隨機森林模型是在整個駕駛行為數(shù)據(jù)集中,隨機選取一定數(shù)量的數(shù)據(jù),每組數(shù)據(jù)都構成上述的單棵決策樹,大量的決策樹組成了隨機森林。當需要進行預測分析時,將測試數(shù)據(jù)代入到隨機森林模型中,數(shù)據(jù)經(jīng)過隨機森林的每棵決策樹,得到不同的結(jié)果,最后利用眾數(shù)投票方式選出結(jié)果值數(shù)量最多的那個結(jié)果值作為最終結(jié)果。在本文中也就是在{安全,危險}中選擇那個通過隨機森林模型,結(jié)果值數(shù)量超過半數(shù)的結(jié)果。
隨機森林算法流程如下:
(1)將駕駛行為數(shù)據(jù)集通過自助法(bootstrap)重采樣技術,從駕駛行為數(shù)據(jù)集中有放回地重復隨機抽取樣本生成訓練樣本集合;(2)采用C4.5算法來選擇分裂屬性,構造決策樹。
首先給出如下定義:
定義1 設D是訓練樣本集,類別屬性具有m個不同的值,即有m個不同類Ci(i=1, 2, ... ,m),Di是隸屬Ci類的樣本集合,則信息熵的計算公式記為:
其中pi是集合D中任意屬于類Ci的概率,可用表示。
定義2 設訓練樣本集D按屬性A進行劃分,則條件熵為:
定義3 在C4.5算法中使用增益率的信息增益擴充來克服ID3算法偏向多值屬性的缺陷,首先分裂信息公式為:
增益率為:
決策樹構造流程:設訓練樣本集為D,D中的屬性為速度,擋位,天氣和時間,屬性集為A,A中的屬性為安全和危險。
①創(chuàng)建結(jié)點N;
②ifD都在同一個類C
then 返回N作為葉結(jié)點,用類C標記;
③else ifA為空
then 返回N為葉結(jié)點,標記D為樣本數(shù)種最多的類;
④else if 通過增益率選取最佳屬性a0標記為N,并在屬性集中剔除a0;
⑤forD根據(jù)a0的值劃分成不同的子集Ds;
ifDs為空
then 將N標記為葉結(jié)點,標記D為樣本數(shù)種最多的類;return;
else 在子集Ds和剔除了a0的新的屬性集Aa0中再選出最佳屬性a1,標記為新的結(jié)點N,并在屬性集中剔除a1。
構建決策樹如圖4所示。
(3)重復以上步驟n次,即生成n棵決策樹,形成隨機森林。
(4)對于測試數(shù)據(jù),經(jīng)過每棵樹決策,最后投票確認分到哪一類。 算法流程如圖5所示。
圖4 決策樹構建示例
圖5 算法流程
本文使用懷卡托智能分析環(huán)境(Waikato Environment for Knowledge Analysis,WEKA)來完成隨機森林在計算機上的實現(xiàn)。WEKA誕生于 University of Waikato并在1997年首次以其現(xiàn)代的格式實現(xiàn)。WEKA作為一個公開的數(shù)據(jù)挖掘工作平臺,集合了大量能承擔數(shù)據(jù)挖掘任務的機器學習算法,包括對數(shù)據(jù)進行預處理、分類、回歸、聚類、關聯(lián)規(guī)則以及在新的交互式界面上的可視化。該軟件以Java語言編寫并包含了一個圖形用戶界面(Graphical User Interface,GUI)來與數(shù)據(jù)文件交互并生成可視結(jié)果。它還有一個通用應用程序編程接口(Application Programming Interface,API),所以可以像嵌入其他的庫一樣將WEKA嵌入到應用程序以完成諸如服務器端自動數(shù)據(jù)挖掘這樣的任務。使用WEKA只需將數(shù)據(jù)集保存為.arff格式直接引入即可。
在WEKA中實現(xiàn)隨機森林算法時為提高其準確性,主要需要對Percentage split參數(shù)進行調(diào)試。Percentage split表示按照一定比例,將數(shù)據(jù)集分為兩份,一份做訓練,一份做測試。據(jù)大量統(tǒng)計學實驗驗證,訓練集大約占所有樣本集合的2/3時,生成的隨機森林模型的性能最高,而WEKA中Percentage split的默認值也是66%,但對于不同的數(shù)據(jù)集Percentage split的最佳值可能會發(fā)生變化,但大致范圍處于60%~80%。本文通過WEKA實現(xiàn)了隨機森林模型,同時設置不同的Percentage split值分析其最高精確點的取值。結(jié)果如圖6所示,其中縱坐標表示預測的精確度,橫坐標表示不同的Percentage split。從中可以看出當選擇75%來分離數(shù)據(jù)集時,達到最高的精確度。
圖6 Percentage split不同數(shù)值下準確率對比
使用WEKA實現(xiàn)的隨機森林算法,在最高精確度上達到 78.7313%,從中可以看出隨機森林算法應用于駕駛行為分析上可以達到較高的精度,致使精確度無法到80%以上的原因主要是與數(shù)據(jù)本身缺乏普遍性有關,如果能從更多的數(shù)據(jù)源收集更多的數(shù)據(jù),同時增加數(shù)據(jù)數(shù)量,這樣隨機森林模型的建立就能更加的完整,從而提升預測的準確性。
另外本文還利用WEKA實現(xiàn)不同的機器學習分類回歸方法,對同一數(shù)據(jù)集作出分析,精確度對比如圖7所示,其中縱坐標表示預測精確度,橫坐標表示各分類算法。從圖7中可以看出在駕駛行為預測方面隨機森林算法比起其他的分類回歸方法具有更高的精確度,進一步反映了隨機森林在駕駛行為分析領域擁有更高的應用價值。
圖7 各種機器學習分類回歸方法精確度對比
隨機森林算法是目前最為流行的機器學習算法之一,與決策樹相比,其具有更高的預測準確率,對異常值和噪聲具有很好的容忍度,且不容易出現(xiàn)過擬合。本文通過車載通訊模塊收集駕駛行為數(shù)據(jù),并針對其耦合性、隨機性和復雜性的特點,對數(shù)據(jù)進行篩選,采用C4.5算法選取屬性,建立決策樹,最終構成駕駛行為隨機森林模型,在計算機上通過WEKA實現(xiàn)算法并驗證了模型的準確率。
經(jīng)驗證,隨機森林算法在駕駛行為分析上具有較高的精確度,因WEKA良好的擴展性,可將算法程序移植入一些車載終端或手機APP上,通過該算法能夠?qū)︸{駛行為作出預測,當出現(xiàn)危險的駕駛行為特征時,及時發(fā)出警告,提醒司機安全駕駛,從而提高交通安全,避免交通事故的發(fā)生。
[參考文獻]
[1]王武宏,沈中杰,杜秋.基于決策樹的駕駛差錯恢復行為的建模[J].北京理工大學學報,2002(1):61-65.
[2]郭孜政,陳崇雙,王欣.基于貝葉斯判別的駕駛行為危險狀態(tài)辨識[J].西南交通大學學報,2009(5):771-775.
[3]梁軍,沙志強,陳龍.基于人工神經(jīng)網(wǎng)絡的駕駛行為動態(tài)集成學習算法[J].交通運輸系統(tǒng)工程與信息,2012(2):34-40.
[4]陳雪梅,田賡,苗一松.面向智能駕駛行為的機器學習[J].道路交通與安全,2014(6):60-64.
[5]嚴新平.道路交通駕駛行為研究進展及其展望[J].交通信息與安全,2013(1):45-51.
(2)輔助材料成本。報廢的動力電池需要用酸、堿、有機溶劑、沉淀劑等進行處理,回收的工藝不同以及最后產(chǎn)品的不同,所使用的輔助材料也有所不同。
[6]李揚.駕駛行為安全性多屬性評價方法及應用研究[D].長春:吉林大學,2016.
[7]段冀陽,李志忠.駕駛行為模型的研究進展[J].中國安全科學學報,2012(2):30-36.
[8]李欣海.隨機森林模型在分類與回歸分析中的應用[J].應用昆蟲學報,2013(4):1190-1197.
[9]曹正鳳.隨機森林算法優(yōu)化研究[D].北京:首都經(jīng)濟貿(mào)易大學,2014.
[10]陳慧萍,林莉莉,王建東,等.WEKA數(shù)據(jù)挖掘平臺及其二次開發(fā)[J].計算機工程與應用,2008(19):76-79.
[12]劉哲.基于WEKA的交通流數(shù)據(jù)處理平臺搭建及預測實現(xiàn)[D].北京:北京交通大學,2016.