鄭日暉,岑 健,陳志豪
(1. 廣東技術(shù)師范大學(xué), 廣東 廣州 510665;2. 廣東水利電力職業(yè)技術(shù)學(xué)院, 廣東 廣州 510635)
隨著工業(yè)的發(fā)展,故障診斷已經(jīng)成為生產(chǎn)過(guò)程中不可或缺的重要環(huán)節(jié)。工業(yè)4.0時(shí)代的到來(lái),推動(dòng)人工智能在各行各業(yè)中得到廣泛應(yīng)用。智能故障診斷的其中一個(gè)研究領(lǐng)域,就是運(yùn)用機(jī)器學(xué)習(xí)的方法,希望機(jī)器不但具有人類(lèi)的思維,并且可以做出比人類(lèi)更快、更準(zhǔn)的診斷。然而機(jī)器學(xué)習(xí)的算法繁多且每種算法均帶有影響模型性能的參數(shù),在實(shí)際應(yīng)用中不僅要適當(dāng)?shù)剡x用模型,并且要結(jié)合數(shù)據(jù)收集的情況對(duì)算法的參數(shù)進(jìn)行尋優(yōu)。如王丹妮等[1]采用粒子群算法對(duì)BP神經(jīng)網(wǎng)絡(luò)算法的初始權(quán)值和閾值進(jìn)行優(yōu)化;張文雅等[2]采用網(wǎng)格搜索法對(duì)支持向量機(jī)的懲罰系數(shù)和核函數(shù)參數(shù)進(jìn)行尋優(yōu);李剛等[3]采用遺傳算法對(duì)隨機(jī)森林的參數(shù)進(jìn)行優(yōu)化。粒子群算法更適用于對(duì)實(shí)數(shù)進(jìn)行尋優(yōu),對(duì)于整數(shù)的尋優(yōu)精度不高;網(wǎng)絡(luò)搜索法對(duì)于多參數(shù)尋優(yōu)往往開(kāi)銷(xiāo)大、耗時(shí)長(zhǎng);遺傳算法編程比較復(fù)雜、收斂速度慢。
決策樹(shù)算法具備容易實(shí)現(xiàn)、便于理解等優(yōu)點(diǎn)[4],并且其參數(shù)較少,方便尋優(yōu)。本文通過(guò)控制決策樹(shù)葉子節(jié)點(diǎn)最小樣本數(shù)來(lái)控制決策樹(shù)的生長(zhǎng),尋找合適的參數(shù)進(jìn)行建模并將其用于智能故障診斷。
決策樹(shù)是用于實(shí)現(xiàn)數(shù)據(jù)分類(lèi)或回歸預(yù)測(cè)的算法。決策樹(shù)的運(yùn)算過(guò)程是將實(shí)測(cè)數(shù)據(jù)樣本從根節(jié)點(diǎn)輸入,在每個(gè)父節(jié)點(diǎn)中進(jìn)行分裂選擇子節(jié)點(diǎn),從根節(jié)點(diǎn)開(kāi)始通過(guò)唯一的一條路徑一直到葉節(jié)點(diǎn),實(shí)現(xiàn)最終的分類(lèi)。
早期的決策樹(shù)分類(lèi)器采用CLS算法,該算法的主要思想是在每個(gè)節(jié)點(diǎn)處從當(dāng)前剩下的候選屬性中隨機(jī)選取。由于每個(gè)屬性對(duì)最終類(lèi)別的影響程度不同,因此該方法存在一定的盲目性,缺乏科學(xué)有效的規(guī)則來(lái)選取分裂屬性,擬合效果難以保證。所以決策樹(shù)建樹(shù)過(guò)程需要解決的關(guān)鍵問(wèn)題是每個(gè)節(jié)點(diǎn)分裂屬性的選擇。為了解決選取最優(yōu)分裂屬性的問(wèn)題,J.Ross Quinlan根據(jù)信息理論提出了ID3決策樹(shù)算法[5]。在信息理論中,用信息熵H(x)(單位為bit,以下省略)來(lái)度量一個(gè)隨機(jī)變量x的不確定度,有
其中,pi為隨機(jī)變量x出現(xiàn)的概率。
選取某個(gè)屬性A作為分裂屬性時(shí),由于產(chǎn)生了條件約束,減少了不確定性,故而產(chǎn)生了信息增益。顯而易見(jiàn),信息增益越大,不確定度減少幅度越大,所以ID3算法核心思想是通過(guò)計(jì)算當(dāng)前節(jié)點(diǎn)的最大信息增益來(lái)選取最優(yōu)分裂屬性。
設(shè)樣本D的類(lèi)別種數(shù)為k,在沒(méi)有任何屬性約束的情況下,樣本D的信息熵為
設(shè)屬性A中有n個(gè)分支,a為第j個(gè)分支類(lèi)別屬性序號(hào),則A屬性條件約束下的信息熵為
信息增益的計(jì)算公式為:
相對(duì)CLS算法而言,ID3算法確定了選擇分裂屬性的方向,使決策樹(shù)生長(zhǎng)集約化、合理化。但由于信息增益會(huì)偏好取值較多的屬性,導(dǎo)致分類(lèi)器出現(xiàn)局部最優(yōu)解。針對(duì)ID3算法的不足,Quinlan于1993年提出了C4.5決策樹(shù)算法[6]。C4.5算法是在ID3算法的基礎(chǔ)上進(jìn)行改進(jìn)優(yōu)化,引入一個(gè)參數(shù)HC(D)對(duì)信息增益進(jìn)行懲罰,懲罰參數(shù)計(jì)算如下:
其中v為屬性A的取值個(gè)數(shù),此時(shí)將衡量分裂屬性?xún)?yōu)劣順序的指標(biāo)
稱(chēng)為信息增益率。
CART算法[7]是早在1984年由Brei-man等人提出的另一種經(jīng)典算法,其核心思想是基于Gini系數(shù)對(duì)分裂屬性進(jìn)行選取。樣本集合D的Gini系數(shù)為
其中pi代表類(lèi)別第i個(gè)類(lèi)別被選中的概率。如果集合D被劃分成兩個(gè)子集D1和D2,則此次劃分的Gini系數(shù)為
ID3算法只適用于處理屬性為有限離散值的情況,對(duì)屬性為連續(xù)實(shí)數(shù)的情況無(wú)能為力,雖然C4.5可以對(duì)屬性為連續(xù)實(shí)數(shù)的情況進(jìn)行處理,但其計(jì)算過(guò)程相對(duì)復(fù)雜;由于CART算法不僅適合處理屬性為連續(xù)實(shí)數(shù)的情況,并且其計(jì)算過(guò)程簡(jiǎn)單,所以本文的決策樹(shù)模型均采用CART算法。
決策樹(shù)算法雖然易于實(shí)現(xiàn)且運(yùn)算速度快,但在建樹(shù)過(guò)程中如果任其生長(zhǎng)而不加以控制,將可能造成訓(xùn)練過(guò)擬合,不僅增加運(yùn)算開(kāi)銷(xiāo)和時(shí)耗,同時(shí)使得模型的泛化能力變差??刂茮Q策樹(shù)生長(zhǎng)一般采用剪枝的方法,而剪枝有預(yù)剪枝和后剪枝之分。預(yù)剪枝是在決策樹(shù)生長(zhǎng)過(guò)程中同時(shí)采用一些指標(biāo)來(lái)決定節(jié)點(diǎn)是否不再分裂并用葉子節(jié)點(diǎn)代替;后剪枝是在決策樹(shù)充分生長(zhǎng)后采用一些指標(biāo)來(lái)決定是否剪去子樹(shù)而用葉子節(jié)點(diǎn)代替。預(yù)剪枝的風(fēng)險(xiǎn)是可能導(dǎo)致決策樹(shù)欠擬合;后剪枝一般不會(huì)導(dǎo)致欠擬合,但是由于后剪枝是在決策樹(shù)充分生長(zhǎng)之后進(jìn)行的,所以其運(yùn)算開(kāi)銷(xiāo)遠(yuǎn)大于預(yù)剪枝。
本文優(yōu)化決策樹(shù)的思路是采用預(yù)剪枝的方法,在決策樹(shù)節(jié)點(diǎn)上設(shè)定一個(gè)閾值,將該閾值定義為葉子節(jié)點(diǎn)最小樣本數(shù)。當(dāng)決策樹(shù)的節(jié)點(diǎn)中所含的樣本數(shù)少于該閾值時(shí)則停止分裂,并將該節(jié)點(diǎn)設(shè)定為葉子節(jié)點(diǎn),從而控制決策樹(shù)的生長(zhǎng)深度。由于決策樹(shù)節(jié)點(diǎn)中的樣本數(shù)為自然數(shù)且變化范圍不大,所以采取可行域內(nèi)遍歷尋優(yōu)的方法尋找合適的葉子節(jié)點(diǎn)最小樣本數(shù)。
值得一提的是,決策樹(shù)的生長(zhǎng)深度并不與葉子節(jié)點(diǎn)最小樣本數(shù)一一對(duì)應(yīng),葉子節(jié)點(diǎn)最小樣本數(shù)在一定的變化區(qū)間內(nèi),決策樹(shù)將保持相同的深度及相應(yīng)的分類(lèi)準(zhǔn)確度。因此,本文調(diào)參尋優(yōu)的思路是為參數(shù)尋找一個(gè)合理的區(qū)間使得模型最佳。
對(duì)模型參數(shù)進(jìn)行優(yōu)化的過(guò)程中,需要定義一個(gè)優(yōu)化的目標(biāo)。對(duì)于決策樹(shù)而言,優(yōu)化的目標(biāo)不僅是希望提高分類(lèi)準(zhǔn)確率p,同時(shí)也希望模型不要因?yàn)檫^(guò)于復(fù)雜而增加運(yùn)算開(kāi)銷(xiāo)、影響實(shí)時(shí)性??紤]到?jīng)Q策樹(shù)算法的節(jié)點(diǎn)數(shù)N與決策樹(shù)的深度是指數(shù)關(guān)系,反過(guò)來(lái)決策樹(shù)的深度與節(jié)點(diǎn)數(shù)N為對(duì)數(shù)關(guān)系,因此采用log2N來(lái)表征決策樹(shù)的復(fù)雜程度,也就是說(shuō),N越大模型越復(fù)雜,N越小模型越簡(jiǎn)單。綜合以上分析,優(yōu)化的目標(biāo)是希望p越大、log2N越小則效果更理想,所以定義f=p/log2N為評(píng)價(jià)函數(shù),將其作為優(yōu)化目標(biāo),將葉子節(jié)點(diǎn)最小樣本數(shù)k作為優(yōu)化對(duì)象,則優(yōu)化的過(guò)程就是尋找合適的k的取值范圍使得f=p/log2N越大越好。需要說(shuō)明的是,本文采用五折交叉驗(yàn)證對(duì)分類(lèi)準(zhǔn)確率p進(jìn)行計(jì)算。
綜合2.1、2.2的分析,本文調(diào)參優(yōu)化的方法是通過(guò)在設(shè)定區(qū)間內(nèi)搜索理想的葉子節(jié)點(diǎn)最小樣本數(shù)k的取值范圍,使得同時(shí)兼顧分類(lèi)準(zhǔn)確率與模型復(fù)雜程度的評(píng)價(jià)函數(shù)f=p/log2N盡可能大,流程如圖1所示。
圖1 調(diào)參優(yōu)化流程
為了驗(yàn)證本文調(diào)參優(yōu)化方法的有效性,采用某機(jī)械故障數(shù)據(jù)樣本集進(jìn)行實(shí)驗(yàn),數(shù)據(jù)樣本集共包含4類(lèi)故障狀態(tài),每類(lèi)故障狀態(tài)均含有100個(gè)樣本,每個(gè)樣本均含有36個(gè)特征。基于優(yōu)化決策樹(shù)的智能故障診斷方法流程如圖2所示:首先通過(guò)調(diào)參優(yōu)化步驟獲得最優(yōu)參數(shù)的取值區(qū)間,然后在該區(qū)間內(nèi)任選1個(gè)優(yōu)秀參數(shù)k’并采用劃分好的訓(xùn)練集建立優(yōu)化后的決策樹(shù),最后采用測(cè)試集進(jìn)行分類(lèi)準(zhǔn)確率的測(cè)試。
圖2 基于優(yōu)化決策樹(shù)的智能故障診斷方法流程
初始化葉子節(jié)點(diǎn)最小樣本數(shù)為k=1,設(shè)定其最大值K=70,遍歷k從1-70進(jìn)行建模并考察相應(yīng)的評(píng)價(jià)函數(shù),實(shí)驗(yàn)結(jié)果如圖3所示。
圖3 調(diào)參優(yōu)化實(shí)驗(yàn)結(jié)果
由圖3可知,當(dāng)葉子節(jié)點(diǎn)最小樣本數(shù)k小于8時(shí),由于從不受約束開(kāi)始到逐步控制,評(píng)價(jià)函數(shù)從數(shù)值0.2呈現(xiàn)逐漸增大的趨勢(shì);當(dāng)葉子節(jié)點(diǎn)最小樣本數(shù)k大于62時(shí),對(duì)決策樹(shù)生長(zhǎng)的限制過(guò)度,出現(xiàn)了欠擬合,分類(lèi)準(zhǔn)確明顯下降,從而導(dǎo)致評(píng)價(jià)函數(shù)遞減;當(dāng)葉子節(jié)點(diǎn)最小樣本數(shù)k落在區(qū)間[8,62]內(nèi)時(shí),評(píng)價(jià)函數(shù)較平穩(wěn)地保持在高位數(shù)值0.33左右。由以上分析可得,當(dāng)葉子節(jié)點(diǎn)最小樣本數(shù)k在[8,62]內(nèi)取值時(shí),可以獲得較理想的決策樹(shù)模型。
為了驗(yàn)證優(yōu)化后模型的性能,將決策樹(shù)最小樣本數(shù)設(shè)置為40,采用數(shù)據(jù)集進(jìn)行建模并測(cè)試,決策樹(shù)算法模型如圖4所示。
采用留出法,使用數(shù)據(jù)集建模并測(cè)試:將400個(gè)數(shù)據(jù)樣本隨機(jī)劃分出300個(gè)作為訓(xùn)練集,留出100個(gè)樣本進(jìn)行測(cè)試,實(shí)驗(yàn)分類(lèi)結(jié)果如圖5所示。
由圖5可見(jiàn),優(yōu)化后的決策樹(shù)模型對(duì)于第一種故障的21個(gè)數(shù)據(jù)樣本全部分類(lèi)正確;第二種故障的23個(gè)數(shù)據(jù)樣本中,有16個(gè)分類(lèi)正確,有4個(gè)被錯(cuò)誤識(shí)別為第三種故障,有3個(gè)被錯(cuò)誤識(shí)別為第四種故障;第三種故障的30個(gè)數(shù)據(jù)樣本全部分類(lèi)正確;第四種故障的26個(gè)數(shù)據(jù)樣本中,有25個(gè)分類(lèi)正確,有1個(gè)被錯(cuò)誤識(shí)別為第一種故障。統(tǒng)計(jì)四種故障情況的100個(gè)數(shù)據(jù)樣本中,共有8個(gè)數(shù)據(jù)樣本分類(lèi)錯(cuò)誤,分類(lèi)準(zhǔn)確率為92%。
如果不對(duì)決策樹(shù)算法進(jìn)行優(yōu)化,決策樹(shù)算法模型則如圖6所示,實(shí)驗(yàn)分類(lèi)結(jié)果如圖7所示。
圖4 優(yōu)化的決策樹(shù)算法模型
圖5 優(yōu)化的決策樹(shù)算法分類(lèi)結(jié)果
圖6 沒(méi)有優(yōu)化的決策樹(shù)算法模型
圖7 沒(méi)有優(yōu)化的決策樹(shù)算法實(shí)驗(yàn)結(jié)果
由圖7可見(jiàn),未經(jīng)過(guò)優(yōu)化的決策樹(shù)模型對(duì)于第一種故障的21個(gè)數(shù)據(jù)樣本中有20個(gè)分類(lèi)正確,有1個(gè)被錯(cuò)誤識(shí)別為第四種故障;第二種故障的23個(gè)數(shù)據(jù)樣本中,有16個(gè)分類(lèi)正確,有1個(gè)被錯(cuò)誤識(shí)別為第一種故障,有4個(gè)被錯(cuò)誤識(shí)別為第三種故障,有2個(gè)被錯(cuò)誤識(shí)別為第四種故障;第三種故障的30個(gè)數(shù)據(jù)樣本全部分類(lèi)正確;第四種故障的26個(gè)數(shù)據(jù)樣本中,有23個(gè)分類(lèi)正確,有3個(gè)被錯(cuò)誤識(shí)別為第一種故障。統(tǒng)計(jì)四種故障情況的100個(gè)數(shù)據(jù)樣本中,共有11個(gè)數(shù)據(jù)樣本分類(lèi)錯(cuò)誤,分類(lèi)準(zhǔn)確率為89%。
此外對(duì)比圖4、6可知,沒(méi)有進(jìn)行優(yōu)化的決策樹(shù)模型共有5層、21個(gè)節(jié)點(diǎn);優(yōu)化后的決策樹(shù)模型只有3層且僅有7個(gè)節(jié)點(diǎn)。
表1 優(yōu)化前后的決策樹(shù)模型對(duì)比
表1顯示:優(yōu)化后的決策樹(shù)模型不僅提高了分類(lèi)準(zhǔn)確率,并且很大程度地減小了決策樹(shù)模型的復(fù)雜程度。
本文針對(duì)決策樹(shù)性能受其參數(shù)影響問(wèn)題,提出了一種基于優(yōu)化決策樹(shù)的智能故障診斷方法。
(1)分析了決策樹(shù)節(jié)點(diǎn)最小樣本數(shù)對(duì)決策樹(shù)算法性能的影響,提出了以決策樹(shù)節(jié)點(diǎn)最小樣本數(shù)為優(yōu)化對(duì)象的優(yōu)化思路。(2)分析了影響決策樹(shù)算法性能的因素,構(gòu)建了同時(shí)兼顧分類(lèi)準(zhǔn)確率和模型復(fù)雜程度的模型性能評(píng)價(jià)函數(shù)。(3)設(shè)計(jì)了以決策樹(shù)節(jié)點(diǎn)最小樣本數(shù)為優(yōu)化對(duì)象、以模型性能評(píng)價(jià)函數(shù)為優(yōu)化目標(biāo)的優(yōu)化流程。(4)通過(guò)實(shí)驗(yàn)證明,未進(jìn)行優(yōu)化的決策樹(shù)模型共有5層、21個(gè)節(jié)點(diǎn),分類(lèi)準(zhǔn)確率為89% ;優(yōu)化后的決策樹(shù)模型只有3層且僅有7個(gè)節(jié)點(diǎn),分類(lèi)準(zhǔn)確率為91%。這說(shuō)明本文提出的優(yōu)化方法應(yīng)用于智能故障診斷中不僅可簡(jiǎn)化模型,還可提高模型分類(lèi)準(zhǔn)確率。
廣東水利電力職業(yè)技術(shù)學(xué)院學(xué)報(bào)2020年1期