李婧惟 劉 艷 陸 震
哈爾濱醫(yī)科大學衛(wèi)生統計學教研室,150081 黑龍江 哈爾濱
微陣列基因表達數據分析是基因組學領域研究的重要方向之一,在疾病的亞群分析、診斷預后、類別預測等方面有著廣泛的應用[1]?;虮磉_數據通常具有樣本量小、特征變量多、類別分類不平衡等特點,因此給研究者的分析應用帶來了很大的挑戰(zhàn)。近年來,隨著機器學習領域地快速發(fā)展以及基因組學領域研究地不斷深入,分類算法被廣泛應用于基因表達數據的分析中[2]。但已有的研究主要集中在變量篩選方法的比較和分析上[3-4],或者提出新的分類算法[5-6],尚缺少對基因表達數據中不平衡類分布對分類算法選擇影響的研究[7]。本研究重點關注二分類樣本的類別不平衡比例,利用真實數據評估了7種分類器在類不平衡數據上的表現,并比較單次分類結果和重復100次的平均分類結果,分析不同分類算法對不平衡基因表達數據預測性能的影響,旨在為后續(xù)相關模型的建立提供理論基礎。
本研究使用2個公開的基因表達數據集:結腸癌數據集(colon)和白血病數據集(leukemia)。結腸癌數據集來源于Affymetrix oligonucleotide Hum 6 000平臺,剔除污染樣本后,共得到腫瘤樣本37個(即陽性樣本量Np=37)和正常樣本20個(即陰性樣本量Nn=20)[8],構成總樣本57例;該數據集可從Bioconductor的colonCA包中下載。白血病數據集來源于Affymetrix human 6 800平臺的72個樣本,包含47個急性淋巴細胞白血病(acute lymphoblastic leukemia,ALL)樣本、25個急性髓系白血病(acute myeloid leukemia,AML)樣本及7 129個基因表達值[9];且根據細胞來源將ALL樣本進一步分組:38個B細胞來源的ALL(B-lineage ALL,ALLB)樣本和9個T細胞來源的ALL(T-lineage ALL,ALLT)樣本;該數據集可從Bioconductor的golubEsets包中下載。
1.2.1數據特征
類分布,即數據集中各類所占的比例,在分類中起關鍵作用。當一個類(通常指感興趣的概念,即正類或少數類)在數據集中沒有得到充分表達時,就會出現類不平衡問題。類不平衡數據在生物醫(yī)學領域中很常見,如癌癥診斷、疾病亞型分析等[10-11]。故本研究模擬了多種類分布比例情況進行分析,通過從完整數據集中隨機抽取樣本子集,得到的陽性樣本占比不同的數據集作為訓練集,并在平衡數據集上進行測試,以比較不同程度的類不平衡對分類算法選擇的影響。
按陽性樣本量占比從結腸癌數據集中抽取樣本,得到類分布不同的10組數據集,每組又放回重復抽取100次,并比較單次抽樣分類與100次抽樣平均的分類效果。其中,訓練集為不平衡樣本(Nn=10,Np=10,15,20,30,35;Nn=15,Np=5,10,15,25,30),共10組;測試集為平衡樣本(Nn=20,Np=20)。見表1。
表1 結腸癌數據集中樣本量分布
此外,為增強最終結果的可靠性,從公共數據庫獲取白血病數據集對文中的樣本數目進行拓充。對包含ALL和AML患者的樣本進行分類,并進一步對ALL按來源分為B細胞來源ALLB和T細胞來源ALLT兩類。數據集分為訓練集和測試集,數據集整體及訓練集樣本量類分布見表2。
表2 白血病數據集及訓練集樣本量類分布
1.2.2分類算法的選擇
MAQC-II倡議指出,分類功能是解釋基因表達類別預測性能之間差異的變量之一[12]。目前處理不平衡數據的策略主要包括:經典算法、基于數據處理層面的算法、代價敏感學習與集成算法。郭海祥等[5]回顧了近10年來發(fā)表的517篇涉及不平衡數據研究的相關論文,初步統計了近年來文獻中使用頻率較高的分類算法,其中適用于分類研究且引用量大于10篇的算法有支持向量機(support vector machine,SVM)、決策樹(C4.5 decision tree,C4.5)、樸素貝葉斯(naive bayes, NB)、隨機森林(random forest,RF)和K-最近鄰算法(K-nearest neighbour,KNN)。Mikel Gala等[13]回顧了二分類不平衡數據集框架中的集成技術的研究進展,比較了不同類型集成算法分類性能的差異,并初步推薦了幾種表現較好的算法,如經典集成算法AdaBoost、Bagging等?;谝陨显颍狙芯窟x用SVM、C4.5、NB、RF、KNN、AdaBoost、Bagging 7種算法進行分析,用于比較分類算法的性能。
支持向量機SVM[14]是通過尋找滿足分類要求的最優(yōu)超平面,是降維的有效手段。決策樹C4.5[15]是ID3算法的一種擴展,以信息增益率為重點,提高了分類的準確率,并一定程度上避免了過擬合。樸素貝葉斯NB[16]簡化了貝葉斯算法,通過假定給定目標值時屬性之間相互條件獨立,極大地簡化了貝葉斯方法的復雜性。隨機森林RF[17]是決策樹的集合,每棵樹都建立在從完整數據中抽取的bootstrap樣本上,通過隨機選取尋找每個節(jié)點的最佳分割。K-最鄰近KNN[18]是一種簡單的非參數方法,根據特征空間中的k個最相似樣本的類別來判斷未知樣本的分類,在類邊界比較整齊的情況下分類準確率很高。AdaBoost[19]是一種迭代算法,將多個弱分類器經過線性組合成一個強分類器,可以提高分類的準確率;Bagging算法[20]是通過訓練多個分類器并根據輸出結果投票,投出最多票數的類別或者類別之一為最終類別。
1.2.3評價指標
本研究主要選用靈敏度和特異度作為評價指標,并結合了AUC值,比較類分布不平衡時不同分類算法對類別預測效果。每組數據集重復100次時共得到100組靈敏度和特異度,可求每組靈敏度和特異度的均值及標準差,使結果更具普遍性。
以上所有數據整理、算法應用等均由R軟件實現,通過caret包構建算法,pastecs包求評價指標的均值及標準差,并用ggplot2包繪制分類結果變化趨勢圖。
研究使用真實數據集來評估類不平衡對基因表達微陣列數據集分類的影響,結果顯示分類器的分類效果受訓練集的類分布不平衡的影響。
通過從結腸癌數據集中按表1中樣本量分布隨機抽取樣本子集,得到了10組不同程度的類不平衡數據集。
2.1.1單次分類結果分析
將7種算法分別在陽性樣本占比依次為0.50,0.60,0.67,0.75,0.78(陰性性樣本量為10,陽性樣本量依次為10,15,20,30,35)的訓練集上訓練,并在陽性樣本占比為0.50(陰性樣本量為20,陽性樣本量為20)的測試集上進行驗證,得到靈敏度、特異度結果。見圖1。
圖1 Np=10且單次抽樣時7種分類算法的靈敏度和特異度
圖1中觀察7種分類結果靈敏度發(fā)現,隨樣本量的增加,NB、KNN、SVM算法結果呈明顯上升趨勢,AdaBoost、Bagging、C4.5、RF算法結果出現先下降再上升的趨勢,其中RF算法整體表現較好;在7種算法分類結果特異度比較中,隨樣本量增加均呈下降趨勢,其中KNN下降趨勢最明顯,且整體表現較差。
將7種算法分別在陽性樣本占比依次為0.25,0.40,0.50,0.63,0.67(陰性性樣本量為15,陽性樣本量依次為5,10,15,25,30)的訓練集上訓練,并在陽性樣本占比為0.5(陰性樣本量為20,陽性樣本量為20)的測試集上進行驗證,得到靈敏度、特異度結果。見圖2。
圖2中觀察7種分類結果靈敏度發(fā)現,隨訓練集中陽性樣本量的增加,7種分類算法的靈敏度整體均呈上升趨勢,其中KNN算法結果變化趨勢較為明顯;在分類結果特異度比較中,SVM、KNN算法結果波動較大,Bagging、C4.5算法結果呈明顯下降趨勢,AdaBoost、NB、RF算法結果表現較為穩(wěn)健且表現較好。
2.1.2重復100次后結果分析
將7種算法分別在陽性樣本占比依次為0.50,0.60,0.67,0.75,0.78(陰性樣本量為10,陽性樣本量依次為10,15,20,30,35)的訓練集上訓練,并在陽性樣本量占比為0.50(陰性樣本量為20,陽性樣本量為20)的測試集上進行驗證,重復100次,得到平均靈敏度、特異度結果。見圖3。
圖3 Np=10且重復抽樣時7種分類算法的平均靈敏度和特異度
將7種算法分別在100個陽性樣本占比依次為0.25,0.40,0.50,0.63,0.67(陰性性樣本量為15,陽性樣本量依次為5,10,15,25,30)的訓練集上訓練,并在陽性樣本量占比為0.50(陰性樣本量為20,陽性樣本量為20)的測試集上進行驗證,重復100次,得到平均靈敏度、特異度結果。見圖4。
圖4 Np=15且重復抽樣時7種分類算法的平均靈敏度和特異度
從圖3、圖4中可以得出與圖1、圖2中相似的規(guī)律。隨著訓練集中陽性樣本量的增加,分類算法的靈敏度增加,而特異度降低,針對陽性樣本學習效果逐漸增強。圖3中AdaBoost算法和NB算法表現較為穩(wěn)健,隨訓練集陽性樣本占比變化并不十分明顯;Bagging、C4.5、KNN和RF算法分類表現波動較大,靈敏度隨陽性樣本占比增加出現明顯增長趨勢,而特異度則呈現明顯下降趨勢;而SVM整體在類不平衡訓練集中分類效果較差,僅在平衡訓練集上表現良好。
單次結果分析和重復結果分析,均可以發(fā)現評價指標隨類分布變化的明顯趨勢,但單次分析中結果存在一定偶然性。比如Np=15、Nn=5且單次抽樣時,SVM靈敏度為1,但在多次抽樣時SVM平均靈敏度幾乎為零。
此外,為分析不同樣本量的情況下各個分類算法的分類效果,從公開數據庫中下載白血病數據集進行補充分析。針對AML和ALLT分類的數據集中,AML為少數類,其在樣本中占比為0.35,7種分類算法對該數據集進行分類。針對ALLT和ALLB分類的數據集中,ALLT為少數類,其在樣本中占比為0.19,7種分類算法對該數據集進行分類。在特異度和靈敏度結果比較時,發(fā)現有多種算法結果未發(fā)現明顯區(qū)別,故額外比較了7種分類算法進行分類的AUC值。針對AML分類的數據集中,NB和SVM算法分類效果相同,且均最優(yōu);Bagging算法分類效果僅次于前兩者;KNN算法分類結果靈敏度較好,但特異度和AUC值較差;AdaBoost和RF算法整體表現較為一般,而C4.5算法整體表現最差。見圖5。
圖5 7種分類算法對AML和ALL數據集分類結果
而在針對ALLT分類的數據集中,AdaBoost、NB、C4.5和RF算法表現均很好,KNN算法分類效果其次;表現較差的是Bagging和SVM算法,靈敏度為0。在2種類分布情況下,NB算法整體表現最優(yōu),其他分類算法分類效果發(fā)生變化,C4.5、RF和SVM算法變化明顯,前2者分類效果明顯增強,后者明顯減弱。見圖6。
圖6 7種分類算法對ALLT和ALLB數據集分類結果
本研究結果表明,一些經常用于高維數據類預測的分類算法對類分布不平衡非常敏感,且?guī)缀跛械姆诸愃惴ǜ讓⑿聵颖绢A測為訓練樣本中的多數類。這可能是因為新樣本的類別概率取決于該類在訓練集中的學習情況,并且隨著樣本量等的變化,該概率會進一步向主要類傾斜。因此,當分類器在類不平衡數據上進行訓練時,對不同類的預測精度差異較大,且此時整體的預測精度并不能代表分類器的分類效果。
本研究針對結腸癌數據集進行分析,在前期單次分類的結果中發(fā)現具有一定隨機性,構建訓練集的樣本量、樣本的類分布比例、被抽取樣本特征及分類算法的選擇均會影響最終分類效果。故通過按一定比例抽取訓練集并重復100次進行分類,比較分類結果的靈敏度和特異度的均值及誤差,可以明顯發(fā)現多次重復分類與單次分類結果的差異。在單次分析中,AdaBoost算法十分不穩(wěn)定,但在多次重復分析中,AdaBoost算法較好,不易受類分布的影響。此外,SVM作為傳統算法,廣泛應用,但結腸癌數據分析中發(fā)現該算法表現較差,可能與該數據特征有關,影響了分類性能。故有理由認為經典分類并不一定在所有數據集上表現良好。
在針對白血病數據集研究中發(fā)現,類分布不同影響分類算法的分類結果,但與結腸癌數據中表現不同,部分算法分類效果出現明顯增強。結合文獻研究發(fā)現,分類算法的分類效果與數據本身特征相關[12,21],提示可能是結腸癌和白血病數據中某些數據特征影響分類結果。
在實際數據分析中,通常是按照個人習慣或者算法流行性來選擇分類算法,而忽視了數據本身的特征,這樣可能會造成結果的偏倚及信息的損失。如果選擇多種算法同時進行,不僅會花費大量的時間,同時也較難保證結果的穩(wěn)定性。本研究在2個公開數據集上進行了討論分析,樣本量略有不足,有待于加大樣本量進一步深入研究,在更多不平衡比例的數據上進行分析,并引入數據本身的特征,嘗試構建分類算法和數據特征對分類效果影響的預測模型,為不平衡基因表達數據分類算法選擇提供參考。