任小強(qiáng),王官云
(西南交通大學(xué)希望學(xué)院信息工程系,四川 成都 610400)
隨著人民生活水平的提高,汽車數(shù)量越來越多,車輛碰撞問題時有發(fā)生,往往造成財產(chǎn)損失和人員傷亡。如何精準(zhǔn)檢測車輛是否發(fā)生碰撞具有重要研究意義。但是車輛信息非常多,而用戶路況信息和用戶使用偏好不同,很難找到一種準(zhǔn)確識別碰撞的方法。郭烈等人[1]采用圖像檢測和分割算法對車輛碰撞進(jìn)行檢測識別,馬小龍等人[2]通過廣義帕累托分布(Generalized Pareto Distribution,GPD)建立制動減速度分布模型,得到車輛的碰撞概率,高利等人[3]建立環(huán)境復(fù)雜度量化模型,使得碰撞預(yù)警的正確率達(dá)92%,宋鑫[4]利用智慧燈桿物聯(lián)網(wǎng)數(shù)據(jù)采集平臺,解決極端復(fù)雜環(huán)境下的車輛碰撞檢測這一難題。傳統(tǒng)的車輛碰撞識別方法需要大量的人力物力,周期長,成本高。近年來,機(jī)器學(xué)習(xí)的快速發(fā)展促進(jìn)了相關(guān)算法在智能交通領(lǐng)域中應(yīng)用研究,國內(nèi)外學(xué)者提出了集成學(xué)習(xí)模型作為一種低廉高效的車輛碰撞檢測方法,如Random Forest、AdaBoost和XGBoost等。例如,彭一川等人[5]提出一種新的基于權(quán)重的欠采樣提升算法(weight-based under sampling boost, WUSBoost),計(jì)算車輛的平均碰撞風(fēng)險;申海洋等人[6]提出一種基于機(jī)器視覺和深度學(xué)習(xí)的車輛碰撞預(yù)警算法。雖然這些模型在車輛碰撞檢測中取得了不錯的效果,但是相對而言,增加了算法復(fù)雜度,預(yù)測精度也還有較大的改進(jìn)空間。輕量化梯度促進(jìn)機(jī)(Light Gradient Boosting Machine,LightGBM)[7]是一種基于決策樹的集成算法(Gradient Boosting Decision Tree,GBDT),支持并行學(xué)習(xí),可以高效處理大數(shù)據(jù),解決了計(jì)算效率低、實(shí)時性差等問題,廣泛應(yīng)用在各個領(lǐng)域[8-15],文獻(xiàn)研究表明LightGBM相較傳統(tǒng)算法具有較高的精度,同時還兼顧提升了模型的訓(xùn)練效率。但是,LightGBM算法的分類模型也存在一些挑戰(zhàn),如LightGBM算法模型中的關(guān)鍵參數(shù)需要調(diào)整以獲得理想的準(zhǔn)確率,傳統(tǒng)優(yōu)化算法容易達(dá)到局部最優(yōu)解,甚至導(dǎo)致早熟收斂。本文借鑒上述文獻(xiàn)中的觀點(diǎn),首先利用公開數(shù)據(jù)集構(gòu)建碰撞特征,其次提出一種經(jīng)貝葉斯優(yōu)化的改進(jìn)LightGBM算法,最后使用該算法解決車輛碰撞檢測問題。
在數(shù)據(jù)挖掘領(lǐng)域,特征往往起著很重要的作用,不同特征集決定了機(jī)器學(xué)習(xí)預(yù)測模型的質(zhì)量,好的特征集可以挖掘更多的關(guān)聯(lián)信息,從而得到更加精準(zhǔn)的機(jī)器學(xué)習(xí)預(yù)測模型。
車輛碰撞是一個連續(xù)瞬間過程,瞬間速度變化很快,其它時刻速度變化較小,因此本文通過移位(shift)、運(yùn)算(diff)、滑動窗口(rolling)運(yùn)算和原始特征構(gòu)建車輛碰撞的統(tǒng)計(jì)特征,如碰撞時間、主負(fù)繼電器狀態(tài)和速度特征,并以速度特征構(gòu)造車輛瞬時加速度,局部加速度,統(tǒng)計(jì)加速度、統(tǒng)計(jì)速度等特征描述碰撞過程。三種運(yùn)算的定義如下,通過這三種運(yùn)算,利用初始特征,構(gòu)建的特征如表1所示。
表1 特征名稱及其構(gòu)建方法
shift(x):數(shù)據(jù)平移,x表示移動的幅度,可正可負(fù),默認(rèn)值是1,表示數(shù)據(jù)向前移動一次,移動之后索引位置沒有值的,值為NaN。
diff(x):一階差分,是指數(shù)據(jù)與平移后數(shù)據(jù)進(jìn)行比較得出的差異數(shù)據(jù),根據(jù)計(jì)算差值的方向不同分為向前差分和向后差分。
rolling(x):x為樣本點(diǎn)數(shù)目,窗口從上到下依次滑動時,會將每個窗口里面的元素按照相應(yīng)運(yùn)算進(jìn)行計(jì)算。
本文選擇Pearson相關(guān)系數(shù)從原始連續(xù)型特征集中提取特征子集,去除冗余特征和無關(guān)特征,相關(guān)系數(shù)計(jì)算公式如式(1)所示,X和Y為一對連續(xù)變量,σX和σY為X和Y的標(biāo)準(zhǔn)差;cov(X,Y)為X與Y的協(xié)方差。
分析發(fā)現(xiàn)整車當(dāng)前總電流、整車當(dāng)前總電壓與車速、構(gòu)造特征a_min5的相關(guān)性很高,為了避免訓(xùn)練模型過擬合,相關(guān)性系數(shù)高的特征中僅保留一個特征,數(shù)據(jù)特征選擇后有效特征由最初數(shù)據(jù)集的20個特征變?yōu)?4 個,其中包括表1中構(gòu)建的特征。為了尋找模型的最優(yōu)輸入特征集,本文利用森林算法(Random Forest,RF)對篩選后的特征進(jìn)行重要性排序,其中a_min5,a_mean5,v_diff1,a_max3,if_off和if_on的重要性程度較高,約占全部特征的95%左右,使用上述6個特征,通過LightGBM算法進(jìn)行模型訓(xùn)練,車輛碰撞識別結(jié)果能夠達(dá)到98 %左右,因此本文選用這6個特征作為識別車輛碰撞模型的輸入,后續(xù)超參數(shù)的優(yōu)化都是基于篩選后的特征。
GBDT是一種流行的、有競爭力的、高度穩(wěn)健且可解釋的機(jī)器學(xué)習(xí)算法。它被廣泛用于許多機(jī)器學(xué)習(xí)任務(wù),并且優(yōu)于其他傳統(tǒng)模型。但是,在處理海量樣本數(shù)據(jù)時,GBDT運(yùn)算會消耗大量的時間,效率較低。為了克服這些限制,微軟提出LightGBM算法,它是一種新穎的GBDT算法,基于Histogram對特征的分裂進(jìn)行優(yōu)化,如圖1所示。LightGBM被認(rèn)為是一種高效的模型,可以處理大規(guī)模數(shù)據(jù)并以更快的訓(xùn)練速度和最小的內(nèi)存使用量獲得更好的準(zhǔn)確性,它還支持并行和分布式學(xué)習(xí)。
圖1 直方圖優(yōu)化
LightGBM算法包含兩種新技術(shù),分別是基于梯度的單側(cè)采樣和專有特征捆綁。給定一個訓(xùn)練數(shù)據(jù)集,其中x代表樣本數(shù)據(jù),y代表類別標(biāo)簽,f(x)代表估計(jì)函數(shù),損失函數(shù)定義如式(2)所示:
決策樹可以表示為wq(x),q∈{1,2,┅,J},其中J表示葉子的數(shù)量,q代表決策樹的決策規(guī)則,w是一個向量,表示葉子節(jié)點(diǎn)的樣本權(quán)重。因此,LightGBM將在第t次迭代時以加法形式進(jìn)行訓(xùn)練,如式(4)所示:
在LightGBM中,目標(biāo)函數(shù)用牛頓法快速逼近,為簡單起見,去掉式(4)中的常數(shù)項(xiàng)后,公式簡化為式(5):
其中g(shù)i和hi表示損失函數(shù)的一階和二階梯度統(tǒng)計(jì)量。Ij表示葉子的樣本集,并且式(5)可以轉(zhuǎn)換為式(6):
其中IL和IR分別是左右分支的樣本集,與傳統(tǒng)基于GBDT的技術(shù)不同,LightGBM利用帶深度限制的Leaf-wise葉子生長策略替代傳統(tǒng)的層生長決策樹策略,最大程度避免了過擬合,Leaf-wise和Levelwise的對比如圖2所示。
圖2 Level-wise和Leaf-wise葉子生長策略的對比
對碰撞樣本使用特征向量表示并標(biāo)記,得到帶標(biāo)簽的碰撞樣本,在此基礎(chǔ)上進(jìn)行二分類的有監(jiān)督學(xué)習(xí),這樣就將碰撞檢測特殊問題,轉(zhuǎn)換為機(jī)器學(xué)習(xí)中的通用問題。該模型如圖3所示,通過數(shù)據(jù)清洗及特征提取、特征選擇、模型訓(xùn)練和模型碰撞檢測幾個步驟來實(shí)現(xiàn)。首先,進(jìn)行數(shù)據(jù)清洗及特征提取,其次是特征選擇,選擇了合理特征參數(shù),提高模型訓(xùn)練精度,然后使用貝葉斯優(yōu)化LightGBM超參數(shù),通過輸入最優(yōu)的LightGBM超參數(shù)得到最終模型。最后應(yīng)用測試數(shù)據(jù)集進(jìn)行性能評估指標(biāo)。
圖3 碰撞識別模型
從本文構(gòu)造的特征來看,發(fā)生強(qiáng)烈碰撞的分類標(biāo)簽是容易區(qū)分的,考慮到模型的泛化能力,分隔閾值設(shè)得很大,取非碰撞車輛瞬時加速度v_diff1、局部加速度v_diff2和瞬時速度差v_diff3中最小值的2倍為分割閾值,目的是為了避免過擬合。此外,為了增強(qiáng)樹模型的預(yù)測能力和增加特征之間的非線性,我們對特征進(jìn)行交叉修正,如式(10)-(13)所示,使得主要特征與分類特征的相關(guān)性更為明顯,具有實(shí)際意義。
不同超參數(shù)組合會導(dǎo)致模型在預(yù)測性能上存在很大的差別,因此必須對模型進(jìn)行調(diào)參,搜索出能使模型性能更佳的超參數(shù),常用方法包括人工搜索、網(wǎng)格搜索和隨機(jī)搜索等[16-18],網(wǎng)格搜索支持并行計(jì)算,很消耗內(nèi)存,隨機(jī)搜索則不能確保得到全局最優(yōu)解。貝葉斯優(yōu)化(Bayesian Optimization,BO)是一種自適應(yīng)的超參數(shù)搜索方法[19],利用目標(biāo)函數(shù)的過去評估結(jié)果建立概率模型,尋找最小化目標(biāo)函數(shù)的參數(shù),在效率和精度上都獲得更好的效果。本文使用TPE(Tree Parzen Estimator)代理模型和期望改善(Expected Inprovement,EI)采集函數(shù)構(gòu)造貝葉斯算法優(yōu)化LightGBM參數(shù)[20],TPE算法的概率分布定義如式(14)所示,其中e(x)為觀測值{x(i)}形成的密度,g(x)為除{x(i)}外剩余觀測值形成的密度。
從式(15)可看出,為了能獲得最大期望提升,超參數(shù)x在e(x)的概率要盡可能大,而在g(x)的概率要盡可能小。通過g(x)/e(x)評估每一個超參數(shù)x,在每次迭代中,算法將返回具有最大EI的超參數(shù)值。
數(shù)據(jù)集來源于公共數(shù)據(jù)集Kaggle,主要包括車號、采集時間、加速踏板位置、電池包主負(fù)繼電器狀態(tài)、電池包主正繼電器狀態(tài)、制動踏板狀態(tài)、整車當(dāng)前總電流、整車當(dāng)前總電壓、車速等20個原始特征[21]。其中訓(xùn)練數(shù)據(jù)集有3 928 449條數(shù)據(jù),其中第20位Label列為標(biāo)簽屬性,代表是否碰撞,1表示碰撞,0代表無碰撞,測試數(shù)據(jù)集有4 285 948條數(shù)據(jù)。數(shù)據(jù)清洗對提高模型性能非常重要,包括缺失值處理、異常值處理、刪除重復(fù)值、類型轉(zhuǎn)化和特征編碼等。對于連續(xù)性特征變量,缺失值和異常值使用均值填充;對于分類變量,直接刪除異常數(shù)據(jù)。數(shù)據(jù)集中的數(shù)據(jù)通常以字符串類型存儲,特征編碼將字符串類型數(shù)據(jù)轉(zhuǎn)化為數(shù)值類型。對于只有兩種取值的特征使用標(biāo)簽編碼(LabelEncoder),例如電池包主負(fù)繼電器狀態(tài)、制動踏板狀態(tài)等,用0、1表示兩種狀態(tài),整車鑰匙狀態(tài)含有三種取值,可以使用獨(dú)熱編碼(One-Hot Encoding),它會增加數(shù)據(jù)特征的數(shù)量,經(jīng)過數(shù)據(jù)清洗和特征提取后,樣本數(shù)為19 950條。為了平衡樣本數(shù)據(jù),對樣本數(shù)據(jù)進(jìn)行欠采樣和過采樣,數(shù)據(jù)欠采樣滿足以下三個條件:(1)汽車碰撞后電池包主負(fù)繼電器處于斷開狀態(tài),即電池包主負(fù)繼電器狀態(tài)恒等于0;(2)訓(xùn)練集的所有標(biāo)簽均分布在繼電器斷開瞬間附近,if_off處于-3~-5的區(qū)間,考慮到停車時被追尾,增加車速大于零這個條件;(3)刪除啟動階段低于正常車速的數(shù)據(jù),這里要求車速在20km/h以上。通過這三個刪選條件,測試樣本數(shù)由3 928 449條變?yōu)?9 23 559條。此外,車輛碰撞是一個連續(xù)過程,將碰撞時間前后5秒內(nèi)樣本標(biāo)簽均標(biāo)記為碰撞,對訓(xùn)練集標(biāo)簽進(jìn)行過采樣,過采樣后訓(xùn)練集碰撞標(biāo)簽由49個變?yōu)?54個。本實(shí)驗(yàn)仿真所用電腦為Windows7系統(tǒng),配備4GB內(nèi)存,處理器為英特爾第七代酷睿i5-7200U@2.50GHz。
為了探究特征個數(shù)對模型性能的影響,將特征工程得到的特征,使用本文模型進(jìn)行訓(xùn)練,并在測試集上采用F1-score、查準(zhǔn)率(precision)、查全率(recall)進(jìn)行模型評估,結(jié)果如圖4所示,當(dāng)特征個數(shù)小于8個時,模型評價指標(biāo)總體呈上升趨勢,此時模型欠擬合;當(dāng)特征個數(shù)大于8個后,因?yàn)槟P瓦^擬合導(dǎo)致模價指標(biāo)呈下降趨勢;當(dāng)特征個數(shù)為8個時,模型性能最優(yōu)。
圖4 特征數(shù)與評價指標(biāo)的關(guān)系
為了建立一個有效的預(yù)測模型,將文獻(xiàn)[22]中的支持向量機(jī)模型(Support Vector Machine,SVM)、文獻(xiàn)[23]中的隨機(jī)森林模型(Random Forest,RF)、文獻(xiàn)[24]中的梯度提升決策樹模型(eXtreme Gradient Boosting,XGBoost)和本文LightGBM模型進(jìn)行對比研究。為了結(jié)果更加可靠,分別進(jìn)行3組試驗(yàn),每組重復(fù)測試10次,取其平均值作為模型最終評價指標(biāo)。各模型預(yù)測結(jié)果如圖5所示,LightGBM模型在實(shí)驗(yàn)中的評價指標(biāo)優(yōu)于其它模型,其平均準(zhǔn)確值約為0.94,平均查準(zhǔn)率約為0.97,F(xiàn)1-score值約為0.93。
圖5 不同分類器的預(yù)測結(jié)果
LightGBM參數(shù)較多,基于交叉驗(yàn)證的手動調(diào)參操作復(fù)雜且易影響預(yù)測效果,本文采用貝葉斯優(yōu)化方法調(diào)整最佳參數(shù)。為了驗(yàn)證貝葉斯優(yōu)化算法的優(yōu)越性,將貝葉斯優(yōu)化與網(wǎng)格搜索、隨機(jī)搜索以及LightGBM的默認(rèn)參數(shù)進(jìn)行對比,不同的優(yōu)化方法選擇相同范圍的參數(shù)空間,并使用運(yùn)行時間與均方誤差MSE作為評估指標(biāo)。實(shí)驗(yàn)結(jié)果如圖6所示,表中網(wǎng)格搜索的運(yùn)行時間為其搜索完待選參數(shù)空間所需的時間,隨機(jī)搜索的運(yùn)行時間為其迭代5 000次的時間,貝葉斯優(yōu)化的運(yùn)行時間為其精度不再變化后的時間,即完成收斂所需的時間。超參數(shù)列表的順序?yàn)閘earning_rate、feature_fraction、bagging_fraction、bagging_freq、num_leaves和min_data_in_leaf。
圖6 LightGBM超參數(shù)優(yōu)化方式對比
由圖6中可以看出,默認(rèn)參數(shù)的碰撞檢測精度低,運(yùn)行時間較長;網(wǎng)格搜索雖然有精度上的提升,但是會花費(fèi)大量的時間成本;隨機(jī)搜索的運(yùn)行時間相比網(wǎng)格搜索大大減少了,而且在精度上也比網(wǎng)格搜索略好一些;貝葉斯優(yōu)化算法相比網(wǎng)格搜索與隨機(jī)搜索,在精度上有顯著的提升,而且運(yùn)行時間遠(yuǎn)遠(yuǎn)小于網(wǎng)格搜索與隨機(jī)搜索,所以使用貝葉斯優(yōu)化算法尋找超參數(shù)是有效的。貝葉斯優(yōu)化LightGBM算法在進(jìn)行模型預(yù)測時,隨著不斷迭代,模型的均方誤差MSE趨于平穩(wěn),當(dāng)?shù)螖?shù)為200次時,均方誤差MSE達(dá)到了最小值,此時對應(yīng)的超參數(shù) learning_rate=0.005,num_leaves=80,max_depth=7,min_data_in_leaf=210,bagging_fraction=0.9,feature_fraction=0.7。貝葉斯優(yōu)化后的LightGBM模型評價指標(biāo)提升比較明顯,可以滿足車輛碰撞識別的要求,對交通管理部門和汽車生產(chǎn)商具有重要的參考價值。
數(shù)據(jù)集的正負(fù)樣本不平衡會導(dǎo)致模型預(yù)測出現(xiàn)偏差。這里使用數(shù)據(jù)樣本欠采樣和碰撞標(biāo)簽過采樣技術(shù)平衡樣本,平衡數(shù)據(jù)集和不平衡數(shù)據(jù)集分別輸入LightGBM進(jìn)行分類,實(shí)驗(yàn)結(jié)果如圖7所示,平衡數(shù)據(jù)集后Precision指標(biāo)從97.01%提升到98.99%,Recall指標(biāo)從88.67%提升到98.86%,F(xiàn)1-score從88.64%提升到97.98%,這些結(jié)果表明平衡數(shù)據(jù)集樣本可以提升模型的預(yù)測性能。
圖7 平衡數(shù)據(jù)集優(yōu)化方式對比
針對車聯(lián)網(wǎng)大數(shù)據(jù)碰撞識別問題,本文提出一種基于LightGBM算法的碰撞檢測模型。通過數(shù)據(jù)清洗與特征工程刪選特征,欠采樣、重采樣提高碰撞識別預(yù)測的準(zhǔn)確性,有效利用了各個特征與碰撞之間的相關(guān)性,同時使用LightGBM模型進(jìn)行車輛碰撞進(jìn)行識別,運(yùn)行總時間為300~450 s左右。
深圳信息職業(yè)技術(shù)學(xué)院學(xué)報2023年5期