時中朝 郝偉娜 董紅召
浙江工業大學智能交通系統聯合研究所,杭州,310006
公共 自 行 車 系 統 (public bicycle system,PBS)發展迅速,然而因工作環境較差,自行車損壞率較高,帶來了交通安全風險并影響了PBS的服務質量。目前發現故障車的主要方法是根據用戶主動報修和工作人員巡檢,但該方法成本高、效率低,制約了PBS的發展。網絡化大數據及貝葉斯分類器技術給PBS故障車診斷提供了新途徑。
貝葉斯分類器用于診斷的相關研究在國內外方興未艾,文獻[1-3]將樸素貝葉斯分類器或改進后的貝葉斯分類器應用到疾病的判別與診斷中,精度較高。文獻[4-6]提出貝葉斯網絡分類器(naive Bayesian classifier,NBC)與其他方法相結合,以此來診斷機器故障,判斷精度較好。ZHOU等[7]分別采用NBC處理不完備數據和確定屬性加權等,顯示了良好的精度和效率。祝志博等[8]提出了基于PCA-SVDD的故障檢測和自學習辨識的方法。劉江等[9]提出了自行車組合導航系統容錯設計結構及基于主成分分析的故障檢測與隔離算法。
針對公共自行車結構簡單、傳感器少的情況,本文提出將貝葉斯分類算法[10-11]應用于公共自行車故障檢修。通過分析杭州市PBS的海量歷史營運數據,得到用戶的租用記錄、維修記錄、用戶評價和報修信息,構建了NBC,并利用NBC對自行車進行分類,以實現自行車故障自動診斷報修。
樸素貝葉斯的顯著特點是實時將所有的狀態分類特征均視為定性數據,由此將連續的狀態分類特征離散化是該方法實施的關鍵[12]。在實際運用中,自行車產生故障的因素[13-14]有很多,且沒有統一的標準,因此,對每一種狀態分類特征進行分段處理,從而實現離散化。
PBS的使用情況較為復雜,不同類型的服務點會產生不同的租還需求特性,不同時間也會產生不同的租還需求特性。選取3類因素共15個狀態分類特征作為自行車故障檢測的特征向量,見表1。表1中,服役時長為從自行車投入使用或上次保養之后到目前所使用的時間,以保養時間為服役時長計算起點是為了確保沒有遺留問題會對預測結果造成影響。租用次數為從自行車投入使用或上次保養之后到目前的租用次數。接力租用次數表示用戶還車3min之內又租用了另外一輛自行車的次數。異常租用次數表示用戶租用時長小于2min的租用次數。時間上利用率為某自行車租用總時間與服役時長的比值。用戶報修指數和用戶評價指數為根據APP上報的信息進行分類,默認狀態為0,指數越大,表明用戶對自行車的滿意度越低,間接增加了自行車故障的概率。服務點飽和度為某服務點在樁自行車數量與鎖樁數的比值。服務點類型為根據服務點的布局位置分為醫院、小區、寫字樓、地鐵和火車站等類別。將一天按小時分為24個時段,時間序列表示某自行車所處的是哪個時段。駐留時間表示某自行車自上次租用之后到下一次被租用的時長。常在區域表明自行車常在的服務點區域,用于區分不同地域使用情況的差異。自行車批次和自行車型號是自行車出廠信息,批次以年月日識別,型號則有自行車廠商設置。如果信息缺失,默認設置為0。PBS預測結果分為兩類,分別為正常車和故障車,即故障類型C{C1,C2}。

表1 PBS單個服務點狀態分類特征類型Tab.1 PBS single service station attribute variable type
樸素貝葉斯分類器(NBC)是一種基于Bayesian理論的分類算法,其鮮明的特點是各個特征不具有相關性,是相互獨立的。建立在自行車基礎上的NBC網絡拓撲結構如圖1所示。

圖1 NBC在PBS中的建模結構Fig.1 Modeling structure of NBC in PBS
X是自行車狀態觀測值的集合即特征向量,Xi為特征向量的第i(i=1,2,…,15)狀態分類特征,X=(X1,X2,…,X15)。每一個狀態分類特征Xi有若干個值,xi表示狀態分類特征Xi對應的具體值,即特征值。對于一個具體特征向量,由貝葉斯定理,其對應的分類值Ct的概率

求每個分類值后驗概率時,特征值x1,x2,…,x15均不變,即分母保持不變,因此可以將其表示為常數,則式(1)可簡化成

根據各特征之間相互獨立的特點,式(2)可以簡化成

這樣,只需要計算每一個分類值Ct下單個特征的條件概率P(xi|Ct)即可。即

式中,N 為所有訓練樣本的頻數和;NCt為故障類型Ct對應樣本頻數;NC(xti)表示故障類型為Ct且狀態分類特征Xi的值為xi的樣本頻數。
如果某些狀態分類特征的數據缺失,該類的條件概率就等于零,則整個類的后驗概率就等于零,將無法通過式(5)得到準確的結果。因此,假設每個特征值都已經出現了一次,對式(5)使用拉普拉斯平滑方法,在分子上加1,為了使概率和為1,在分母上加上M(M=16),可得

將式(4)和式(6)代入式(3),可得

根據貝葉斯最大后驗概率原則,對于任意給定的特征向量P(x1,x2,…,x15),貝葉斯分類器的作用就是選擇概率最大的故障類型Ct作為故障類型的評定結果。利用式(7)進行計算,選取最大值對應的故障類型作為潛在的故障診斷的結果。
貝葉斯分類器的預測能力主要依賴樣本的特征向量。理想情況下,利用貝葉斯分類器把觀測特征向量X分給類C,特征向量X的每個狀態分類特征都有很大的貢獻。為了量化每個狀態分類特征對分類的貢獻,定義狀態分類特征對類的貢獻率C,C表示只考慮Xi的情況下C1和C2后驗概率差值的平方,Xi對分類的貢獻表示為

其中,xj是狀態分類特征Xi中的第j個具體值(0<j<t)。由概率可知0<Q(Xi)<1,Q(Xi)越大,Xi對分類的貢獻越多。當Q(Xi)接近于0時,表明狀態分類特征Xi對分類貢獻很少或者沒有貢獻,應該去除。
自行車故障判定問題常用的評價指標是精確率和召回率。分類器對數據集的預測結果或者正確或者不正確,共有4種情況,混淆矩陣見表2。

表2 預測評價指標Tab.2 Prediction and evaluation index
精確率表示預測為故障車的樣本中有多少是真正的故障車。預測為故障車有兩種可能:一種是把故障車預測為故障車,其數量為TP;另一種是把正常車預測為故障車,其數量為FP。即精確率

召回率表示樣本中的故障車有多少被預測正確了。它也有兩種可能:一種是把原來的故障車預測成故障車,其數量為TP;另一種就是把原來的故障車預測為正常車,其數量為FN。即召回率

不同的分類問題,對精確率和召回率的要求也不同。由于自行車在使用過程中并不會在大范圍內發生故障,即故障車占比較小,診斷模型需要盡可能檢測出所有的故障,同時把正常車誤判為故障車的損失遠小于檢測不出故障的損失,因此,自行車的故障檢測需要很高的召回率,預測結果也是以召回率為標準的。
根據杭州市城西服務區2016年PBS的交易記錄和報修維修記錄進行訓練和測試。運用NBC實現公共自行車故障診斷,主要包括以下3個階段的工作:①準備工作階段。通過TCP協議獲取服務點及用戶APP上傳的用戶租用數據,如果租用時長小于預設值,則對數據進行預處理,整理出自行車的特征向量。②分類器訓練階段。計算每個類別在訓練樣本中出現的頻率及狀態分類特征劃分對類別的條件概率估計。③完成公共自行車故障檢測。通過貝葉斯分類器對待診斷的自行車特征向量進行分類,并分析結果,判斷自行車是否存在故障。自行車故障自動檢測流程如圖2所示。

圖2 PBS故障自動檢測流程Fig.2 PBS automatic fault detection process
將不同的訓練樣本和測試樣本所得數據進行對比,得到不同樣本預測的召回率,如圖3所示。

圖3 不同樣本預測的召回率Fig.3 Recall rates predicted by different samples
由圖3可知,選擇訓練樣本從1個月到3個月時,測試樣本的召回率逐漸提高,這說明訓練樣本在逐漸增多時模型的樣本所包含的情況也趨于完整。當選擇訓練樣本為3個月(90 823條)時,測試樣本的召回率達到最高值85.8%。選擇訓練樣本從3個月開始,測試樣本的召回率呈現下降趨勢,分析可知樣本中包含過多與當前日期相隔太遠的信息,由于信息已經過時,無法準確地預測當前狀態,反而對分類結果是一種負擔,故應根據實際情況(服務區域大小、自行車數量和當地的生活習慣)選擇合適的訓練樣本。測試樣本召回率達到最高值時樣本詳情見表3。

表3 樣本詳情Tab.3 Sample details
由表3可以看出,當選擇訓練樣本為3個月時,訓練樣本總數為90 823條數據,其中,故障車為29 154條,正常車為61 669條,測試樣本總數為30 231,其中,故障車為9 717條,正常車為20 514條。應用NBC算法進行故障診斷,召回率為85.5%,精度較優。同時,獲取各狀態分類特征對類的貢獻率,見表4。

表4 狀態分類特征對類貢獻率Tab.4 Attribute contribution rate to class
由表4可以看出,異常接力租用次數對類的貢獻率最高,異常租用次數次之,用戶評價指數對類的貢獻率最低,其次是用戶報修指數。根據租還數據分析,用戶還車3min之內又租用了另外一輛自行車的次數是最能反映故障車的指標,而用戶通過APP上報的信息雖然準確率較高,但是很少有用戶會主動報修,因此對類的貢獻率最低。
將貝葉斯理論引入公共自行車故障診斷中,建立了PBS故障診斷模型。通過分析杭州市PBS的海量歷史營運數據,得到用戶的租用記錄、維修記錄、用戶評價和報修信息,選取15個狀態分類特征作為自行車故障檢測的特征向量;根據NBC后驗概率,獲取每個狀態分類特征對類的貢獻率;分析自行車故障判定機理,選擇召回率作為評價指標,實現故障自行車的預測診斷。以杭州市城西服務區2016年相關數據為研究對象,實現了故障自行車與正常自行車的分類,當選擇訓練樣本為3個月(90 823條)時,測試樣本的準確率達到最高值85.8%。該模型能夠在最短的時間內查找故障自行車,提高故障自行車診斷的效率,并且能通過不斷的學習來提升診斷正確率。