孟霖宜,劉嶼鴻
(1. 四川大學生命科學學院,四川 成都 610065;2. 四川大學網(wǎng)絡空間安全學院,四川 成都 610065)
癌癥已成為威脅人類生命健康最嚴重的疾病之一,具有發(fā)展速度快、死亡率高、術后可能復發(fā)的特點。傳統(tǒng)的癌癥診斷大多采用病理切片、活檢等方式進行診斷,對醫(yī)生的水平要求高,且易受醫(yī)生主觀經(jīng)驗影響,難以滿足早診斷、早治療的要求。支持向量機(Support Vector Machine,SVM)作為一種優(yōu)異的模式識別方法,可以充分利用大量歷史癌癥數(shù)據(jù),結合患者的數(shù)據(jù)特征進行識別判斷,在肺癌、乳腺癌、宮頸癌等醫(yī)學研究等領域得到廣泛的應用,是近幾年用于癌癥輔助診斷領域最多的智能方法之一。文獻[1]提出了SVM-PCA和SVM-RFE的方法,并用于宮頸癌的診斷;文獻[2]提出了一種基于主成分分析和支持向量機的卵巢癌預測方法;文獻[3]采用支持向量機的方法開展了癌細胞識別的應用研究;文獻[4]開展了支持向量機的癌癥輔助診斷方法研究;文獻[5]開展了改進SVM的癌癥診斷應用研究。
本文采用徑向基函數(shù)作為核函數(shù)的 SVM分類器,構建了癌癥輔助診斷流程,探討其在癌癥診斷中的應用,針對SVM分類器中對診斷準確度影響較大的懲罰函數(shù)C和核函數(shù)參數(shù)γ,設計了基于粒子群(particle swarm optimization,PSO)的參數(shù)優(yōu)化流程,構建了合理的適應度函數(shù),利用粒子群算法進行了參數(shù)C和γ的尋優(yōu),建立了基于PSO-SVM融合算法的癌癥診斷流程。采用威斯康星(Wisconsin)大學乳腺癌數(shù)據(jù),通過仿真驗證了所提方法的有效性。
支持向量機本質(zhì)上是一種二分類模型,通過尋找一個能滿足分類要求的超平面,使訓練樣本集內(nèi)的所有點盡可能地距該超平面最遠,用樣本特征空間中的間隔最大來定義,達到分類的目的。 其思想是對于線性可分的樣本集,支持向量機通過間隔最大化,得到一個線性分類模型;而對于非線性的樣本集,支持向量機引入了核函數(shù),將輸入數(shù)據(jù)映射到新的高維特征空間,在新空間中將非線性分類問題轉(zhuǎn)化為線性分類問題,再采用線性支持向量機的方法來實現(xiàn)非線性問題的分類[6,7]。
設給定樣本集{(x1,y1),(x2,y2),…,(xn,yn)},xi∈Rn,yi∈{-1,1},i=1,2,…N。(xi,yi)為數(shù)據(jù)的樣本點,xi為樣本特征向量,而yi為xi對應的類別標簽,N為訓練樣本總數(shù),n為樣本空間的維數(shù)。SVM需要構建一個超平面,使得各個樣本點距離該超平面的距離盡可能地遠,達到精確分類的目的。最優(yōu)分類超平面函數(shù)如下
(1)
(2)
0≤αi≤C,i=1,2,…N
(3)
其中C為懲罰參數(shù),表示對于分類錯誤的懲罰程度,代表能夠接受的分類錯誤率的值,C值越大懲罰越大。在實際應用中,需要根據(jù)具體情況預先設定。
對于非線性問題,引入能夠?qū)崿F(xiàn)非線性映射的核函數(shù),將樣本映射到更高維的特征空間,再利用線性分類方法在高維的特征空間進行分類。
定義一個核函數(shù)K(x,y)=φ(x)·φ(y),φ是樣本空間到特征空間的映射,式(1)變換為
(4)
核函數(shù)對于非線性支持向量機的學習具有非常重要的影響,常用的核函數(shù)有:線性核函數(shù)、多項式核函數(shù)、徑向基核函數(shù)和Sigmoid核函數(shù)。在實際應用中,需要根據(jù)具體情況參考經(jīng)驗預先設定:一般樣本的特征維數(shù)多、樣本量相對較少時常選用線性核函數(shù);特征維數(shù)少、樣本量相對較大時常選用徑向基核函數(shù)。
本文的實驗數(shù)據(jù)樣本數(shù)量遠大于樣本維數(shù),故采用徑向基核函數(shù)作為SVM的核函數(shù),如式(5)
(5)
式中:γ為核函數(shù)參數(shù),γ>0。γ的改變會影響SVM的分類準確度,γ減小會提高準確度,但會影響分類的推廣度。
采用支持向量機進行癌癥輔助診斷時,其流程如圖1所示。
圖1 基于支持向量機的癌癥輔助診斷
基于支持向量機的癌癥輔助診斷流程包括歷史病例診斷數(shù)據(jù)處理、支持向量機參數(shù)設置、支持向量機訓練、待診斷病人信息分類診斷等步驟。
支持向量機用于診斷分類時,其診斷分類的效果主要受懲罰參數(shù) C 和核函數(shù)參數(shù)γ的影響。實際使用中往往結合經(jīng)驗選取C 和γ的值,選取不當可導致過學習、欠學習的情況,致使診斷分類效果不理想。要想獲得性能更為優(yōu)越的SVM,必須在訓練開始之前對C 和γ兩個參數(shù)在一定范圍內(nèi)尋優(yōu)。
粒子群算法是一種啟發(fā)式優(yōu)化算法,能較好地解決最優(yōu)化問題,可用于懲罰參數(shù) C 和核函數(shù)參數(shù)γ的優(yōu)化。
粒子群算法(Particle Swarm Optimization,PSO)是一種基于種群中的個體行為及數(shù)學抽象而提出的啟發(fā)式優(yōu)化算法,具有實現(xiàn)方便、可調(diào)參數(shù)少和收斂速度快的優(yōu)點,在解決優(yōu)化問題方面得到廣泛應用。
該算法采用“位置-速度”模型,每個粒子的迭代過程由速度和位置決定,速度代表粒子搜索的方向和距離,單個粒子在多次迭代中適應度最好的位置為個體極值,整個群體在多次迭代中所有粒子適應度最好的位置為群體極值;各個粒子的適應度由粒子群的適應度函數(shù)決定。
在D維搜索空間中,粒子群由n個粒子組成X=(X1,X2,…,Xn),Xi表示第i個粒子在空間的位置Xi=(xi1,xi2,…,xiD),每個Xi都有可能是最優(yōu)解;第i個粒子的速度為Vi=(vi1,vi2,…,viD),個體極值為pi=(pi1,pi2,…,piD);群體極值為pg=(pg1,pg2,…,pgD)。每次迭代的速度和位置分別為[8,9]
(6)
(7)
采用徑向基函數(shù)作為核函數(shù)的支持向量機用于診斷分類時,其分類的準確度和推廣能力主要受懲罰參數(shù) C 和核函數(shù)參數(shù)γ影響。
本文為了提高癌癥診斷準確率,以C 和γ作為優(yōu)化目標,利用粒子群算法對其優(yōu)化。使用PSO進行SVM參數(shù)的優(yōu)化,其優(yōu)化過程如圖2所示。
圖2 PSO優(yōu)化SVM參數(shù)的尋優(yōu)過程
基于PSO的SVM參數(shù)優(yōu)化過程,包括粒子群初始化、粒子群適應度計算、個體極值和群體極值尋找、種群更新等步驟:
1)粒子群初始化,以待優(yōu)化參數(shù)(C,γ)為粒子個體,在其潛在求解范圍內(nèi),隨機生成一定數(shù)量的粒子,獲得初始化種群。種群中每個個體(C,γ)即為一個潛在解;
2)粒子群適應度計算,對種群中每個個體,基于適應度函數(shù)進行其適應度計算。適應度函數(shù)是粒子群求解過程中的關鍵,決定了求解方向和求解質(zhì)量。本文將支持向量機與粒子群融合的算法用于癌癥的輔助診斷,目的是用人工智能的方法輔助醫(yī)生提高癌癥的診斷的準確性。為準確評估粒子個體適應度,將粒子(C,γ)設置下的SVM分類器的診斷準確度(Accuracy),作為粒子群優(yōu)化過程中的適應度函數(shù)。
(8)
式中:Nt為驗證樣本中輸出值與期望值一致,輸出正確的數(shù)量;Nf為驗證樣本中輸出值與期望值不一致,輸出錯誤的數(shù)量。
粒子群適應度計算過程中,對于種群中的每個粒子,進行SVM分類器的設置、訓練、測試,獲得該粒子對應SVM分類器的診斷準確度,進而得到粒子適應度。
3)個體極值和群體極值尋找,在粒子群適應度計算基礎上,根據(jù)每個個體適應度大小,獲得種群最優(yōu)個體及單個粒子歷史更新過程中的最優(yōu)值。
4)種群更新,根據(jù)種群最優(yōu)值、個體最優(yōu)值,根據(jù)式(6)、式(7)進行每個粒子的更新,實現(xiàn)粒子種群的更新。
基于PSO優(yōu)化SVM算法的癌癥診斷流程如圖3所示。主要步驟如下所示。
圖3 基于PSO優(yōu)化SVM算法的癌癥診斷
1)首先對歷史病例集并進行數(shù)據(jù)清洗,剔除特征要素不完整的數(shù)據(jù)和明顯輸入錯誤的數(shù)據(jù);
2)將符合要求的歷史病例數(shù)據(jù)按照交叉實驗的方法進行訓練;
3)將診斷的準確度按照式(8)作為粒子群優(yōu)化過程的適應度函數(shù);利用訓練樣本,采用粒子群算法對支持向量機的懲罰參數(shù) C 和核函數(shù)參數(shù)γ優(yōu)化;
4)采用優(yōu)化后的懲罰參數(shù) C和核函數(shù)參數(shù)γ進行支持向量機設置,并利用歷史癌癥病例數(shù)據(jù)進行支持向量機的訓練,獲得支持向量機分類器;
5)對于待診斷病人,采集病人特征數(shù)據(jù),并使用支持向量機分類器進行計算,確定病人類別,完成病人的診斷。
仿真關鍵偽代碼如下所示。
X = initialParticle(iniNum, range);
pb_fitValue = fitness_PSO(X, trainX, trainY, testX, testY);
…
for epoch=1:MAXDT
V = w*V+c1*R1*(pb-X)+c2*R2*(gb-X);
X = X+V;
cur_fitValue = fitness_PSO(X, trainX, trainY, testX, testY);
[pb, gb, pb_fitValue, gb_fitValue] = update(pb, gb, max_pb_fitValue, gb_fitValue, cur_fitValue, X);
if(gb_fitValue >limit) break; end
end
…
gam = gb(1);
sig2 = gb(2);
trainlssvm(trainX, trainY, gam, sig2,);
SVM_Y = simlssvm(trainX, trainY, gam, sig2, testX);
其中:initialParticle()為粒子群初始化函數(shù);fitness_PSO()為粒子群適應度計算函數(shù);update()為粒子群更新函數(shù);trainlssvm()為SVM分類器訓練函數(shù);simlssvm()為SVM分類器測試、應用函數(shù)。
本文的實驗數(shù)據(jù)采用威斯康星(Wisconsin)大學乳腺癌數(shù)據(jù)樣本集[12](http:∥archive.ics.uci.edu/ml/datasets/Breast+Cancer+Wisconsin+%28Prognostic%29),該數(shù)據(jù)集共有198個癌癥病例術后是否復發(fā)的數(shù)據(jù),其中有151個沒有復發(fā)的病例和47復發(fā)病例,每條數(shù)據(jù)記錄包括33個特征(屬性3~35),如表1所示。
表1 數(shù)據(jù)樣本集描述
表中各屬性含義:1是編號;2是結果(R代表復發(fā),N代表沒有復發(fā));3是復發(fā)時間;4~33分別是是(半徑、紋理、周長、面積、平滑度、緊密度、凹陷度、凹點、對稱性、分形維數(shù)等10個特征的均值、標準差和最壞值);34是腫瘤大小;35是淋巴結狀態(tài)。
本文應用支持向量機對訓練樣本集建立分類模型進行訓練,在198個樣本中有4個樣本缺少淋巴結狀態(tài)數(shù)據(jù),不作為實驗樣本。故以有效實驗樣本中的154個樣本為訓練樣本進行支持向量機的訓練,以40個樣本為測試樣本,進行支持向量機性能的測試。
采用式(5)徑向基函數(shù)作為核函數(shù),懲罰參數(shù) C 和核函數(shù)參數(shù)γ通過PSO進行尋優(yōu)后,采用優(yōu)化后的C 和γ對測試樣本集進行分類,得到分類結果。
設定C 的取值范圍為10-1~102,γ的取值范圍為10-1~102;粒子群算法初始化粒子個數(shù)為20,迭代次數(shù) 50,慣性權重w為 0.7,加速因子c1為 1.2、c2為 1.5。采用圖2所示基于PSO的SVM參數(shù)優(yōu)化流程,進行懲罰參數(shù)C和核函數(shù)參數(shù)γ的優(yōu)化,優(yōu)化過程中最優(yōu)個體適應度如圖4所示。
圖4 適應度優(yōu)化過程
由圖4所示參數(shù)優(yōu)化過程可以看出,通過PSO的優(yōu)化,種群最優(yōu)適應度不斷提升,從0.8逐步提升至0.85、0.875、0.9、0.925,通過50代種群的優(yōu)化,最優(yōu)個體的適應度達到0.925,此時最優(yōu)個體為(7.2377, 4.7909),即懲罰參數(shù)C=7.2377、核函數(shù)參數(shù)γ=4.7909。
根據(jù)優(yōu)化結果進行支持向量機參數(shù)的設置,使用154個訓練樣本進行支持向量機的訓練,設置復發(fā)病例的類別標志為+1,設置未復發(fā)病例的類別標志為-1。訓練完成后,使用40個病例進行支持向量機診斷性能的測試。經(jīng)測試,40個病例中37個病例診斷結果正確、3個病例診斷結果錯誤,結果如圖5所示,即所提方法診斷正確率為92.5%。
圖5 分類結果
同時,針對相同的訓練樣本,采用Bayesian方法進行懲罰參數(shù)C、核函數(shù)參數(shù)γ的優(yōu)化,優(yōu)化獲得懲罰參數(shù)C=94.9917、核函數(shù)參數(shù)γ=0.0183。采用該參數(shù)設置支持向量機,使用相同的病例進行支持向量機的訓練、測試,經(jīng)測試,40個病例中36個病例診斷結果正確、4個病例診斷結果錯誤,即經(jīng)Bayesian優(yōu)化的支持向量機其診斷正確率為90%。
與隨機森林、神經(jīng)網(wǎng)絡、梯度提升樹、LightGBM、Stacking-1、Stacking-2等現(xiàn)有診斷方法[4]相比較,各方法的診斷準確率如表2所示。
表2 不同方法的診斷準確率
由表2所示各診斷方法的診斷準確率可以看出,已有方法中,隨機森林、神經(jīng)網(wǎng)絡、梯度提升樹、LightGBM、Stacking-1、Stacking-2的診斷準確率分別為77.76%、75.70%、76.74%、74.75%、75.24%、76.77%;基于Bayesian參數(shù)優(yōu)化的支持向量機(Bayesian-SVM)其診斷準確率為90%;本文所提支持向量機與粒子群相結合的診斷方法(PSO-SVM)其診斷準確率為92.5%,可以看出,本文所提方法通過粒子群參數(shù)優(yōu)化、支持向量機訓練分類,提高了癌癥診斷準確率,為癌癥的自動化、智能化診斷提供了一種新方法。
本文針對傳統(tǒng)的癌癥診斷易受醫(yī)生主觀經(jīng)驗影響、支持向量機輔助診斷準確度不高、無法滿足實際使用需求的問題,結合粒子群具有啟發(fā)式優(yōu)化的特點,構建合理的適應度函數(shù),通過粒子群算法實現(xiàn)支持向量機中懲罰函數(shù)C和核函數(shù)參數(shù)γ的優(yōu)化,進而構建了基于支持向量機與粒子群融合算法的癌癥輔助診斷模型。仿真驗證表明,該方法有效提高了診斷的準確度,可以作為醫(yī)生的對癌癥診斷的有效輔助手段。