張振海,張湘婷
(蘭州交通大學自動化與電氣工程學院,蘭州 730070)
鐵路信號設備在保障列車運行安全、提高鐵路運輸效率等方面有著關鍵性作用。隨著我國鐵路快速發展,列車運行速度的提升,鐵路信號設備的重要性日益凸顯,使電務段對信號設備的維修管理變得更加嚴格。傳統的鐵路信號設備故障診斷主要靠人工經驗,且設備故障原因有明顯的隨機性和模糊性,因此,對人員專業水平要求高[1]。與此同時,鐵路信號領域的歷史故障維修成功案例大多以文本形式儲存,使得許多知識和經驗難以被充分利用。針對這一現狀,如何合理的運用這些文本故障信息輔助故障診斷,是一個亟待解決的問題。
故障診斷是利用現代檢測系統確定是否有故障發生,并確定故障發生的位置和類型等,故障診斷方式大致分為基于定性分析的故障診斷方法,基于信號處理的故障診斷方法,基于人工智能的故障診斷方法[2]。王蘭勇[3]根據鐵路信號設備發生故障現象、原因和處理方案設計專家系統;LEE等[4]運用聲學分析法對道岔系統進行故障探測分析;張娟[5]采用神經網絡BP算法解決鐵路信號設備多故障處理順序問題。隨著人工智能技術的成熟,通過人工智能方法將故障文本數據作為數據源的故障診斷方式,是當前研究的熱點之一。上官偉等[2]針對車載設備的故障日志,引入改進主題模型(Labeled-LDA),通過支持向量機算法進行故障診斷;盛春東[6]根據案例推理建立鐵路信號設備維修決策模型;ZHAO等[7]結合PLSA模型和貝葉斯網絡的方法對高速鐵路車載設備進行故障診斷。以上這些學者并未深入挖掘出故障信息內的隱藏規律,同時缺少考慮鐵路領域先驗知識的影響。關聯規則是數據挖掘的重要領域,通過算法在海量數據中挖掘出潛在未知的規律,建立兩種或兩種以上事務數據之間的聯系。朱興動等[8]將關聯規則運用在飛機維修記錄上,查找出飛機故障與其他因素的聯系;張宏[9]提出基于Apriori算法的汽車運行數據采集設備故障診斷方法。
為此采用基于關聯規則的故障診斷方法,首先采用TF-IDF算法[10-11],對以往的鐵路信號設備故障案例進行故障特征提取。由于故障特征詞可能出現的文本不同,相互之間隱藏某些關聯規律。需建立基于關聯規則的故障診斷模型,進而用改進FP-Growth算法[12-13]進行數據挖掘,計算項的權重使之表示支持度,依據頻繁1-項集劃分數據庫進行挖掘,在減少運行時間的同時可挖掘出更具有實際意義的關聯規則,從而提供維修輔助決策,簡化故障處理流程,保障列車運行安全。
鐵路信號設備故障案例庫按照信號設備分成不同子庫,為道岔故障、軌道電路故障、信號機故障、電源屏故障、控制設備故障、移頻發送設備故障和移頻接收設備故障等[6]。為更好地描述故障設備信息潛在的關聯規則,以道岔故障為例,部分故障維修記錄如表1所示。

表1 故障維修記錄
由表1可知,鐵路信號設備故障維修案例總結主要是以文本形式記錄,存在故障數據不規范性,如“2013年3月21日18時45分,29/30號道岔瞬間斷表示”,其中,與道岔故障有關的信息只有“道岔瞬間斷表示”,無關信息的冗余會造成有實際意義的規律信息無法挖掘出來,故將鐵路信號設備故障診斷主要分為兩步:故障特征提取和故障診斷。鐵路信號設備故障診斷首先采用TF-IDF算法處理所采集的故障數據,提取關鍵故障特征詞,使其具有區分文本的能力。再用改進的FP-Growth算法,挖掘鐵路信號設備故障特征數據庫,得到關聯規則,結合專家相關經驗對其故障診斷,整體流程如圖1所示。

圖1 故障診斷整體流程
鐵路信號設備維修成功案例是以故障文本數據為基礎,且故障文本數據是非結構化數據,需轉換成計算機可識別和處理的結構化數據,而且有效的文本特征提取可降低數據冗余度和維度,在故障診斷中占有重要的位置。故障特征項須具有以下特點:①可以真實反映文本內容;②具有良好的區分其他文本的能力;③特征項數量不能過多,否則會導致算法復雜度太高;④特征值之間需要有區分度[14]。主要步驟如下。
(1)使用NLPIR-ICTCLAS系統將收集的歷史故障文本信息進行分詞,并且刪除無關詞,轉化成以詞語組成的文本數據。
(2)將文本數據用VSM模型表示,采用TF-IDF算法計算每個詞語在文本的權重,刪除權重小的詞語。
(3)最終建立故障診斷模型。
NLPIR-ICTCLAS是由中科院張華平團隊開發的一款漢語分詞系統,結合鐵路信號專業詞庫和停用詞,對故障文本數據進行預處理,去除如“故障發生地址”和“時間”等無關詞語,保留關鍵詞。
分詞后的結果,依舊是非結構化的數據,需將文本轉化為結構化數據,目前常用的文本表示方法有:布爾模型(Boolean Model)、概率模型(Probabilistic Model)、向量空間模型(Vector Space Model)[15-16]。目前使用最廣泛的是向量空間模型VSM。
向量空間模型VSM旨在把文本內容轉換特征詞-特征權重的向量并保存。把特征項t1,t2,…,tn看作是一個n維坐標系,權值w1,w2…,wn表示其對應的坐標值,文本di映射為該向量坐標空間中的一個特征向量V(di)=(t1,wm1;t2,wm2;…;tn,wmn),文本總體的VSM表示見表2。

表2 文本的向量空間模型
TF-IDF算法是一種經典的基于向量空間模型計算特征項重要程度的方法,通過考慮詞語在文本中出現的頻率和在文本集中的分布,計算詞語權重[10],其中,TF為詞頻,IDF為逆向文檔頻率。核心思想:假設某個詞在某條文本中出現頻率較高(TF較高),但在剩余文本中頻率低(IDF較高),則該詞有很好地類別區分能力。TF-IDF方法計算公式如下
Wt,d=tft,d×idft,d
(1)
式中,Wt,d為特征值t在文本d中的權重;tft,d為詞頻;idft,d為逆文檔頻率。
tft,d詞頻為特征值t在文本d出現的次數與文本d中所有特征值之比,計算公式如下
(2)
式中,nt,d為特征值t在文本d中出現次數;∑knt,d為文本d中所有特征值的個數。
逆文檔頻率idft,d是文本數量與特征值t在文本集中出現的次數比值,計算公式如下

(3)
式中,N為文本數據庫中文本總數;Nt,d為文本含有特征值t的文本數量。如果某詞不在樣本中,會導致分母為0,因此,分母加1是為避免該情況。
將NLPIR系統處理后文件加入TF-IDF算法,計算權重Wt,d。
由于鐵路信號設備種類繁多,遇到的故障多種多樣。通過對鐵路信號故障數據總結,結合鐵路信號專家的經驗知識,建立基于關聯規則故障診斷模型,如圖2所示。故障診斷模型分為3層:故障特征層、故障類型層(一級故障層)和故障原因層(二級故障層)[17]。故障特征層是故障文本進行預處理后得到的故障特征,故障類型層是根據第1節鐵路信號設備分類結構細分得到的設備名稱如“轉轍機相關故障”“整流匣相關故障”,故障原因層是相對于類型層更加具體的故障部位如“繼電器”“補償電容”等。本次研究認為導致故障現象發生的原因是單一的,因此,根據故障傳播原理,對故障診斷模型層進行以下說明。

圖2 故障診斷模型
(1)二級故障是一級故障出現的原因。
(2)一級故障和二級故障均是故障特征出現的原因。
(3)一級故障之間相互獨立,每次只能推導出1個一級故障。
(4)二級故障之間相互獨立,每次只能推導出1個二級故障。
根據故障診斷模型,對各屬性進行編號,表1的處理結果如表3~表5所示,如表1中的維修記錄5,根據故障診斷模型可得出F7(表示時有時無)→T5(整流匣相關故障)→R4(整流匣電阻內部開路),從中可看出,故障特征層、故障原因層與故障類型層3層之中具有因果關系。

表3 故障類型

表4 故障特征

表5 故障原因
關聯分析是發現隱含于大數據中具有實際意義的規律信息,描述為關聯規則或頻繁項集[18]。采用改進FP-Growth算法挖掘出隱含在故障特征的關聯規律,得到故障特征、類型和原因之間關聯關系,作為鐵路信號設備故障診斷的重要依據。
FP-Growth算法優勢是只需遍歷2次事務數據庫,運行效率高。首次遍歷數據庫D,目的是刪掉小于最小支持度的項,建立頻繁項集,第二次遍歷用于建立FP-Tree,具體步驟如下。
(1) 遍歷事務數據庫,計算每項支持度并除去多余項,獲得頻繁1項集L,按照支持度降序排列得到有序頻繁1項集P,然后對事務數據庫D重新調整。
(2) 創建根節點root和頻繁項目頭表,再次遍歷事務數據庫D,根據頻繁1-項集P調整每條事務,掃描每條事務建立分支創建FP-Tree。
(3) 根據FP-Tree找到單項的條件模式基,遞歸挖掘條件FP-Tree,最終依據頻繁項集從中得出關聯規則。
3.2.1 支持度計算
傳統FP-Growth算法中每個項的支持度等于項在事務數據庫中出現的頻率,但忽視每個項在事務數據庫D的重要程度,以至于挖掘出大量無用的關聯規則[19-20],因此,提出基于權重的支持度計算方法。為體現項對事務的重要性,同時保留發生頻次低但一旦發生會產生重大事故的故障特征。人為對每個故障特征進行危險性評估,分為輕度危險、中度危險、重度危險和極重度危險,將評定為重度危險和極重度危險項,自動保留且支持度設為0.3,其余項按照所提出的基于權重的支持度計算,計算方法如下。
設I={I1,I2,…In}為事務數據庫D的項集,n為表示項的個數,設置項Im在事務數據庫中的權重為w(Im),表示項Im在數據庫出現的次數與數據庫中總體事務數量之比,計算公式為
w(Im)=l/k
(4)
式中,l為項Im在數據庫中出現頻率;k為數據庫中事務總數。
事務Ti為事務數據庫中第i條數據,該事務的權重是事務本身含有全部項的權重的平均值,記為wt(Ti),即對第i條事務的所有項的項權重w(Im)求取平均值,其中,m=1,2,…,n。計算公式為
(5)
項Im的支持度是含有該項的全部事務權重和數據庫中全部事務權重之比,即sup(Im),計算公式為
(6)
式中,f為包含項Im的事務個數;wt(Tx)是包含項Im的事務權重;k為事務數據庫中所有事務數量;wt(Ty)為事物數據庫中每條事務的權重。
3.2.2 關聯規則挖掘
傳統FP-Growth算法遍歷數據庫時,需建立FP-Tree實現頻繁項集挖掘,當事務數據庫過于龐大時,建立的FP-Tree占用內存大,導致運行速率低,降低挖掘效率[21-22]。另一個改進地方是根據頻繁1-項集劃分數據庫的思想挖掘數據,構建各項的數據庫子庫并直接構造每項的條件FP-Tree,在減小內存占用,同時提升挖掘效率。具體算法描述如下。
(1)遍歷事物數據庫D,按照3.2.1節的支持度計算得到每項支持度確保項的重要性,去除小于最小支持度的項,降序排序得到頻繁1項集L,設L={T1,T2,…,Tn},調整事務數據庫按照頻繁1-項集排序得到有序的事務數據庫D′。
(2)再次遍歷事務數據庫D′,找到包含項Tm所有的事務,刪除小于項Tm支持度的其他項,得到包含項Tm的數據子庫DT。
(3)采用FP-Growth算法對項Tm的數據子庫進行關聯規則挖掘,具體步驟如下。
①根據包含項Tm的數據子庫DT建立FP-Tree,創建項頭表N。其中,項Tm排在最后,當已有分枝存在,判斷新來節點是否屬于該分枝節點,屬于重合計數加1,否則重新建立分枝,最終得到數據子庫DT的FP-Tree。
②只挖掘項表頭N最后一項的信息,即只挖掘包含項Tm的頻繁項集,找到項Tm的條件模式基,建立條件FP-Tree,遞歸調用樹結構,得到包含項Tm的數據子庫DT頻繁項集UT。
③重復步驟①②,把頻繁1-項集L內所有項的頻繁項集UT全部挖掘出來,取并集得到頻繁項集U,為事務數據庫D的所有頻繁項集。
通過對鐵路信號設備故障特征進行挖掘得到關聯規則,保存到歷史故障文本數據的知識庫KB,從知識庫中提取規則進行故障診斷,步驟如下。
(1)將信號設備故障現象進行故障特征提取,再與知識庫KB中的已有規則進行匹配,如果匹配成功,直接輸出診斷結果。
(2)若只有部分匹配,將其放入知識集KS中,選擇包含此故障特征置信度大的規則,得出最優解。
(3)若KS為空,則詢問用戶是否加入新規則,若不加入,系統失敗進入人工診斷,若加入,即此時用戶添加了新的知識,則根據新的知識庫,重新進行診斷,流程如圖3所示。

圖3 基于關聯規則的故障診斷流程
實驗使用的硬件為Intel(R)酷睿I5-42210U,2.70 GHz處理器,8 GB內存,操作系統是Windows 7旗艦版64位;軟件為eclipse3.4-jee-ganymede開發運行平臺,JDK7.0版本。
本實驗以2013年~2018年的某鐵路局電務段的鐵路信號設備故障案例庫為數據源,包括道岔、信號機、軌道電路等。
圖4(a)表示在數據庫中,隨機選擇1 000~6 000條事務對其挖掘,分別計算每個故障案例子庫中項的支持度,根據現場經驗,設置最小支持度為0.02。由圖4(a)可知,事務數據庫越龐大優化算法的優勢越明顯,因為傳統算法是針對數據庫構造整體FP-Tree,數據越多FP-Tree所占內存越大挖掘效率也越低。

圖4 實驗結果比較
圖4(b)表示隨機從數據庫中選取5 000條數據進行實驗,設置不同最小支持度min_sup,比較兩種算法的運行時間。由圖4(b)可知,在相同規模下的數據庫和不同最小支持度的條件下,改進算法要比傳統算法的運行時間要短,并且最小支持度設置越小改進算法的優勢越明顯。
從鐵路信號設備故障案例庫中,隨機選取其中10 000條數據進行實驗,其中,75%作為訓練集,25%作為測試集,分別計算每個故障案例子庫中項的支持度,設置最小支持度為0.02,置信度為0.6,得到的關聯規則有3578條,其中符合最小置信度和故障診斷模型的關聯規則有2281條。因篇幅有限,僅列出道岔故障相關的10條具有代表意義的關聯規則,如表6所示。

表6 關聯規則
根據對鐵路信號設備故障挖掘關聯規則再結合專家經驗,根據診斷結果選擇維修方案。例如,根據規則9中故障特征詞道岔無表示與道岔扳不到位可推出是轉轍機相關故障,即從故障特征層推到故障類型層,如果推理正確,再根據規則8中轉轍機相關故障推出轉轍機減速器抱死,即從故障類型層推到故障原因層,如果原因正確,推出解決方案更換減速器。如果推理不正確換一條規則重新推理,直到推出最終結果。
為驗證本文算法的有效性與實用性,同時避免重要故障原因的遺漏,將P@N(N=5)作為評價指標[23],將最可能出現的5條原因作為輸出結構,具體公式如下

(7)
式中,i為第i類故障;Ci為第i類故障的個數;I(j)為以第i類的故障數為基礎,輸入測試集的故障現象通過故障診斷算法輸出的5個故障原因是否包括實際的故障原因,如果包括I(j)取1,反之取0,若實際故障原因單一,且推理出的原因包括實際原因,則P@N=1。
選擇本文算法、文獻[6]基于案例推理的故障診斷(CBR算法)、文獻[7]基于PLSA模型和貝葉斯網絡的故障診斷(BNPLSA算法),根據第1節的對鐵路信號設備分類,進行P@N(N=5)的比較,所得結果如圖5所示。

圖5 各類故障的P@N比較
由圖5可知,本文算法的P@N均高于其他兩種算法,且平均診斷準確率86.77%,比其他兩種算法分別提高10.35%和11.44%。基于案例推理的故障診斷采用的VSM模型的余弦相似度和BTM模型的相似度,該方法僅考慮當前故障現象與歷史案例的相似度,并未綜合考慮到故障維修文本數據的潛在規律。基于PLSA模型和貝葉斯網絡的故障診斷,采用PLSA模型進行主題分類,但PLSA模型為無監督學習,缺少考慮鐵路領域的先驗知識,導致取得的故障特征較少。因此,本文算法提取故障特征詞,通過改進FP-Growth算法,挖掘出故障文本數據的潛在規律,最終通過故障診斷流程,能夠更加精確的推出故障原因,輔助現場維修人員快速處理故障設備。
(1)通過分析當前鐵路信號設備維修所存在的問題,利用大量歷史維修文本記錄,提出鐵路信號設備故障診斷流程;采取TF-IDF算法提取歷史維修記錄的故障特征詞,按照故障診斷模型進行分類;最終通過改進的FP-Growth算法,發現具有維修指導意義的關聯規則。
(2)實驗證明,計算每項權重來確定支持度,依據頻繁1-項集對其進行分塊挖掘的改進FP-Growth算法比傳統FP-Growth更具有優勢。該方法可以挖掘出鐵路信號設備中的故障特征、類型和原因之間的關聯關系,為鐵路信號設備維修提供幫助。通過對比實驗分析,本文方法可提高故障診斷的效率,為鐵路安全運行提供保障。
(3)由于文中最小支持度是根據現場經驗人為設定的,會影響頻繁項的數量,當數據庫不斷擴大時,頻繁項數量的增多導致會挖掘出大量冗余的關聯規則。如何根據事務數據庫中的事務數量動態設定最小支持度,是下一步研究的重點。