高慧云,陸慧娟,嚴(yán) 珂,葉敏超
(中國(guó)計(jì)量大學(xué)信息工程學(xué)院,杭州310018)
E-mail:hjlu@cjlu.edu.cn
癌癥是世界上迅速發(fā)展的疾病之一,每年有將近一千四百萬(wàn)人被診斷出患有癌癥[1].對(duì)癌癥可靠和準(zhǔn)確的診斷是成功治愈癌癥的關(guān)鍵,從基因?qū)用鎸?duì)癌癥的診斷能及早發(fā)現(xiàn)患者的病情.目前,將機(jī)器學(xué)習(xí)方法應(yīng)用于癌癥的預(yù)測(cè)是生物信息學(xué)的一個(gè)重要研究領(lǐng)域[2],許多機(jī)器學(xué)習(xí)的方法如K近鄰(K-nearest neighbors,KNN)[3]、支持向量機(jī)(Support vector machine,SVM)[4]、隨機(jī)森林(Random Forest,RF) 等已成功應(yīng)用于基因表達(dá)數(shù)據(jù)的分析.但微陣列基因表達(dá)數(shù)據(jù)集通常存在高維、小樣本、高噪聲并且類別不平衡等問(wèn)題[5],這些問(wèn)題使得對(duì)癌癥基因數(shù)據(jù)的分析變得困難.集成學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)重要研究方向,目前已廣泛應(yīng)用于各個(gè)研究領(lǐng)域[6].Stacking集成是1992年 Wolpert提出的一種新的集成學(xué)習(xí)算法[7].相對(duì)于 Bagging、Adaboost等其他常見(jiàn)的集成算法,Stacking能夠更靈活地將提供類別輸出的學(xué)習(xí)器相結(jié)合.但Stacking在存在兩個(gè)重要的缺陷,即選擇怎樣形式的初級(jí)學(xué)習(xí)器的輸出類型作為次級(jí)學(xué)習(xí)器的輸入,以及如何選擇最佳的次級(jí)學(xué)習(xí)器.對(duì)此Ting[8]等人建議使用基學(xué)習(xí)器的輸出概率作為次級(jí)學(xué)習(xí)器的輸入,并且建議采用多項(xiàng)應(yīng)回歸模型(Multi-response Linear Regression,MLR)作為該模型的次級(jí)學(xué)習(xí)器.而 ES Lee[9]等人分析了邏輯回歸(Logistic Regression,LR)、決策樹(shù)(Decision Tree,DT)、貝葉斯網(wǎng)絡(luò)(Naive Bayes Network,NBN)、SVM、神經(jīng)網(wǎng)絡(luò)(Neural Network,NN)等五種分類器作為Stacking的初級(jí)學(xué)習(xí)者和次級(jí)學(xué)習(xí)器時(shí)的性能變化,并發(fā)現(xiàn)如果以如LR、DT這些較為簡(jiǎn)單的學(xué)習(xí)器作為初級(jí)學(xué)習(xí)器,并且將NN、SVM、NBN等較為復(fù)雜的學(xué)習(xí)器作為次級(jí)學(xué)習(xí)器,Stacking在精度和AUC方面的表現(xiàn)將更加穩(wěn)健.同時(shí),Stacking集成也成功應(yīng)用于多個(gè)領(lǐng)域,如Ekbal[10]提出了結(jié)合特征選擇與Stacking集成的生物醫(yī)學(xué)實(shí)體抽取,使用基于遺傳算法(GA)的特征選擇技術(shù)來(lái)確定支持向量機(jī)(SVM)和條件隨機(jī)場(chǎng)(CRF)分類器的最相關(guān)的特征集.Ail[11]將Stacking集成用于氨基酸序列對(duì)人類乳腺癌的預(yù)測(cè),采用NB、KNN、SVM和RF作為初級(jí)分類器,然后采用遺傳編程(GP)來(lái)開(kāi)發(fā)一個(gè)次級(jí)學(xué)習(xí)器.
本文將采用Stacking集成學(xué)習(xí)對(duì)癌癥基因表達(dá)數(shù)據(jù)進(jìn)行分類研究.其中K近鄰(K-nearest-neighbor,KNN),樸素貝葉斯(nave Bayes,NB)和隨機(jī)森林(Random Forest,RF)將作為Stacking集成的初級(jí)學(xué)習(xí)器.KNN是一種簡(jiǎn)單有效的機(jī)器學(xué)習(xí)算法[12],其核心思想是任何一個(gè)樣本的類通常與其K個(gè)最接近樣本的多數(shù)類一致.因此,KNN基于最近K個(gè)樣本的類標(biāo)簽來(lái)確定類標(biāo)簽.NB是一種基本的監(jiān)督學(xué)習(xí)方法[13].NB是由經(jīng)典數(shù)學(xué)理論繼承而來(lái)的,具有堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)和穩(wěn)定的性能.假設(shè)變量服從一定的概率分布,根據(jù)這些概率分布和觀測(cè)數(shù)據(jù)進(jìn)行最優(yōu)決策.這里,由于決策樹(shù)泛化性能較差,因此我們采用RF[14]代替決策樹(shù)作為Stacking的初級(jí)學(xué)習(xí)器之一.RF是以決策時(shí)為基學(xué)習(xí)器的結(jié)合Bagging[15]和隨機(jī)子空間[16]集成算法,它的主要思想是訓(xùn)練一系列決策樹(shù),通過(guò)booststrap選擇部分?jǐn)?shù)據(jù)集訓(xùn)練一顆樹(shù),并且樹(shù)的每個(gè)節(jié)點(diǎn)屬性從隨機(jī)屬性集合中選擇.
本文提出一種基于差分進(jìn)化的代價(jià)敏感Stacking(DECStacking)集成的基因表達(dá)數(shù)據(jù)分類,采用RF、KNN、NB作為Stacking集成的初級(jí)學(xué)習(xí)器,為防止初級(jí)學(xué)習(xí)器同時(shí)將某樣本分錯(cuò)導(dǎo)致次級(jí)學(xué)習(xí)器繼續(xù)分錯(cuò),將原始數(shù)據(jù)集和初級(jí)學(xué)習(xí)器的輸出類概率同時(shí)作為次級(jí)學(xué)習(xí)器的輸入.針對(duì)癌癥基因表達(dá)數(shù)據(jù)類別不平衡的問(wèn)題,采用代價(jià)敏感的SVM作為次級(jí)學(xué)習(xí)器.并采用差分進(jìn)化對(duì)這些學(xué)習(xí)器的參數(shù)進(jìn)行優(yōu)化,以解決Stacking的異質(zhì)學(xué)習(xí)器較多,參數(shù)難以手動(dòng)調(diào)節(jié)的問(wèn)題.實(shí)驗(yàn)證明,相對(duì)于傳統(tǒng)的 Stacking、RF、Adaboost、GBDT 等集成算法,DE-CStacking算法為癌癥基因表達(dá)數(shù)據(jù)提供了一種更有效的分類方法.
Stacking,是 Stacked Generalization的簡(jiǎn)稱.Stacking集成的主要思想是采用多個(gè)初級(jí)學(xué)習(xí)器對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練,再利用一個(gè)次級(jí)學(xué)習(xí)器,也稱為元學(xué)習(xí)器,對(duì)初級(jí)學(xué)習(xí)器的輸出進(jìn)行學(xué)習(xí).Stacking集成的詳細(xì)步驟如圖1所示,以5折交叉驗(yàn)證為例,將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集,一個(gè)初級(jí)學(xué)習(xí)器的5次訓(xùn)練集的預(yù)測(cè)結(jié)果在最終將作為次級(jí)學(xué)習(xí)器的訓(xùn)練集,并且將5次訓(xùn)練集訓(xùn)練出來(lái)的模型對(duì)測(cè)試集進(jìn)行測(cè)試,得到的結(jié)果將作為次級(jí)學(xué)習(xí)器的測(cè)試集.
圖1 Stacking集成的5折交叉驗(yàn)證的詳細(xì)步驟Fig.1 Detailed steps for 5-fold cross-validation of stacking ensemble
現(xiàn)實(shí)生活中很多數(shù)據(jù)都是不平衡的,癌癥基因表達(dá)數(shù)據(jù)也是一種不平衡數(shù)據(jù),這種不平衡將導(dǎo)致分類性能較差[17].代價(jià)敏感(Cost-Sensitive)技術(shù)在訓(xùn)練過(guò)程中加入誤分類代價(jià),假設(shè)標(biāo)簽y={0,1},總樣本數(shù)為m+n個(gè),其中標(biāo)簽為1的樣本有m個(gè),標(biāo)簽為0的樣本有n個(gè),那么類別為1和類別為0的懲罰項(xiàng)C可分別表示為:
這樣如果某一類樣本越多,那么這一類的懲罰項(xiàng)就越小.
SVM是一種泛化能力較強(qiáng)的監(jiān)督學(xué)習(xí)模型[18].將代價(jià)敏感帶入SVM,對(duì)不同的類分配不同的懲罰系數(shù),少數(shù)類被分配到的代價(jià)將比多數(shù)類要高.因此SVM總的誤分類代價(jià)可以被分成兩個(gè)表達(dá)式,則代價(jià)敏感的SVM(Cost-Sensitive SVM,CS-SVM)可表示為:
在該方法中,對(duì)SVM軟間隔目標(biāo)函數(shù)進(jìn)行修正,以分配兩個(gè)誤分類代價(jià),C1和C0分別是正、負(fù)類實(shí)例的懲罰項(xiàng).w和b分別為最優(yōu)超平面的參數(shù).
差分進(jìn)化(Differential evolution,DE)是由 Storn和Price[19]提出的一種簡(jiǎn)單有效的進(jìn)化算法.DE是一種基于群體的隨機(jī)搜索方法,用于連續(xù)搜索領(lǐng)域的全局優(yōu)化問(wèn)題.幾年來(lái),DE在機(jī)器學(xué)習(xí)領(lǐng)域得到了廣泛應(yīng)用.與遺傳算法不同的是,DE采用差分策略來(lái)實(shí)現(xiàn)個(gè)體之間的變異.具體而言,DE通過(guò)在種群中隨機(jī)選擇的兩個(gè)向量縮放后與加上待變異個(gè)體向量Xi產(chǎn)生突變向量Vi:
隨機(jī)數(shù) r1,r2,r3∈{1,2,3,...p},縮放因子!>0.
交叉操作是DE中的另一個(gè)重要步驟,子代通過(guò)向量載體vi和上一代種群向量離散重組獲得:
迭代的最后一步是通過(guò)選擇算子選擇下一代中比較好的一個(gè):
通過(guò)從種群中隨機(jī)選擇兩個(gè)個(gè)體計(jì)算其之間的差異,DE實(shí)際上是估計(jì)該區(qū)域間的梯度(而不是某個(gè)點(diǎn)).變異算子可以自適應(yīng)調(diào)整步長(zhǎng)和方向,選擇算子的局部指標(biāo)也快速高效.因此,這些特性可以使DE收斂速度更快,較其他啟發(fā)式算法也更穩(wěn)定.
本文將差分進(jìn)化對(duì)Stacking集成的初級(jí)學(xué)習(xí)器和次級(jí)學(xué)習(xí)器參數(shù)進(jìn)行優(yōu)化,考慮到癌癥基因數(shù)據(jù)集是不平衡數(shù)據(jù),本文采用實(shí)驗(yàn)結(jié)果的AUC(Area Under ROC Curve)值[20]作為DE的適應(yīng)度函數(shù).DE的總體流程如圖2所示.
圖2 差分進(jìn)化流程圖Fig.2 Flowchart of differential evolution
圖3 DE-CStacking總體流程圖Fig.3 Flowchart of DE-CStacking
本文采用NB、KNN和RF這三種不同類型的分類器作為初級(jí)學(xué)習(xí)器.針對(duì)基因表達(dá)數(shù)據(jù)類別不平衡的問(wèn)題采用代價(jià)敏感的SVM作為次級(jí)學(xué)習(xí)器.在傳統(tǒng)的Stacking集成中是將初級(jí)學(xué)習(xí)器的輸出作為次級(jí)學(xué)習(xí)器的輸入,我們通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)將原始數(shù)據(jù)集和初級(jí)學(xué)習(xí)器輸出類的概率同時(shí)作為次級(jí)學(xué)習(xí)機(jī)的輸出分類效果最好,因此本文將采用原始數(shù)據(jù)集和初級(jí)學(xué)習(xí)器輸出類的概率同時(shí)作為次級(jí)學(xué)習(xí)機(jī)的輸出.同時(shí)針對(duì)Stacking集成中采用多種不同的學(xué)習(xí)器,其參數(shù)較多難以調(diào)節(jié)的問(wèn)題,本文采用DE對(duì)多個(gè)參數(shù)進(jìn)行調(diào)節(jié).實(shí)驗(yàn)流程圖3所示.
為證實(shí)DE-CStacking算法的有效性,本文從公開(kāi)的UCI數(shù)據(jù)集選取乳腺癌Breast、肺癌Lung、卵巢癌Ovarian和前列腺癌prostate四種癌癥基因數(shù)據(jù)進(jìn)行仿真實(shí)驗(yàn).由于存在癌癥基因數(shù)據(jù)集樣本數(shù)小,維度高的問(wèn)題,在不進(jìn)行處理的情況下能到達(dá)上萬(wàn)維,因此在對(duì)數(shù)據(jù)進(jìn)行分析之前要先對(duì)數(shù)據(jù)集進(jìn)行ReliefF[21]降維,降維后的數(shù)據(jù)集基本信息如表1所示.
對(duì)于不平衡數(shù)據(jù),分類精度并不是很好的檢驗(yàn)算法性能的度量方式.由于基因表達(dá)數(shù)據(jù)是不平衡數(shù)據(jù),因此本文以AUC(Area Under ROC Curve)值作為主要的評(píng)價(jià)指標(biāo),AUC值表示的是ROC曲線下的的面積.同時(shí)F1值[22]和準(zhǔn)確率也將作為評(píng)價(jià)指標(biāo)對(duì)算法進(jìn)行評(píng)估,如公式(6)-公式(7)所示:
表1 數(shù)據(jù)集信息表Table 1 Information of gene data sets
其中TP、TN分別為真正例和真反例,n為樣例總數(shù).
表2 不同縮放因子下的AUC值Table 2 AUC values under different mutation rates
表3 不同交叉率下的AUC值Table 3 AUC values under different crossover rates
本文提出的DE-CStacking算法將在乳腺癌Breast、肺癌Lung、卵巢癌Ovarian和前列腺癌Prostate四種癌癥基因數(shù)據(jù)下采用五折交叉驗(yàn)證驗(yàn)證算法的有效性,每個(gè)數(shù)據(jù)集被劃分為五個(gè)子集,其中四個(gè)被作為訓(xùn)練數(shù)據(jù)集,而剩下的被用作驗(yàn)證數(shù)據(jù)集.由于該算法采用的DE對(duì)Stacking集成的初級(jí)學(xué)習(xí)器和次級(jí)學(xué)習(xí)器的參數(shù)進(jìn)行優(yōu)化,這里首先要確定DE算法的交叉率和縮放因子.選擇在Breast和Ovarian兩個(gè)數(shù)據(jù)集下進(jìn)行測(cè)試,設(shè)交叉率為0.5,種群迭代次數(shù)為10,縮放因子在不同值下的AUC值,結(jié)果如表2所示.從表2可以看出,當(dāng)DE的縮放因子為0.3時(shí),DE-CStacking算法的AUC值最高.因此取縮放因子為0.3,種群迭代次數(shù)為10,取不同交叉率值進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表3所示.從表3可以看出,當(dāng)交叉率為0.5時(shí),DECStacking算法的AUC值最高.因此在以下實(shí)驗(yàn)中將設(shè)置DE算法中的縮放因子為0.3,交叉率為0.5.
通過(guò)實(shí)驗(yàn)對(duì)比,其他對(duì)比算法參數(shù)設(shè)置如下:KNN算法K值為15;RF弱學(xué)習(xí)器的最大迭代次數(shù)為15,決策樹(shù)最大深度為8;SVM的懲罰參數(shù)為1,選用RBF核函數(shù),gamma值為0.5.在DS-CStacking算法中采用DE算法對(duì)初級(jí)學(xué)習(xí)器和次級(jí)學(xué)習(xí)器的參數(shù)進(jìn)行優(yōu)化,對(duì)DE對(duì)各個(gè)學(xué)習(xí)器調(diào)整的參數(shù)分別為:
1)KNN算法的K值;
2)RF算法弱學(xué)習(xí)器的最大迭代次數(shù),即最大決策樹(shù)的個(gè)數(shù);
3)RF算法下決策樹(shù)的最大深度;
4)SVM的懲罰參數(shù)C;
5)SVM的RBF核函數(shù)的gamma值.
將DE-CStacking算法與傳統(tǒng)的Stacking算法、利用DE對(duì)Stacking的初級(jí)學(xué)習(xí)器和次級(jí)學(xué)習(xí)器的參數(shù)進(jìn)行優(yōu)化的DE-Stacking、嵌入代價(jià)敏感的CStacking,以及以初級(jí)學(xué)習(xí)器的輸出類別作為次級(jí)學(xué)習(xí)器的輸入的DE-CStacking1和以初級(jí)學(xué)習(xí)器的輸出類的概率作為次級(jí)學(xué)習(xí)器的輸入的DECStacking2做對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表4所示.
從表4可看出,將原始數(shù)據(jù)集和初級(jí)學(xué)習(xí)器輸出類的概率同時(shí)作為次級(jí)學(xué)習(xí)機(jī)的輸出的DE-CStacking算法比單獨(dú)使用初級(jí)學(xué)習(xí)器的輸出類的概率作為次級(jí)學(xué)習(xí)器的輸入分類效果要好,同時(shí),以初級(jí)學(xué)習(xí)器的輸出類的概率作為次級(jí)學(xué)習(xí)器的輸入總體分類效果要比以初級(jí)學(xué)習(xí)器的輸出類別作為次級(jí)學(xué)習(xí)器的輸入好.
表4 每個(gè)數(shù)據(jù)集在不同Stacking算法下的AUC值Table 4 AUC values for each data set under different stacking algorithms
表5 每個(gè)數(shù)據(jù)集在不同算法下的評(píng)價(jià)指標(biāo)Table 5 Evaluation indicators for each data set under different algorithms
將DE-CStacking與傳統(tǒng)的集成算法Adaboost、Bagging、GBDT、RF以及非集成算法SVM做對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表5所示.從表5可以看出,DE-CStacking算法在各方面都要比其他算法效果好.
圖4 breast數(shù)據(jù)集下DE不同迭代次數(shù)的AUC值Fig.4 AUC values for different iterations of DE under the breast data set
圖5 ovarian數(shù)據(jù)集下DE不同迭代次數(shù)的AUC值Fig.5 AUC values for different iterations of DE under the ovarian data set
圖6 lung數(shù)據(jù)集下DE不同迭代次數(shù)的AUC值Fig.6 AUC values for different iterations of DE under the lung data set
圖7 prostate數(shù)據(jù)集下DE不同迭代次數(shù)的AUC值Fig.7 AUC values for different iterations of DE under the prostate data set
表6 每個(gè)數(shù)據(jù)集在不同算法下的時(shí)間對(duì)比Table 6 Time comparison of each data set under different algorithms
圖4-圖7是在不同數(shù)據(jù)集下DE-CStacking算法隨著迭代次數(shù)AUC值的曲線變化,可以看出隨著迭代次數(shù)的增加逐漸收斂,結(jié)果不再波動(dòng).
表6是不同數(shù)據(jù)集下DE-CStacking算法與其他算法的時(shí)間比較,可以看DE-CStacking與DE-Stacking算法耗時(shí)較長(zhǎng),這是因?yàn)镈E算法迭代耗時(shí)較長(zhǎng).
采用機(jī)器學(xué)習(xí)方法對(duì)基因表達(dá)數(shù)據(jù)進(jìn)行分析是目前生物醫(yī)學(xué)領(lǐng)域的一個(gè)重要研究方向.本文提出一種DE-CStacking集成的基因表達(dá)數(shù)據(jù)分類算法,該算法是建立在傳統(tǒng)的Stacking集成算法基礎(chǔ)上,針對(duì)癌癥基因表達(dá)數(shù)據(jù)的類別不平衡的特征,采用嵌入代價(jià)敏感的SVM作為Satcking集成的次級(jí)分類器.針對(duì)Stacking的初級(jí)集成是異質(zhì)的,不同學(xué)習(xí)器之間的參數(shù)難以調(diào)節(jié),采本文用DE算法對(duì)不同學(xué)習(xí)器參數(shù)進(jìn)行優(yōu)化.實(shí)驗(yàn)證明,DE-CStacking算法有效提高了基因表達(dá)數(shù)據(jù)的分類結(jié)果.同時(shí),通過(guò)實(shí)驗(yàn)我們還得出將原始數(shù)據(jù)集加入到次級(jí)學(xué)習(xí)器的輸入中比單獨(dú)使用初級(jí)學(xué)習(xí)器的輸出效果要好.但是相對(duì)于其他算法,DE-CStacking算法耗時(shí)相對(duì)較長(zhǎng),因此如何加快DE算法收斂速度提高DE-CStacking算法的效率將是我們的進(jìn)一步研究方向.
小型微型計(jì)算機(jī)系統(tǒng)2019年8期