(海軍工程大學(xué)動(dòng)力工程學(xué)院 武漢 430033)
隨著海外貿(mào)易的拓展,海上航運(yùn)扮演著關(guān)鍵角色。船舶海上航行過程中,柴油機(jī)的故障會(huì)影響船只的機(jī)動(dòng)性,造成路途的延誤,因此對(duì)柴油機(jī)的性能狀態(tài)實(shí)現(xiàn)實(shí)時(shí)監(jiān)測(cè)及故障診斷具有重大意義[1]。目前的監(jiān)控系統(tǒng)只能對(duì)柴油機(jī)的運(yùn)行異常進(jìn)行報(bào)警和保護(hù),無法為操作人員提供更加準(zhǔn)確的故障診斷信息。伴隨著大數(shù)據(jù)和人工智能的快速發(fā)展,一種新的柴油機(jī)故障診斷方法值得我們?nèi)ド钊胙芯浚蔷褪腔诓裼蜋C(jī)監(jiān)測(cè)大數(shù)據(jù)的故障診斷方法。
基于柴油機(jī)監(jiān)測(cè)大數(shù)據(jù)的診斷方法的基礎(chǔ)是傳感器采集到的海量運(yùn)行數(shù)據(jù)。通過數(shù)據(jù)挖掘技術(shù),對(duì)現(xiàn)有的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,挖掘數(shù)據(jù)背后的潛在聯(lián)系,對(duì)未來的運(yùn)行狀態(tài)進(jìn)行及時(shí)、準(zhǔn)確的分類和預(yù)測(cè)。分類預(yù)測(cè)是數(shù)據(jù)挖掘的主要方法之一,國內(nèi)外對(duì)此開展了廣泛的研究,得出了很多優(yōu)秀的算法,比如神經(jīng)網(wǎng)絡(luò)、K-Means、樸素貝葉斯、決策樹、支持向量機(jī)等[2]。近幾年,分類器在故障診斷領(lǐng)域的研究逐步推廣開來,但是單一的分類器存在診斷精度不高、容易出現(xiàn)過擬合、泛化性差等缺點(diǎn),針對(duì)此缺陷,本文擬采用隨機(jī)森林算法(Random Forest)對(duì)柴油機(jī)故障進(jìn)行分類預(yù)測(cè)當(dāng)前,針對(duì)隨機(jī)森林算法在故障診斷和醫(yī)學(xué)領(lǐng)域的研究已經(jīng)取得了一定的進(jìn)展。張鈺、陳珺[3]等研究了基于隨機(jī)森林算法的軸承故障診斷方法,并通過實(shí)驗(yàn)證明隨機(jī)森林算法有很高的診斷精度。錢力揚(yáng)將隨機(jī)森林和XGBoost算法結(jié)合對(duì)大型風(fēng)力發(fā)電機(jī)進(jìn)行了故障診斷的研究,取得了良好的預(yù)測(cè)效果[4]。姚登舉研究了隨機(jī)森林算法在醫(yī)學(xué)診斷上的應(yīng)用,并對(duì)算法進(jìn)行了優(yōu)化[5]。
分類決策樹是一種以樹結(jié)構(gòu)形式表達(dá)的預(yù)測(cè)分析模型,它的一個(gè)分支就是一個(gè)決策過程,每個(gè)決策的節(jié)點(diǎn)涉及到數(shù)據(jù)樣本的一種特征[3],然后從根節(jié)點(diǎn)開始遍歷,一層一層對(duì)數(shù)據(jù)集進(jìn)行分類,直到每個(gè)數(shù)據(jù)子集都有唯一的目標(biāo)值。建立好決策樹后,將測(cè)試樣本輸入,經(jīng)過決策樹的分類,最后得到的葉節(jié)點(diǎn)就是測(cè)試子集的類別[7]。決策樹的優(yōu)點(diǎn)是計(jì)算量小、準(zhǔn)確性高、不需要構(gòu)建復(fù)雜的模型、適合處理高維數(shù)據(jù)。缺點(diǎn)就是容易過擬合,容易偏向數(shù)據(jù)量較多的種類、忽略了各特征之間的相關(guān)性。
隨機(jī)森林算法是Leo Breiman于2001年提出的一種新型分類和預(yù)測(cè)模型,是基于決策樹的分類器集成算法,采用了基于Bagging方法的樣本抽樣技術(shù),Bagging又稱為bootstrap aggregating(自主聚集),是一種有放回地重抽樣技術(shù)[8]。通過bootstrap aggregating方法隨機(jī)抽取樣本和特征特征來組成多個(gè)不同的決策樹,建立一個(gè)森林,每棵樹有一個(gè)分類結(jié)果,最后由所有的決策樹投票決定數(shù)據(jù)集屬于哪個(gè)類別[9]。
基于隨機(jī)森林的故障診斷過程,整個(gè)步驟如圖1所示。
由于數(shù)據(jù)量較小,本文之采用單機(jī)偽分布式布局,在單機(jī)環(huán)境下模擬分布式運(yùn)算。主機(jī)上安裝VMware-workstation-full-12.0版本的虛擬機(jī),并安裝Centos-7的64位桌面版Linux操作系統(tǒng),軟件環(huán)境配置如表1所示。
圖1 隨機(jī)森林的生成和決策過程
表1 軟件環(huán)境配置
Hadoop中的HDFS分布式文件存儲(chǔ)系統(tǒng)是Spark分布式計(jì)算的基礎(chǔ),Spark可以直接調(diào)用HDFS中的數(shù)據(jù)集,編程采用scala語言完成。
本文數(shù)據(jù)屬于機(jī)械設(shè)備實(shí)際運(yùn)行產(chǎn)生的數(shù)據(jù),數(shù)據(jù)在正常范圍內(nèi)由于柴油機(jī)工況的變化,會(huì)有較大波動(dòng),因此本實(shí)驗(yàn)需要完成兩個(gè)目標(biāo):一是驗(yàn)證隨機(jī)森林算法對(duì)船用柴油機(jī)進(jìn)行故障診斷的可行性;二是對(duì)隨機(jī)森林在該數(shù)據(jù)集上的參數(shù)設(shè)置進(jìn)行優(yōu)選。結(jié)合隨機(jī)森林的原理,可以發(fā)現(xiàn)影響隨機(jī)森林效果的超參有兩個(gè):決策樹數(shù)量S、隨機(jī)選取特征數(shù)量m[10]。針對(duì)隨機(jī)選取特征數(shù)量的取值,Breiman推薦m的取值為1或者log2(M)+1(M是柴油數(shù)據(jù)集的特征數(shù)),Ho在實(shí)驗(yàn)中將m取值為M2[11],Geurts[12]提出了。綜合以上觀點(diǎn),本文將采用四個(gè)值作為隨機(jī)選取特征的數(shù)量進(jìn)行對(duì)比實(shí)驗(yàn),由于柴油機(jī)的數(shù)據(jù)集有16個(gè)特征,因此本次實(shí)驗(yàn)隨機(jī)選取特征值的數(shù)量分別為1、4、5、8、15。決策樹的數(shù)量分別取1、5、10、15、20、30。
實(shí)驗(yàn)過程如下:
1)生成訓(xùn)練樣本集和測(cè)試集
采用SMOTE算法對(duì)數(shù)據(jù)集中故障數(shù)據(jù)進(jìn)行過采樣,對(duì)正常數(shù)據(jù)進(jìn)行欠采樣,對(duì)數(shù)據(jù)集進(jìn)行平衡化處理。處理后的數(shù)據(jù)集采用Spark提供的randomSplit方法按照7:3的比例將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集。
2)匯總數(shù)據(jù),生成數(shù)據(jù)標(biāo)簽和特證向量
3)構(gòu)建隨機(jī)森林模型
調(diào)用Spark中的RandomForestClassifier模塊構(gòu)建隨機(jī)森林,設(shè)置決策樹的數(shù)量分別為1、5、10、15、20、30,隨機(jī)選取特征值數(shù)量分別為1、4、5、8、15。然后通過Pipeline模塊建立一個(gè)管道模型,在這個(gè)模型中,可以防止交叉驗(yàn)證時(shí),訓(xùn)練集和測(cè)試集的信息互相干擾,保證預(yù)測(cè)的合理性。
4)隨機(jī)森林故障診斷模型性能測(cè)試
用測(cè)試集分別對(duì)各種參數(shù)設(shè)定的隨機(jī)森林診斷模型進(jìn)行評(píng)估性能測(cè)試。
經(jīng)過實(shí)驗(yàn)驗(yàn)證,故障診斷的精度如表2和圖2所示。
表2 不同S、m取值下分類精度對(duì)比
圖2 不同S、m取值下分類精度對(duì)比
由表2和圖2可知,隨機(jī)森林對(duì)柴油機(jī)故障的分類精度是比較高的,其中5棵決策樹構(gòu)建的隨機(jī)森林模型在隨機(jī)選取隨機(jī)特征數(shù)量不變的情況下分類精度都是最高的。實(shí)驗(yàn)中5棵樹時(shí)分類精度是最高的,與隨機(jī)森林中決策樹越多,分類精度越好的理論不符。本文認(rèn)為原因主要在于柴油機(jī)本身的特性。柴油機(jī)數(shù)據(jù)集屬于機(jī)械設(shè)備的數(shù)據(jù)樣本,由于機(jī)械本身存在較大的振動(dòng),某些參數(shù)在正常變化范圍會(huì)根據(jù)工況的不同產(chǎn)生較大波動(dòng),比如柴油機(jī)排氣管總管的廢氣溫度在發(fā)電工況時(shí)會(huì)明顯高于暖機(jī)工況,這些數(shù)據(jù)的大范圍變化會(huì)對(duì)最終的分類精度產(chǎn)生較大影響。分類過程中,決策樹會(huì)分為幾部分,每一部分代表一個(gè)分類結(jié)果,如果決策樹的數(shù)量超過一個(gè)最優(yōu)值以后,更多的決策樹就是冗余的,對(duì)分類精度的提升作用不大,在柴油機(jī)這種波動(dòng)較大的數(shù)據(jù)集上甚至?xí)霈F(xiàn)分類精度降低的結(jié)果,而且本次采集的數(shù)據(jù)量較小,也會(huì)影響到實(shí)驗(yàn)的穩(wěn)定性。
當(dāng)決策樹數(shù)量不變時(shí),隨機(jī)選取特征數(shù)為8和15的條件下,分類精度接近,但是在該值為8時(shí),隨機(jī)森林算法的分類精度在決策樹數(shù)量變化的過程中更為穩(wěn)定,因此,隨機(jī)選取特征數(shù)為8時(shí),分類精度最好。
經(jīng)過本實(shí)驗(yàn)驗(yàn)證了隨機(jī)森林算法在Spark本地模式下進(jìn)行柴油機(jī)故障診斷的可行性,為更深入研究數(shù)據(jù)驅(qū)動(dòng)的柴油機(jī)故障診斷方法提供了支持。同時(shí),確定了影響隨機(jī)森林分類效果的超參最優(yōu)取值,即決策樹數(shù)量為5,隨機(jī)選取特征數(shù)數(shù)量為8,說明在對(duì)機(jī)械數(shù)據(jù)進(jìn)行分類時(shí),在數(shù)據(jù)規(guī)模較小的情況下需要對(duì)算法的設(shè)置進(jìn)行有針對(duì)性的調(diào)整,以達(dá)到更好的分類效果。
本文在Spark平臺(tái)驗(yàn)證了利用隨機(jī)森林算法對(duì)船用柴油機(jī)的故障診斷的可行性,同時(shí)針對(duì)實(shí)際數(shù)據(jù)進(jìn)行了隨機(jī)森林參數(shù)的優(yōu)選。實(shí)驗(yàn)結(jié)果表明,隨機(jī)森林對(duì)柴油機(jī)故障診斷的精度較高,且在該數(shù)據(jù)集上將隨機(jī)森林的決策樹數(shù)量設(shè)置為5棵,隨機(jī)選取特征數(shù)量為8時(shí),能夠達(dá)到最高的分類精度。雖然實(shí)驗(yàn)結(jié)果證明了隨機(jī)森林在柴油機(jī)故障診斷上可行,但是,本文仍然存在幾點(diǎn)不足:
1)由于數(shù)據(jù)維度不高,導(dǎo)致整個(gè)分類過程并不能很好地展現(xiàn)柴油機(jī)的實(shí)際運(yùn)行狀況;
2)實(shí)際使用中,對(duì)船用柴油機(jī)的數(shù)據(jù)收集工作并沒有得到重視,導(dǎo)致實(shí)驗(yàn)中的數(shù)據(jù)量過小,距離可實(shí)用的基于數(shù)據(jù)挖掘的船用柴油機(jī)故障診斷還存在差距;
3)分類過程中會(huì)出現(xiàn)很多故障無法識(shí)別的結(jié)果,這是由于數(shù)據(jù)的不平衡性導(dǎo)致的,即故障數(shù)據(jù)的數(shù)量遠(yuǎn)少于正常數(shù)據(jù)的數(shù)量。這種情況會(huì)導(dǎo)致無法發(fā)現(xiàn)故障,引起嚴(yán)重后果。
下一步,將對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)充,針對(duì)柴油機(jī)具體故障的診斷進(jìn)行深入研究,同時(shí),將開展數(shù)據(jù)不平衡問題的研究,優(yōu)化隨機(jī)森林算法對(duì)不平衡數(shù)據(jù)的分類性能。