龔衛(wèi)華陳 凱王百城
(1.浙江工業(yè)大學計算機科學與技術學院,浙江 杭州 310023;2.浙江工業(yè)大學理學院,浙江 杭州 310023)
機器學習的目標可以理解為在假設空間中搜索一個泛化能力強且魯棒性高的學習模型,但是搜索合適模型的過程是比較困難的[1]。 集成學習為解決該問題提供了一種有效的方法,通過采用多種機器學習算法產生預測結果,并將結果與各種投票機制融合,使得組合后模型的泛化性能得以提升[2]。該方法現(xiàn)已廣泛應用于時間序列[3]、醫(yī)療健康[4]、軟件缺陷預測[5]、惡意代碼檢測[6]等領域并取得了良好的效果。 目前一些常見的集成學習算法有AdaBoost[7]、 Bagging ( bootstrap aggregating)[8]和Stacking[9]等。 影響集成學習算法性能的關鍵在于如何構造差異化的基分類器[10]。 現(xiàn)有大多數(shù)研究主要通過采樣方法構造差異化的基分類器,如Wang等[11]提出了一種基于Bagging 和Random Subspace的混合集成分類方法RS-Bagging;Yang 等[12-13]提出了一種基于混合采樣的聚類集成方法;姚旭等[14]利用粒子群優(yōu)化算法(PSO)尋找最優(yōu)特征權重分布,在此基礎上隨機抽取特征生成隨機子空間用于訓練基分類器。 不難發(fā)現(xiàn),這些傳統(tǒng)基于采樣構造基分類器的方法,無法保證基分類器之間的差異性,從而限制了集成分類器泛化性能的提升[15]。
為了增強集成分類器的泛化能力,最近一些研究采用聚類技術來預處理訓練集,聚類算法根據訓練樣本的原始特征對其進行劃分,以獲得特征分布差異較大的訓練子集。 由于不同的類簇代表不同的空間特征,因而在不同類簇上訓練得到的基分類器之間的差異性在一定程度上得到了保證。 Xiao等[15]通過對每個類別標簽的樣本進行聚類分組,然后將不同類別標簽和類簇的樣本組合成不同的訓練子集用于生成基分類器,最后依據基分類器在測試樣本鄰域上的適應度組合分類器。 Verma 等[16]將數(shù)據集劃分為多個類簇,并由基分類器學習聚類邊界產生置信向量用于分類器集成。 王玲娣等[17]提出了一種自適應集成算法AECA,將測試樣本與各個類簇的概率隸屬特征融合到分類器集成算法中,其中,類簇概率隸屬特征sij的計算公式如下:
式中:dit表示第i個測試樣本和第t個類簇中心之間的距離,K表示類簇數(shù)量。
上述方法均采用K-means 聚類算法對訓練集進行劃分,存在的問題是K-means 聚類算法無法刻畫該樣本點與多類簇之間的概率隸屬特征。 另外,傳統(tǒng)方法并未將基分類器在其他類簇上的分類性能融合到最終的模型集成中,限制了模型性能的提升。
本文的主要貢獻包括以下幾點:①提出一種基于高斯混合模型聚類的訓練集劃分方法,得到有監(jiān)督的訓練集簇,目標是構造差異化的基分類器。②在此基礎上,進一步提出融合近鄰類簇相似度和基分類器局部適應度的動態(tài)加權方法,以獲得具有自適應性的分類器組合。 ③在UCI 數(shù)據集上的實驗結果表明,本文基于監(jiān)督學習的分類器自適應融合方法AEC_SL(adaptive ensembling classifiers based on supervised learning)比傳統(tǒng)集成方法具有更好的分類性能。
AEC_SL 模型主要分為2 個階段:①運用高斯混合模型聚類方法得到有監(jiān)督的訓練集,然后在每一個類簇上使用隨機森林算法[18]訓練得到基分類器;②融合近鄰類簇相似度和基分類器局部適應度對分類器進行動態(tài)加權得到優(yōu)化的自適應分類器組合。
為了克服傳統(tǒng)K-means 聚類的缺陷,本文采用高斯混合模型(Gaussian Mixture Model,GMM)[19]以概率向量的形式描述樣本與多類簇之間的隸屬關系。 假設在高斯混合模型中,輸入樣本服從K個混合的參數(shù)未知的高斯分布,其概率分布模型:
式中:θ=(λ1,λ2,…,λK;θ1,θ2,…,θK),λj是系數(shù),表示高斯分布密度,θk=(μk,εk),μj和εj分別表示高斯分布的均值和協(xié)方差。
本文采用最大期望(expectation-maximization,EM)方式[20]估計K個混合的高斯分布參數(shù)θ,以獲得K個訓練樣本簇,算法步驟如下:
算法1 高斯混合模型聚類算法
輸入:數(shù)據集D={x1,x2,…,xm},其中,x∈R1×d;簇標簽β=[1,2,…,K],K為類簇數(shù)量。
輸出:樣本xi的高斯混合模型概率向量P*i=及所屬的類簇Cβi。
①初始化K個高斯分布的參數(shù)μj和εj;
②由式(3)計算樣本xi屬于第j個高斯分布的概率γij:
③由式(4)、式(5)和式(6)更新每個高斯分布的參數(shù)θ(t):
④重復②和③,直至高斯分布參數(shù)θ收斂為:
⑤由式(8)計算樣本xi所屬的類簇Cβi,從xi的高斯混合模型概率向量中選擇其中最大的概率,并劃入到所屬類簇Cβi中。
在算法1 得到有監(jiān)督的訓練簇集后,本文進一步使用隨機森林算法進行學習生成基分類器Hj(j=1,2,…,K),然后結合近鄰類簇相似度和基分類器的局部適應度進行動態(tài)加權來預測分類標簽。
首先,假設類簇t中樣本的高斯混合模型概率向量為P()=[,…,],測試樣本xe的高斯混合模型概率向量為P(xe)=[γe,1,…,γe,K],則該樣本與簇中某樣本的概率分布相似性如下:
當D[P(),P(xe)]越大時,說明測試樣本與該簇特征越相似。
為了進一步確定測試樣本xe與多個類簇中近鄰樣本的標簽相似特征,我們在每個類簇中選取樣本標簽q下個最近鄰樣本,構成其局部評價集合。 這樣,測試樣本xe與各類簇C的局部區(qū)域集合的標簽相似性向量可表示成=[…],其計算如下:
相應地,每個基分類器也在各類簇上的局部區(qū)域集合上所形成的適應度向量可表示成=如下:
式中:表示基分類器Hj在第t個類簇的局部評價集合上正確分類的樣本數(shù)量;=「×α」,表示第t個類簇在標簽q下的樣本數(shù)量,α表示最近鄰域的樣本比例,「·」表示向上取整。 這樣,K個基分類器在K個類簇局部區(qū)域集合Eqt適應度矩陣表示為:
然后,本文通過結合基分類器的局部適應度矩陣Fq和測試樣本的類簇相似度來計算隨機森林分類器將測試樣本xe預測為標簽q的權重ωq:
式中:表示第i個基分類器將測試樣本xe預測為樣本標簽q的權重。
最后,利用基分類器Hj預測測試樣本xe屬于每個標簽的概率依據下述加權投票策略輸出測試樣本的預測標簽:
上述算法流程如圖1 所示。
圖1 基于動態(tài)加權的多分類器融合算法流程圖
為了評估算法的有效性,實驗選取了UCI(http:/ /archive.ics.uci.edu/ml/datasets.html)中的5個數(shù)據集,其基本信息如表1 所列,其中樣本數(shù)目為690~10 000,特征維數(shù)為14 ~168,不平衡度Musk>German>Electrical>Spambase>Australian。 為了便于討論,本文主要關注數(shù)據二分類問題。
表1 數(shù)據集基本信息
為了評價各算法性能的差異,本文選擇以下代表性的集成算法進行比較:
①AdaBoost(DT)[7],該算法通過迭代調整樣本的權值來關注誤分類的樣本,以此提高基分類器在最終集成時的分類性能。
②Bagging(DT)[8],該算法從訓練數(shù)據集中隨機采樣生成樣本子集,然后用得到的子集訓練基分類器并進行集成。
③RS-Bagging(DT)[11],該算法通過依次對原始訓練集樣本以及特征進行隨機采樣,然后用得到的數(shù)據集訓練基分類器并進行集成。
④RF(Random Forest)[18],該算法通過對訓練集進行采樣和隨機抽取節(jié)點特征來增加分類器之間的差異性。
⑤AECA[17],該算法通過結合測試樣本的類簇概率隸屬特征以及AdaBoost 算法對測試樣本的置信度,動態(tài)調整分類器的權重。
⑥AEC_SL 算法,是本文提出的基于監(jiān)督學習的分類器自適應融合方法。
上述對比算法中,AdaBoost 和Bagging 代表傳統(tǒng)的集成學習算法,RS-Bagging 是融合樣本隨機采樣和特征隨機采樣的集成算法,RF 是對樣本與節(jié)點特征進行隨機采樣來訓練分類器的集成算法,AECA 是結合了K-means 聚類技術和集成策略的算法,而本文的AEC_SL 是基于高斯混合模型聚類以及動態(tài)自適應權重的集成學習算法。
上述算法均通過Python3.8 編程實現(xiàn),實驗平臺:Windows10,16GB Memory,AMD Ryzen 5-3500U with Radeon Vega Mobile Gfx 2.10 GHz。 實驗中,針對訓練集樣本中的不平衡問題,采用SMOTE[21]過采樣策略平衡訓練集中的正負樣本。 AdaBoost 和Bagging 算法的基分類器為決策樹,Bagging 算法的最大采樣率為0.5;RS-Bagging 算法樣本采樣率和特征采樣率分別為0.5;RF 算法包含100 棵決策樹;AECA 算法聚類數(shù)為實驗數(shù)據集的標簽數(shù);本文的AEC_SL 算法的聚類數(shù)量取為實驗數(shù)據集的標簽數(shù),對應表1 中5 個數(shù)據集的參數(shù)α依次取為0.1、0.5、0.2、0.1、0.8,隨機森林包含100 棵決策樹。 實驗采用10 折交叉驗證的方法,即將數(shù)據集分為10份互不相交的子集,其中選取9 份用于訓練模型,1份用于測試模型性能,算法的最終結果是10 個測試結果的平均值。 對于二分類問題,通常構建混淆矩陣用于分析模型性能,混淆矩陣如表2 所列。
表2 混淆矩陣
本文采用的分類性能評價指標如下:
①召回率
召回率體現(xiàn)了分類器對正類樣本的識別能力。
②F1-value
③G-mean
G-mean 以正類和負類樣本的分類正確率為基礎,用于衡量不平衡數(shù)據集的整體分類性能。
表3 給出了6 種算法的Recall 性能對比結果,試驗結果表明本文提出的AEC_SL 算法能有效提高大多數(shù)數(shù)據集的正樣本預測能力, 其中在Australian、German、Spambase 和Electrical 數(shù)據集中,比其他5 種算法的Recall 指標分別提升了1.38%~8.17%、0.52%~2.08%、0.37%~6.66%和4.75%~12.13%。 但在Musk 數(shù)據集上,AEC_SL 算法要低于最好算法0.004,原因在于AEC_SL 算法的基分類器為強分類器,而Musk 數(shù)據集特征維數(shù)較高,易導致分類器過擬合,降低算法的整體性能。
表3 Recall 比較結果
表4 和表5 分別給出了6 種算法的F1-value 和G-mean 性能對比結果,實驗結果表明本文提出的AEC_SL 算法可以有效提高數(shù)據集的整體分類性能,與另外5 種算法相比,在F1-value 指標上最多分別提升了5.87%、1.83%、1.87%、35.76%和7.89%,在G-mean 指標上最多分別提升了5.51%、8.72%、3.61%、15.20%和8.58%。 由此可見,AEC_SL 算法通過定義類簇的局部評價集合,動態(tài)刻畫了近鄰類簇相似度以及分類器對類簇的適應度,使得模型具有更強的自適應性。
表4 F1-value 比較結果
表5 G-mean 比較結果
①有監(jiān)督的訓練集聚類方法對比
為了展現(xiàn)有監(jiān)督的訓練集對集成分類器的性能影響,我們比較了高斯混合模型聚類方法和K-means聚類方法的聚類效果,選擇表1 中的Australian 數(shù)據集作為實例進行實驗,實驗采用Radviz 方法[22]進行聚類效果可視化展示,結果如圖2 所示,其中不同顏色對應著不同的類簇,0 ~13 的數(shù)字標號代表相應的特征。
圖2 訓練集聚類效果
由圖2 不難發(fā)現(xiàn),高斯混合模型得到有監(jiān)督的訓練樣本比傳統(tǒng)K-means 聚類算法,具有更明顯的類簇特征。 接下來,我們進一步對比分別采用GMM聚類和K-means 聚類的訓練集簇對本文分類器性能的影響。
圖3 給出了兩種聚類方法下的G-mean 比較結果,由圖可知,以高斯混合模型作為聚類技術的算法AEC_SL(GMM)性能要優(yōu)于以K-means 作為聚類技術的算法AEC_SL(K-means),在5 個數(shù)據集上分別提升了6.01%、4.75%、5.39%、4.22%和6.98%,原因在于高斯混合模型聚類方法更好地劃分了訓練集,同時細致刻畫了測試樣本的近鄰類簇相似度,從而使得模型的泛化性能得以提升。
圖3 改變聚類方法對AEC_SL 算法分類性能影響
②訓練集的聚簇結構對分類性能的影響
為了分析類簇數(shù)量對AEC_SL 算法性能的影響,實驗進一步對比了AEC_SL 算法在不同聚簇參數(shù)下的G-mean 性能變化,結果如圖4 所示。
從圖4 中發(fā)現(xiàn),隨著聚類數(shù)量的增加,模型性能總體呈現(xiàn)下降的趨勢,對于German 數(shù)據集,AEC_SL算法在類簇數(shù)量等于6 時達到最優(yōu),其后模型性能也逐漸下降,原因在于合適的類簇數(shù)量有利于增加算法的差異性,但過多的類簇數(shù)量將導致用于訓練分類器的樣本數(shù)量減少,從而增加了模型過擬合的風險。
圖4 聚類數(shù)量對AEC_SL 算法分類性能影響
③不同分類器對分類性能的影響
為了分析不同分類器對AEC_SL 算法性能的影響,本文將AEC_SL 算法中的基分類器依次替代為邏輯回歸模型和決策樹模型。 圖5 給出了AEC_SL算法中使用不同基分類器情況下的G-mean 指標對比結果。
圖5 改變基分類器對AEC_SL 算法分類性能影響
由圖5 不難發(fā)現(xiàn),以隨機森林作為基分類器的模型性能要優(yōu)于以邏輯回歸或決策樹作為基分類器的模型,在5 種數(shù)據集上分別提升了11.57% ~12.05%、2.83%~8.73%、9.13%~9.64%、11.47%~15.71%和4.34%~16.19%,原因在于隨機森林作為強分類器,能夠更加充分擬合不同類簇上的數(shù)據,提升基分類器在不同類簇上的分類性能,從而有效提高模型泛化性能。
④算法超參數(shù)α的敏感性分析
在AEC_SL 算法中,最近鄰域的樣本比例α決定了類簇局部評價集合的樣本數(shù)量。 圖6 給出了AEC_SL 算法選取不同超參數(shù)α時的G-mean 分類結果。
由圖6 可知,AEC_SL 算法在數(shù)據集Spambase、Australian、Electrical 中都具有較穩(wěn)定的G-mean 分類性能,即使在較不平衡的Musk 數(shù)據集上變化幅度小于3%,影響較小。 由此可見,AEC_SL 算法的超參數(shù)α在不同數(shù)據集上的分類性能影響較不敏感。
圖6 超參數(shù)對模型分類性能的影響
針對傳統(tǒng)基于采樣的集成分類器存在泛化能力不足問題,本文提出了一種基于監(jiān)督學習的分類器自適應融合方法AEC_SL,該方法采用高斯混合模型聚類算法對訓練集樣本進行劃分,得到有監(jiān)督的樣本簇,然后在每個類簇上使用隨機森林算法得到差異化的分類器,在此基礎上通過融合近鄰類簇相似度和基分類器局部適應度動態(tài)加權得到自適應性的分類器組合。 實驗結果表明,本文提出的AEC_SL 方法比其他傳統(tǒng)分類器集成算法具有更高的分類精度。 在未來工作中,我們將討論如何降低高維數(shù)據集上的特征維度以降低模型中集成算法的訓練時間,使得模型具有更好的高維數(shù)據分類能力。