李 勇,陳思萱,賈 海,王 霞
(1.西北師范大學計算機科學與工程學院,甘肅 蘭州 730070;2.甘肅省人民醫(yī)院藥劑科,甘肅 蘭州 730000)
健康是人類全面發(fā)展的基礎(chǔ)。全球乳腺癌的發(fā)病率自20世紀70年代末開始呈上升趨勢,乳腺癌在女性患者中的發(fā)病趨勢更為突出。美國一項調(diào)查顯示,2016年有1 685 210例新癌癥病例和595 690例癌癥死亡,其中乳腺癌是20~59歲女性的主要癌癥死亡原因[1]。近年,我國乳腺癌發(fā)病率的增長速度高于發(fā)達國家的,嚴重影響婦女健康,為此中華全國婦女聯(lián)合會、衛(wèi)生部于2009年開始積極實施與推廣全國農(nóng)村婦女“兩癌”篩查項目,并于2016年全面鋪開,幫助婦女提高保健、預防意識,降低乳腺癌發(fā)病率[2]。
在進行檢查時,細胞的大小、形狀、腫塊厚度等特征被認為是區(qū)分腫瘤良性或惡性的標準,而年齡、腫瘤大小、絕經(jīng)情況、受侵淋巴結(jié)數(shù)、是否放療等特征被認為是影響乳腺癌是否復發(fā)的因素。醫(yī)生很難根據(jù)復雜的特征數(shù)據(jù)人工地確定乳腺癌是否為良性以及乳腺癌復發(fā)情況,但計算機技術(shù)可以對現(xiàn)有數(shù)據(jù)進行分析和預測?,F(xiàn)有機器學習方法在醫(yī)學領(lǐng)域的應用幫助醫(yī)務工作者提高了工作效率,減輕了工作負擔。人們在將計算機技術(shù)應用到醫(yī)學領(lǐng)域的同時也在不斷嘗試對傳統(tǒng)的算法進行改進。集成策略[3]將傳統(tǒng)單一算法訓練器進行整合,從而達到更好的效果。
在已有研究中,Latha等人[4]使用多種特征的組合作為訓練集,采用集成策略對心臟病發(fā)病率進行預測,該方法將弱分類器的預測準確率提高了7%,實驗準確率在84%左右,但沒有對算法參數(shù)進行優(yōu)化。Bennett等人[5]提出一種自適應的半監(jiān)督集成方法,該方法可與Cost-Sensitive分類算法結(jié)合進行二分類或多分類任務。Street等人[6]在大規(guī)模數(shù)據(jù)上使用啟發(fā)式替換策略組合多個弱分類器,建立針對大型流數(shù)據(jù)分類的快速算法,效果較好。Muzammal等人[7]將無線人體穿戴式網(wǎng)絡BSN(Body Sensor Network)中獲取的數(shù)據(jù)輸入Ensemble分類器中,以進行早期心臟病的預測,實驗達到了較高準確率。Fitriyani等人[8]提出了一種基于集成學習的疾病預測模型DPM(Disease Prediction Model)對糖尿病和高血壓進行監(jiān)測,以降低疾病突發(fā)帶來的風險。
目前研究者們已經(jīng)使用深度學習或機器學習方法對不同的乳腺癌數(shù)據(jù)進行研究,但還未將多個機器學習分類器進行結(jié)合,達到強分類的效果。Khan等人[9]使用遷移學習和深度學習相結(jié)合的方法對乳腺癌細胞進行檢測和分類,達到了較高的準確率。Abbass等人[10]提出基于微分進化算法和局部搜索的神經(jīng)網(wǎng)絡方法進行乳腺癌的預測,其測試準確率的標準差比Fogel等人[11]的降低了0.459。Abdikenov等人[12]使用進化算法NSGA III(Non-dominated Sorting Genetic Algorithm-Ⅲ)初始化深度神經(jīng)網(wǎng)絡并優(yōu)化其超參數(shù)后,用于乳腺癌預后。Liu等人[13]提出端到端的深度學習系統(tǒng),結(jié)合全卷積網(wǎng)絡提取乳腺區(qū)域數(shù)據(jù),其結(jié)果與病理學家所做的診斷有較高的相關(guān)性。Lu等人[14]提出一種新穎的基于遺傳算法的在線梯度增強GAOGB(Genetic Algorithm-based Online Gradient Boosting)模型,通過在線學習[15]技術(shù),實時預測乳腺癌的診斷和預后。以上研究表明,將人工智能應用于醫(yī)療領(lǐng)域是實用且行之有效的。
本文基于C-AdaBoost模型對乳腺癌疾病數(shù)據(jù)進行分析,主要研究成果如下:
(1)通過大量乳腺癌相關(guān)數(shù)據(jù)分析發(fā)現(xiàn),集成學習模型的預測準確率明顯優(yōu)于SVM、KNN等機器學習模型的預測準確率;
(2)使用逐步回歸法發(fā)現(xiàn)了乳腺癌數(shù)據(jù)集最優(yōu)特征組合;
(3)使用C-AdaBoost找到模型最優(yōu)學習率,實驗準確率較傳統(tǒng)機器學習以及常用集成優(yōu)化組合模型的準確率提高至多19.5%。
根據(jù)數(shù)據(jù)集特征,本文在數(shù)據(jù)預處理階段使用SQL腳本和歸一化方法對數(shù)據(jù)進行處理,然后使用C-AdaBoost模型對多個弱分類器進行訓練,以達到最終分類效果,本文實驗的總體思路如圖1所示。
Figure 1 Overall framework of the experiment圖1 本文實驗總體思路框架
數(shù)據(jù)和特征決定了機器學習所能取得效果的上限,而模型和算法只是使效果逼近這個上限[16]。逐步回歸[17]是一種使用線性回歸模型選擇自變量的方法,其基本思想是將變量逐個引入模型,每引入一個變量后都要進行F檢驗,并對已選入的變量逐個進行t檢驗。當引入的變量對當前結(jié)果影響不顯著時,剔除該變量,以確保最后得到最優(yōu)的變量集合。逐步回歸法中,前向法選擇變量的具體步驟如算法1所示。
算法1逐步回歸前向算法
輸入:特征自變量X1,X2,…,Xp,i∈{1,…,p},回歸系數(shù)βi,偏置ε,顯著性水平α,最優(yōu)屬性集合Attribute。
輸出:回歸方程Y。
步驟1建立一元回歸模型。
fori∈{1,2,…,p}do
Y=β0+βiXi+ε
(1)
endfor
步驟2計算變量Xi相應回歸系數(shù)的F檢驗的值,并求最大值。
fori∈{1,2,…,p}do
(2)
endfor
步驟3對給定的顯著性水平α,記相應的臨界值為F(1)。
Attribute={Xi1}
fori∈{2,…,p}do
(3)
endfor
步驟5對給定的顯著性水平α,記相應的臨界值為F(2)。
Attribute={Xi1,Xi2}
步驟6考慮因變量子集(Xi1,Xi2,Xk)的回歸,其中,Xk∈Attribute,k∈{1,…,p},重復步驟4和步驟5,最終得到特征回歸方程:
Y=βiAttribute+ε
(4)
集成策略從概念上講并非是單個的機器學習算法,而是通過結(jié)合多個機器學習器來完成學習任務,主要思想是利用多個訓練器進行訓練,并要求這些訓練器都是弱訓練器,然后將這些訓練器進行組合,生成一個強訓練器,進而達到比弱訓練器更好的預測效果。
2.3.1 Bagging算法描述
Bagging算法[18]又稱袋裝算法,該算法中各個弱訓練器之間不存在強依賴關(guān)系,可并行化地執(zhí)行訓練,其主要思想是分別訓練多個不同的模型,然后使用投票法、平均法等對各個模型的輸出進行綜合決策。算法流程如圖2所示。
Figure 2 Process of Bagging algorithm圖2 Bagging算法流程
Bagging算法中,已知原始數(shù)據(jù)集D={(x1,y1),(x2,y2),…,(xd,yd)},訓練集數(shù)據(jù)T={(x1,y1),(x2,y2),…,(xn,yn)},x為樣本特征,y為樣本標簽,xi=(X1,X2,…,Xp),ξ為弱訓練器,執(zhí)行K輪抽樣。Bagging算法如算法2所示。
算法2Bagging算法
輸入:執(zhí)行輪次K,數(shù)據(jù)集D={(x1,y1),(x2,y2),(x3,y3),…,(xd,yd)}。
輸出:集成分類器G。
步驟1數(shù)據(jù)集采樣,使用Boostrap從數(shù)據(jù)集中抽樣K個大小為M的訓練集Di={(x1,y1),(x2,y2),…,(xM,yM)}。
fori∈{1,2,…,K}do
Boostrap(Di)
endfor
步驟2訓練模型hi。
fori∈{1,2,…,K}do
hi=ξ(Di)
endfor
步驟3將測試數(shù)據(jù)集T輸入至已訓練好的模型hi中,采用投票法對測試結(jié)果進行匯總,得到最終分類結(jié)果Pmax。
Pmax=argmax ∑ξ(T)
(5)
2.3.2 Boosting算法描述
Boosting算法是一種集成算法[19],該算法中各個弱分類器之間存在強依賴關(guān)系,需串行地執(zhí)行訓練,其主要思想是從初始訓練集中訓練一個弱訓練器,隨后根據(jù)弱訓練器的表現(xiàn)調(diào)整初始訓練樣本的分布,將調(diào)整后的樣本輸入到下一個弱訓練器,最后將所有的弱訓練器進行結(jié)合,得到強訓練器。算法流程如圖3所示。
Figure 3 Process of Boosting algorithm圖3 Boosting算法流程圖
AdaBoost是Boosting集成策略中的代表性算法,在該算法中,已知原始數(shù)據(jù)集D={(x1,y1),(x2,y2),…,(xn,yn)},執(zhí)行m輪抽樣,I為指示函數(shù),當I函數(shù)括號內(nèi)的表達式為真時,函數(shù)取值為1,否則取值為0。算法步驟如算法3所示。
算法3AdaBoost算法
輸入:數(shù)據(jù)集D={(x1,y1),(x2,y2),…,(xn,yn)},L個基本分類器Gm,m∈{1,…,L},權(quán)值W1=(w1,1,w1,2,…,w1,i,…,w1,n)。
輸出:集成分類器G。
步驟1初始化訓練數(shù)據(jù)的權(quán)值分布。
fori∈{1,2,…,n}do
(6)
endfor
步驟2使用具有權(quán)值分布的訓練集Dm,訓練弱分類器Gm。Gm(xi)是Gm對xi預測的標簽。
form∈{1,2,…,L}do
Gm(xi)
endfor
步驟3計算弱分類器Gm在訓練集上的分類誤差率,計算Gm的系數(shù)αm。
fori∈{1,2,…,n}do
(7)
(8)
endfor
步驟4更新訓練數(shù)據(jù)的權(quán)值分布。
fori∈{1,2,…,n}do
(9)
(10)
endfor
步驟5構(gòu)建基本分類器的線性組合。
fori∈{1,2,…,n}do
(11)
endfor
步驟6根據(jù)結(jié)合策略,最終得到強分類器。
fori∈{1,2,…,n}do
G(xi)=sign(f(xi))=
(12)
endfor
本文使用AdaBoost集成策略的同時,使用函數(shù)C對算法進行循環(huán)迭代,找到每個集成分類器下最優(yōu)的學習率,進而使得訓練器達到最優(yōu)的預測效果。C-AdaBoost的核心思想就是通過集成算法尋找最佳準確率對應的最優(yōu)學習率。具體過程如算法4所示。
算法4C-AdaBoost算法
輸入:訓練集D={(x1,y1),(x2,y2),…,(xn,yn)},xi是特征,yi是類別,特征數(shù)為p,測試集Test={(x1,y1),(x2,y2),…,(xn,yn)},優(yōu)化函數(shù)C,參數(shù)γj,1≤j≤100。
輸出:分類結(jié)果Ypre,集成分類器G。
步驟1數(shù)據(jù)預處理。
fori∈{1,2,…,p}do
根據(jù)式(1)~式(3)得到最優(yōu)特征組合方程Y=βiAttribute+ε
endfor
fori∈{1,2,…,p}do
endfor
步驟2權(quán)重處理。
fori,j∈{1,2,…,n}do
Initwi,j=1/n
根據(jù)式(6)和式(7)更新權(quán)重。
endfor
步驟3生成線性組合。
fori∈{1,2,…,n}do
f(xi)=sum(αmGm(xi))
endfor
步驟4在函數(shù)C下執(zhí)行分類器,得最優(yōu)解。
G(xi)=signC(f(xi))
(14)
步驟5輸入測試集數(shù)據(jù)進行分類。
Ypre=G(Test)
對于最終的分類結(jié)果,本文采用準確率(Accu)、精確率(Precise)、召回率(Recall)和F1值(F1)4個指標進行評估。定義如下:
設(shè)乳腺癌疾病的二標簽數(shù)據(jù)集,包含n個樣本(xi,yi),i=1,2,…,n,yi∈Y,Y={0,1}是標簽集合。設(shè)G是分類器,G(xi)是G對樣本xi預測的標簽,則4個評估指標的計算公式如式(15)~式(18)所示:
(15)
(16)
(17)
(18)
本文使用加州大學UCI數(shù)據(jù)庫中乳腺癌復發(fā)數(shù)據(jù)集(DataSet1)和乳腺癌腫瘤數(shù)據(jù)集(DataSet2)對模型進行訓練和測試。DataSet1數(shù)據(jù)集中有9個特征,DataSet2數(shù)據(jù)集中有10個特征,數(shù)據(jù)集的特征中包括數(shù)值型數(shù)據(jù)和類別型數(shù)據(jù)。具體的特征表述信息如表1所示。
Table 1 Description of characteristic information表1 特征信息描述
本文在選擇數(shù)據(jù)的特征時,希望挑選出更為重要的特征的組合作為最終特征集,因此使用了2.2節(jié)提出的逐步回歸算法對3.1節(jié)中所描述的特征進行二次選取。最終選取的特征和回歸系數(shù)如表2所示。
Table 2 Optimal feature combinations and regression coefficients表2 最優(yōu)特征組合及回歸系數(shù)
由表2可知,在DataSet1數(shù)據(jù)集中,通過逐步回歸方法,從原始的9個特征中選取了deg-malig、node-caps、inv-nodes、tumor-size和irradiat作為最終的特征組合;同理,在DataSet2數(shù)據(jù)集中選取BareNuclei、 CellSize 、 ClumpThickness等8個特征作為二次特征選取的結(jié)果。
用βi表示特征的回歸系數(shù),Attribute表示特征集合。在DataSet1中,回歸方程的截距為0.985 365,則回歸方程如式(19)所示:
(19)
在DataSet2中,回歸方程的截距為1.505 412,則回歸方程如式(20)所示:
(20)
集成模型訓練過程中,為使AdaBoost訓練器盡可能達到相對理想的效果,本文使用優(yōu)化函數(shù)C對算法進行迭代優(yōu)化,以得到不同參數(shù)值下的訓練準確率,進而得到最優(yōu)訓練結(jié)果。本文使用NB(Navie Bayes)[20]、RandomForest[21]、SVM[22]3組弱分類器進行C-AdaBoost集成,使用DataSet1和DataSet2 2個數(shù)據(jù)集進行訓練和測試,詳細結(jié)果如圖4和圖5所示。
Figure 4 Comparison of model’s accuracy under different parameters (DataSet1)圖4 不同參數(shù)下模型的準確率(DataSet1)
Figure 5 Comparison of model’s accuracy under different parameters (DataSet2)圖5 不同參數(shù)下模型的準確率(DataSet2)
由圖4可以看出,使用SVM作為弱分類器,并且C-AdaBoost模型的參數(shù)γj=0.08時,乳腺癌復發(fā)預測準確率最高,達到90.1%。
由圖5可以看出,使用NB作為弱分類器,并且C-AdaBoost模型的參數(shù)γj=0.04時,乳腺癌復發(fā)預測準確率最高,達到99%。
結(jié)合圖4和圖5可以發(fā)現(xiàn),在使用NB作為弱分類器執(zhí)行C-Boosting集成策略時,參數(shù)的變化會對實驗結(jié)果產(chǎn)生較大的影響,而隨著參數(shù)的不斷變化,RandomForest和SVM的訓練器相對穩(wěn)定。
本文將數(shù)據(jù)集的70%作為訓練集,30%作為測試集進行實驗,進行如下的實驗對比:
實驗1使用KNN[23]、NB、RandomForest、SVM和MLP[24]5種機器學習算法作為弱分類器進行Bagging[18]和Boosting算法的集成。
實驗2基于實驗1的結(jié)果,選取Boosting集成算法中的GBDT、XGBoost和 AdaBoost 3種常用的集成策略作為對比模型,進行對比實驗。
3.4.1 不同弱分類器下的集成模型對比
使用KNN、NB、RandomForest、SVM和MLP[24]5種機器學習算法作為弱分類器進行Bagging和Boosting算法集成。由于Boosting算法中AdaBoost可進行多種弱分類器的集成,因此選取AdaBoost模型作為Boosting算法的代表模型。實驗的準確率、精確率、召回率和F1值4個指標的結(jié)果對比分別如表3和表4所示。
表3中的結(jié)果表明,DataSet1數(shù)據(jù)集上使用SVM作為弱分類器的C-AdaBoost模型判斷乳腺癌是否復發(fā)的F1=0.945,同時召回率達到0.984。
表4中的結(jié)果表明,DataSet2數(shù)據(jù)集在集成策略下的Precise、Recall和F1值整體優(yōu)于弱分類器。其中,以NB為基本分類器的C-AdaBoost模型的預測效果最好,最高F1值達到0.986。
由表3和表4可得,常用的3種集成方法的實驗準確率都明顯高于使用單一分類器的準確率。其中,在DataSet1數(shù)據(jù)集上,準確率最優(yōu)達到90.1%,在DataSet2數(shù)據(jù)集上,集成方法的準確率最高達到99%。綜上,使用C-AdaBoost模型的準確率最優(yōu),能將準確率最多提高19.5%。
Table 3 Comparison of accuracy, Precise,Recall and F1 (DataSet1)表3 準確率、精確率、召回率和F1值對比(DataSet1)
Table 4 Comparison of accuracy, precise,recall and F1 (DataSet2)表4 準確率、精確率、召回率和F1值對比(DataSet2)
3.4.2 集成優(yōu)化模型對比
由實驗1得出,在本文實驗數(shù)據(jù)集上,Boos-ting集成算法的實驗結(jié)果優(yōu)于弱分類和Bagging集成算法。本節(jié)實驗選取Boosting集成策略常用的GBDT、XGBoost和AdaBoost 3種集成優(yōu)化模型與本文提出的C-AdaBoost模型進行對比,具體實驗結(jié)果如表5所示。
由表5可知,基于C-AdaBoost的集成模型在乳腺癌數(shù)據(jù)集上的實驗效果明顯優(yōu)于其他3種常用集成優(yōu)化模型的實驗效果。
Table 5 Comparison of integrated optimization models表5 集成優(yōu)化模型對比
常用集成模型的準確率的柱狀圖如圖6所示,圖示可清晰呈現(xiàn)使用C-AdaBoost集成模型的實驗準確率最優(yōu),最優(yōu)可達到99%。
Figure 6 Accuracy comparison of ensemble optimization models圖6 集成優(yōu)化模型準確率對比
本文使用C-AdaBoost模型分別對乳腺癌復發(fā)和乳腺癌腫瘤預測進行分析,結(jié)果表明C- AdaBoost模型對于不同的乳腺癌數(shù)據(jù)集均具有較高的預測性能。
本文使用集成策略將不同傳統(tǒng)機器學習算法進行結(jié)合,基于乳腺癌數(shù)據(jù)集進行訓練和測試,將機器學習和數(shù)據(jù)分析技術(shù)應用于醫(yī)學領(lǐng)域,提高了疾病預測的準確率,從而可以更好地輔助醫(yī)生進行診斷,提高工作效率。
本文的貢獻主要有:(1)通過大量實驗發(fā)現(xiàn),使用集成算法替代單個機器學習分類器,可在疾病預測問題上得到更高的預測準確率;(2)使用逐步回歸算法可得到數(shù)據(jù)中最優(yōu)的特征組合,實驗發(fā)現(xiàn)惡性腫瘤程度、腫塊所在象限、絕經(jīng)情況等特征對預測乳腺癌復發(fā)數(shù)據(jù)集的純度影響較大,細胞大小、染色體數(shù)量、細胞形狀是判斷腫瘤是否為良性的重要屬性;(3)找到了最優(yōu)學習率,使得預測準確率最佳,大量實驗發(fā)現(xiàn),采用C-AdaBoost模型能將預測準確率最高提高19.5%。這些發(fā)現(xiàn)可以輔助醫(yī)生進行更有針對性的檢查,并做出準確診斷。
本文采用的數(shù)據(jù)是UCI數(shù)據(jù)庫中已經(jīng)打好標簽的乳腺癌數(shù)據(jù)集,在以后的研究中,可考慮將電子病歷EMR(Electronic Medical Record)等文本數(shù)據(jù)輸入至BERT(Bidirectional Encoder Representations from Transformers)模型[25]進行訓練,在非結(jié)構(gòu)化的文本數(shù)據(jù)中自動訓練并抽取較為重要的臨床特征信息、語義信息,減少人工標注。在算法上,使用C-AdaBoost模型還可更加詳細地呈現(xiàn)不同參數(shù)下的訓練結(jié)果,以促進開展后續(xù)與醫(yī)學信息數(shù)據(jù)挖掘相關(guān)的研究。