陳 晨,張捍東,吳玉秀
(安徽工業(yè)大學(xué) 電氣與信息工程學(xué)院, 安徽 馬鞍山 243002)
接線端子現(xiàn)如今被廣泛應(yīng)用于各個領(lǐng)域,在傳遞電信號方面起到連接作用,一個合格的接線端子產(chǎn)品能給生產(chǎn)和使用帶來諸多便利,避免許多麻煩。端子產(chǎn)品缺陷檢測的目的就是檢測出帶有缺陷的接線端子,避免缺陷端子被應(yīng)用到生產(chǎn)和生活中。缺陷端子有很多種類,例如壓著端子變形、端子深壓、端子淺打、端子氧化等。不同種類的缺陷端子在被應(yīng)用后容易造成嚴(yán)重程度不同的惡劣后果。為杜絕缺陷端子流出,提升端子缺陷檢測的效率,本文將隨機森林模型應(yīng)用于端子缺陷檢測領(lǐng)域中,對端子缺陷信息數(shù)據(jù)進行隨機森林模型的訓(xùn)練和建立[1],模型建立完成后使用測試數(shù)據(jù)集對模型進行性能評估,獲得隨機森林模型的應(yīng)用評價。
隨機森林算法是以多個決策樹為基學(xué)習(xí)器組成的,隨機森林算法的結(jié)果讓所有基學(xué)習(xí)器的決策結(jié)果進行投票,最終取得最高票數(shù)的就是結(jié)果[2]。隨機森林算法具有容易實現(xiàn),處理速度快,抗過擬合能力強等優(yōu)點,已被廣泛應(yīng)用于醫(yī)學(xué)、工業(yè)生產(chǎn)、林業(yè)等領(lǐng)域,且在各種應(yīng)用任務(wù)中均表現(xiàn)出了良好的性能[3]。
隨機森林(Random Forest,RF)[4]是引導(dǎo)聚類算法的一種拓展算法,RF以決策樹作為基學(xué)習(xí)器搭建Bagging集成的基礎(chǔ),且在決策樹的訓(xùn)練過程中進行隨機屬性選擇。隨機森林以決策樹為基礎(chǔ),故決策樹的理論也必須要了解。決策樹有很多不同的變種,但是變種的核心主函數(shù)都是類似的,主要不同點是最優(yōu)特征標(biāo)準(zhǔn)的選擇。根據(jù)最優(yōu)劃分屬性(特征)選擇的不同,決策樹算法又分為ID3決策樹學(xué)習(xí)算法、C4.5決策樹算法和CART決策樹算法等幾大類,下面介紹這幾種決策樹算法。
ID3決策樹學(xué)習(xí)算法是以樣本信息的信息增益(information gain)進行最優(yōu)劃分屬性的選擇,信息增益來自于信息熵(information entropy), 信息熵是最常用來度量樣本集合純度的指標(biāo)。其式如下所示:
(1)
式中D為樣本集合,pk(k=1,2,…,|y|)為第k類樣本所占的比例,且Ent(D)的值越小,代表樣本D的純度越高。假定由屬性a對樣本集D進行劃分并產(chǎn)生V個分支節(jié)點,記其中第v個分支節(jié)點為Dv,則屬性a對樣本集D劃分所獲得的信息增益為:
(2)
由式(2)可看出,信息增益越大,則說明屬性a劃分集合D所獲得的純度提升越大。故可選用信息增益作為劃分屬性選擇,這就是著名的ID3決策樹學(xué)習(xí)算法[5]。
C4.5決策樹算法是以信息增益率(gain ratio)選擇最優(yōu)劃分屬性[6]。由于ID3算法對連續(xù)型變量屬性的處理效果非常差,并且更偏好屬性分類較多的屬性,為了減少這種偏好的不利影響,Quinlan提出使用信息增益率選擇最優(yōu)劃分屬性,這就是C4.5決策樹算法。增益率符號與公式(2)相同,定義公式如下:
(3)
其中
(4)
CART決策樹是以基尼指數(shù)(Gini index)選擇最優(yōu)劃分屬性,采用符號與公式(2)相同,則數(shù)據(jù)集D中屬性a的基尼指數(shù)計算公式為:
(5)
Gini(D)(基尼值)表示數(shù)據(jù)集的純度,即從數(shù)據(jù)集中隨機抽取樣本類別不一致的概率,基尼值越小,表示所抽取的數(shù)據(jù)集純度越高,Gini(D)計算公式如下:
(6)
使用決策樹算法可獲得決策樹,而隨機森林算法則是以單決策樹為基學(xué)習(xí)器集成的分類器,這種集成分類器克服了單分類器的很多缺點,具備極好的準(zhǔn)確率。RF的思路就是通過對各個單決策樹的分類結(jié)果進行投票,將票數(shù)最高的結(jié)果作為RF的分類結(jié)果。隨機森林的兩次隨機抽樣非常關(guān)鍵,首先就是用bootstrap的有放回隨機采樣,每個基學(xué)習(xí)器只使用約63.2%的初始訓(xùn)練集的數(shù)據(jù),剩下約36.8%的數(shù)據(jù)則可用于對RF模型進行改進優(yōu)化[7]。其次是選擇特征時的隨機抽樣,保證生成決策樹時選擇的特征不完全一樣,再將所有已構(gòu)建的決策樹相連,即構(gòu)成了隨機森林。RF的運行過程是利用自助采樣法(bootstrap sampling)對訓(xùn)練集處理,獲得多個訓(xùn)練子集,再通過處理訓(xùn)練子集產(chǎn)生眾多決策樹,最后在對這些決策樹的結(jié)果進行投票獲得RF的分類結(jié)果。
用隨機森林模型對測試集樣本數(shù)據(jù)進行分類,根據(jù)測試集樣本真實類別和學(xué)習(xí)器預(yù)測類別將分類結(jié)果劃分為真正例(truepositive)、假正例(falsepositive)、真反例(truenegative)和假反例(falsenegative)四種情形,獲得分類結(jié)果的混淆矩陣[8],如表1所示。
表1 分類結(jié)果混淆矩陣
準(zhǔn)確率Accuracy、查全率Sensitivity、查準(zhǔn)率Precision、特異度Specificity和F1的相關(guān)定義[9]如下:
(7)
(8)
(9)
(10)
(11)
其中準(zhǔn)確率Acc是通過算法分類正確的樣本數(shù)所占的比例,查準(zhǔn)率Pre可視為精確性的度量,查全率Sen和特異度Spe體現(xiàn)了算法分類的真正例率和真負例率,F(xiàn)1則是基于查準(zhǔn)率和查全率的調(diào)和平均定義的,這是一種更為常用的性能指標(biāo)。
將隨機森林應(yīng)用于端子缺陷檢測中,首先需要訓(xùn)練一個可用于分類的隨機森林模型。因隨機森林由眾多決策樹組成,訓(xùn)練隨機森林模型的過程實質(zhì)上就是訓(xùn)練眾多分類決策樹的過程。
隨機森林算法應(yīng)用于端子缺陷檢測中的算法步驟如下:
(1)電壓數(shù)據(jù)預(yù)處理[10]。對電壓數(shù)據(jù)進行濾波處理,消除電壓采集過程中出現(xiàn)的抖動和高頻噪聲。再對電壓數(shù)據(jù)進行處理,獲得包含100組特征數(shù)據(jù)的訓(xùn)練集D,訓(xùn)練集D中含有6種分類屬性。
(2)使用自助采樣法(bootstrap)對訓(xùn)練集D進行抽樣,每次抽取樣本數(shù)量為63個,獲得新的訓(xùn)練子集。
(3)從6種分類屬性中隨機抽取t(t≤6)種屬性,使用CART決策樹算法選擇最優(yōu)劃分屬性(CART算法相對ID3和C4.5算法不會對特征屬性數(shù)量有偏好),選擇最優(yōu)葉子節(jié)點,在子樣本集中獲得所有的葉子節(jié)點。
(4)重復(fù)進行步驟(3),在所有的決策樹生長完成后,隨機森林模型就完成訓(xùn)練。
隨機森林算法訓(xùn)練流程如圖1所示。
隨機森林分類圖如圖2所示,使用RF模型分類步驟如下:
(1)對任一已訓(xùn)練完成的分類樹,只要有樣本變量輸入,相對應(yīng)的節(jié)點變量從決策樹的根節(jié)點達到末節(jié)點,末節(jié)點的結(jié)果即作為這棵決策樹的輸出結(jié)果[11]。
(2)對隨機森林中所有的決策樹都重復(fù)步驟(1),這樣RF中每棵決策樹都可以輸出對變量的分類結(jié)果,將這些結(jié)果進行投票就可以獲得RF的分類結(jié)果。
圖1 隨機森林模型訓(xùn)練流程圖
圖2 隨機森林分類流程圖
傳統(tǒng)的隨機森林將所有的決策樹對決策結(jié)果的影響看成是相等的,即通過等權(quán)重投票獲得決策結(jié)果[12]。本文則對投票的過程進行了改進,計算RF中所有決策樹在分類過程中的分類精度,以分類精度度量決策樹的性能及其對RF的影響,而后再根據(jù)各個決策樹的分類精度進行加權(quán)投票從而獲得RF的分類結(jié)果,以此提高了RF的準(zhǔn)確性。又因RF在獲得子訓(xùn)練集時是使用bootstrap方法,所有的基學(xué)習(xí)器只使用了初始訓(xùn)練集約63.2%的數(shù)據(jù),剩下約36.8%的袋外數(shù)據(jù)可對已訓(xùn)練完成的決策樹進行評估,則可以獲得n棵決策樹的精度向量。
VAcc=[Acc1,Acc2,Acc3,…,Accn]
(12)
將袋外數(shù)據(jù)用于決策樹的分類精度評估,直到獲得全部n棵決策樹的精度向量VAcc。將獲得的精度向量賦予權(quán)重,即wn=Accn,可得到所有決策樹在決策結(jié)果投票時應(yīng)有的權(quán)重向量WA。
WA=[w1,w2,w3,…,wn]
(13)
其中Accn為RF中各個決策樹的分類精度,wn則為各個決策樹在投票時所占的權(quán)重[13]。根據(jù)單棵決策樹計算所得的權(quán)重確定該決策樹在整個隨機森林結(jié)果分類中所占的權(quán)重比例,在最終結(jié)果投票時分類結(jié)果與權(quán)重向量相乘獲得最終分類結(jié)果。
為測試隨機森林算法應(yīng)用于端子缺陷檢測時的性能效果,也為了與其它分類器算法作對比,實驗還將BP神經(jīng)網(wǎng)絡(luò)分類算法和SVM分類算法與RF算法作比較。使用三種分類方法對同一組端子缺陷信息數(shù)據(jù)集做分類處理,使用Acc、Sen、Pre、Spe和F1作為評估算法性能的指標(biāo)。
為訓(xùn)練隨機森林模型,對所有的電壓數(shù)據(jù)集進行預(yù)處理,得到所有的壓力曲線信息,每一條壓力曲線信息對應(yīng)接線端子生產(chǎn)時所受的壓力變化,提取電壓數(shù)據(jù)特征值成為訓(xùn)練隨機森林模型的初始數(shù)據(jù)集,而后對模型進行測試評估并獲得實驗結(jié)果。端子缺陷數(shù)據(jù)表如表2所示。
表2 端子缺陷數(shù)據(jù)表
隨機森林模型中決策樹的數(shù)量影響分類結(jié)果的準(zhǔn)確性,為了保證RF分類結(jié)果的準(zhǔn)確性較高,必須要獲得RF模型中決策樹的最優(yōu)數(shù)量。使決策樹的數(shù)目在0-500范圍內(nèi)變化,每次增加50棵決策樹,以不同決策樹數(shù)量訓(xùn)練隨機森林算法模型,并對不同數(shù)量決策樹訓(xùn)練的隨機森林模型通過模型準(zhǔn)確率Acc進行評價,從而找出隨機森林模型準(zhǔn)確率和決策樹數(shù)量之間的關(guān)系。 獲得的決策樹個數(shù)與RF模型性能指標(biāo)的準(zhǔn)確率Acc的變化關(guān)系如圖3所示,從圖3中可以看出,當(dāng)決策樹的數(shù)量較少時,準(zhǔn)確率Acc也較低,隨著決策樹數(shù)目的增加,RF模型的準(zhǔn)確率Acc也在增加,且增加的幅度越來越小。出現(xiàn)這種變化趨勢的主要原因是由于訓(xùn)練樣本和節(jié)點變量都是隨機選取的[14],在決策樹數(shù)量較少時,會因為隨機性導(dǎo)致RF模型的準(zhǔn)確率偏低;當(dāng)決策樹的數(shù)量逐漸增多時,這種隨機性也在不斷降低,各個變量都能全面地對分類結(jié)果造成影響,所以訓(xùn)練模型的準(zhǔn)確率也在逐漸增加;當(dāng)決策樹增加到一定數(shù)量時,隨機性對RF模型準(zhǔn)確率造成的影響已經(jīng)最小,即便是繼續(xù)增加決策樹的數(shù)量,準(zhǔn)確率也不會提高[15]。由圖3能看出,當(dāng)隨機森林內(nèi)部決策樹的數(shù)量達到400時,模型準(zhǔn)確率不再繼續(xù)提升,因此選擇決策樹數(shù)量400作為最佳數(shù)量。
圖3 RF模型查準(zhǔn)率與決策樹數(shù)量關(guān)系圖
在分類樹數(shù)量為400時,使用隨機森林模型對測試集數(shù)據(jù)進行分類,統(tǒng)計分類結(jié)果并獲得模型準(zhǔn)確率Acc、查準(zhǔn)率Pre、查全率Sen、特異度Spe和F1的值,如圖4所示。
從模型性能圖可以看出,RF模型的準(zhǔn)確率Acc達到了0.94,即隨機森林模型在理想情況下對端子缺陷信息識別準(zhǔn)確達到0.94,這已經(jīng)遠遠高于傳統(tǒng)人工檢測的準(zhǔn)確率;且模型的Pre達到了0.95,Sen達到了0.86,Spe達到了0.87,模型的F1指標(biāo)也達到了0.9以上,這些都說明了將隨機森林模型應(yīng)用于端子缺陷信息檢測中的可行性。使用機器學(xué)習(xí)方法檢測端子缺陷還能大幅度縮減人工成本,降低檢測時間,極大地提升了端子缺陷檢測的效率,是未來端子缺陷檢測的趨勢。
圖4 RF模型性能評估圖
為了測試隨機森林算法應(yīng)用于端子缺陷檢測時性能是否優(yōu)于其它分類算法,同時也為了與其它算法性能做對比,本實驗采用隨機森林、BP神經(jīng)網(wǎng)絡(luò)和支持向量機對同一組缺陷信息數(shù)據(jù)集做分類處理[16],BP神經(jīng)網(wǎng)絡(luò)采用非線性激活函數(shù):Sigmoid函數(shù);支持向量機以高斯函數(shù)作為其核函數(shù)。以準(zhǔn)確率Acc、查準(zhǔn)率Pre、查全率Sen、特異度Spe和F1值作為度量這三種分類算法的指標(biāo),實驗獲得的算法性能如表3所示。
表3 各算法性能表 %
根據(jù)表3中隨機森林、BP神經(jīng)網(wǎng)絡(luò)和支持向量機模型的性能指標(biāo),RF模型的準(zhǔn)確率為0.94,比BP神經(jīng)網(wǎng)絡(luò)模型高4%,比SVM模型高6%,其查準(zhǔn)率為0.95,比BP神經(jīng)網(wǎng)絡(luò)模型高6%,比SVM模型高9%,其F1值為0.902,比BP神經(jīng)網(wǎng)絡(luò)模型高4.8%,比SVM模型高6.2%,由此可知RF模型的這三個性能指標(biāo)都明顯高于BP神經(jīng)網(wǎng)絡(luò)模型和支持向量機模型,在分類精度上有更好的表現(xiàn),故可以將隨機森林模型應(yīng)用于端子缺陷檢測中。
使用隨機森林算法對端子缺陷進行檢測,分類效果要遠高于傳統(tǒng)的分類方法,其分類時間也遠小于人工分類所需要的時間,極大地提升了端子缺陷檢測效率。利用訓(xùn)練隨機森林模型使用的袋外數(shù)據(jù)對RF做進一步的提升,以此提升隨機森林模型的準(zhǔn)確率。和另外兩種分類算法相比較,隨機森林模型在分類性能上確實具備更好的表現(xiàn)。之后的研究方向可以放在檢測出端子缺陷種類上,即通過分類算法檢測出端子缺陷的類型,進行多分類,可直接分出端子缺陷的類型,在算法中會體現(xiàn)出復(fù)雜性,也是對此算法的提升。