王德廣, 黃盈朵
(大連交通大學,軟件學院,遼寧,大連 116028)
據國家癌癥中心統計數據,癌癥死亡占我國居民全部死因的23.91%[1],儼然已成為人類健康路上的最兇猛的攔路虎之一。其中乳腺癌是最常見的女性癌癥,現仍為女性發病首位,2012年在全球范圍內乳腺癌大約占所有癌癥的25%[2],2018年的占比則為11.6%[3]。
隨著機器學習和深度學習的發展,為醫療領域提供了極大幫助,醫生使用訓練好的模型輔助診斷病人是否患有癌癥,提高工作效率和診斷準確性。現有很多機器學習分類算法可以解決這一類問題,但是這些算法各有不足,比如樸素貝葉斯算法,需要知道先驗概率,先驗模型設定的不準確很大程度上會影響預測效果。KNN算法在樣本特征分布不平衡時對稀有類別的預測的準確率低等。本研究采用邏輯回歸算法、支持向量機模型和前饋神經網絡對帶有標簽值的乳腺癌特征數據進行預測分類,將支持向量機分類好的數據放入神經網絡中減少神經網絡迭代時間,并對準確率進行比較,同時使用神經網絡對于醫療領域重視的漏報率進行預測分析。
邏輯回歸(logistic regression,LR)是一種理論上的線性回歸分析實體模型(廣義線性模型),可用于解決大數據挖掘、疾病自動診斷、房價預測分析等問題。
對于給定的特征數據集T={(x1,y1),(x2,y2),…,(xn,yn)}其中xi∈Rn,yi∈{0,1},則有如下條件概率分布為logistic回歸模型,如式(1)和式(2),
(1)
(2)
設P(Y=1|X)=π(x),那么P(Y=0|X)=1-π(x)聯合概率分布函數[4],即似然函數定義為式(3),
(3)
若想讓預測出的結果全部正確的概率最大,根據最大似然估計,就是所有樣本預測正確的概率相乘得到的P(總體正確)最大,然而,一個連乘的函數是不好計算的,可以通過兩邊同時取對數的形式讓其變成連加。
取對數似然函數如式(4),
(4)
對L(w)求極大值,可得到w的估計值,這樣就變成了對L(w)為目標函數的最優化問題。在函數最優化的時候習慣讓一個函數越小越好,所以在前面加一個負號,得到的就是交叉熵損失函數(cross-entropy loss function),如式(5),
P(xi;w))
(5)

(6)
(7)
將數據集的特征向量xn代入式(6)與式(7),哪個概率值大就屬于哪一類。
支持向量機(Support Vector Machine,SVM)的關鍵概念可以總結為2點。
(1)在二維上,找一分割線把兩類分開;同理,當特征空間是高維時,尋找一平面把特征數據分開,使得離平面最近的樣本點具有最大的距離,即超平面,這樣數據分類更加準確清晰。實際上超平面的方向和位置完全取決于選擇哪些樣本點,這些離超平面近的樣本點稱為“支持向量”。
(2)核函數的作用就是對原始數據進行維度變換,一般是升維變換,原樣本空間中線性不可分的樣本點在升維之后的空間中變為線性可分的,然后在高維特征空間[5]通過線性超平面進行分類。
常用的核函數有以下4種。
① 線性核:K(x,y)=x·y
③ 高斯核:K(x,y)=exp(-|x-y|/d2)
④ sigmoid核:K(x,y)=tanh(a(x·y)+b)
本文采用的是默認的高斯核函數系數的不同值進行預測癌癥分類準確率對比。
高斯核的思想:按一定規律統一改變樣本的特征數據得到新的樣本,新的樣本按新的特征數據能更好地分類,由于新樣本的特征數據與原始樣本的特征數據呈一定規律的對應關系,因此根據新樣本的分布及分類情況,得出原始樣本的分類情況。所以高斯核的任務是找到更有利分類任務的新的空間。
高斯核函數的功能步驟[6]如下。
① 先將原始的數據點(x,y)映射為新的樣本(x′,y′);
② 再將新的特征向量點乘(x′,y′),返回其點乘結果;
③ 計算點積。
假設分類的超平面為wTx+b=0,兩個平行的邊界超平面分別為式(8),

(8)


(9)


(10)
對于帶有約束條件的定義于凸集中的凸函數最小化問題,目標函數是二次函數,約束條件為變量的線性不等式時,常利用拉格朗日對偶性將原始問題轉換成對偶問題,下面是凸優化問題構造拉格朗日函數,如式(11),
(11)
SVM原型和對偶型等價,用過求解拉格朗日對偶問題得到原問題最優解最終結果表示為式(12),

αiαjyiyjxixj
(12)
深度學習在醫學自主診斷、自然語言處理、生物信息處理等領域都有出色的表現。深度神經網絡主要包括前向傳播(Forward Propagation,FP)和反向傳播(Backward Propagation,BP)[7]兩部分。本研究使用的是屬于前向傳播的多層感知機(Multi-layer Perceptron,MLP),多層感知機從輸入層(Input Layer)到輸出層(Output Layer),上一層的任何一個神經元與下一層的所有神經元都有連接,在經過隱含層的逐層計算后得到預測結果。本研究設定的各層神經元個數以及超參數如表1所示。

表1 設定參數和參數值
根據數據集特征數量和標簽值數量設定輸入神經元個數,輸出神經元個數是預測的標簽值個數。依次實驗隱含層數為2層和3層,學習率取值范圍0.01-0.05,其中取值為0.03時準確率最高,激活函數Relu用來線性修正,使計算出小于0的值等于0,反之保持不變,同時可以提高訓練速度。關于二分類問題先后使用sigmoid函數和softmax函數做了對比,發現softmax函數效果更好。
本文的實驗數據是UCI機器學習庫的美國威斯康辛州乳腺腫瘤分類(breast-cancer-wisconsin)數據集,由699條有標記的樣本組成,分為良性和惡性兩類。該數據集前10個屬性為數據特征,最后一個屬性為標簽數據,如表2所示。

表2 數據集
(1)缺失值處理:由表2可知“Bare Nuclei”屬性存在缺失值,并以“?”的形式出現。這里使Numpy空值替換“?”,再刪除空值,這樣可以達到刪除缺失值的目的。
(2)獨熱編碼(One-hot Encoding):由于整數特征表示不能在分類器中直接使用,這樣的連續輸入,估計器會認為類別之間是有序的,但實際卻是無序的。創建新的一列,長度等于Class標簽值的長度,把新一列全部置為0,如果標簽值等于“4”,將把這些對應位置的0,全部替換成1。One-hot達到的效果是把0變為10,1變為01,類似一個數組,使特征數據更加標準化。
(3)特征數據歸一化:minmax_scale=preprocessing.MinMaxScaler(feature_range=(0,1))使特征數據變成(0,1)區間的數字,便于預測分析。取訓練集525條,其中20%設為驗證集,剩下174條作為測試集。
SVM高斯核不同系數準確率比較,如表3所示。

表3 SVM高斯核不同系數準確率比較
由表3可知,gamma=0.1時,準確率最高,模型最優。
前饋神經網絡不同隱含層數下的各項指標比較,如表4所示。

表4 前饋神經網絡不同隱含層數下的各項指標比較
訓練集和驗證集折線圖如圖1-圖6所示。

圖1 實驗①accuracy曲線圖

圖2 實驗①loss曲線圖

圖3 實驗②accuracy曲線圖

圖4 實驗②loss曲線圖

圖5 實驗③accuracy曲線圖

圖6 實驗③loss曲線圖
可以看出,隱含層神經元個數增加為64時開始出現過擬合現象,增加相應比例的層數和神經元個數,過擬合現象逐漸嚴重,采用dropout正則化可以適當解決這一現象,設置丟棄神經元概率值0.5,最終結果如圖7、圖8所示。

圖7 dropout后實驗②accuracy曲線圖

圖8 dropout后實驗②loss曲線圖
在神經網絡預測患病準確率即準確程度,即預測正確數量和總樣本數量比值,準確率計算用式(13),
(13)
在神經網絡預測患病召回率方面,召回率即正確預測為真正患病數量與真正病例總數的比值,因此召回率計算用式(14),
(14)
在神經網絡預測患病漏報率方面,漏報率即本為惡性腫瘤的患者數據被分類為良性腫瘤,因此漏報率計算用式(15)。
(15)
其中TP指將正類預測為正類數,稱為真正例;FP指將負類預測為正類數稱為偽正例;TN指將負類預測為負類數,稱為真反例;FN指將正類預測為負類數,稱為偽反例。
使用測試集來評估各模型最終的泛化能力,如表5所示。

表5 3種模型各項指標比較
上述logistic、SVM、MLP在同一乳腺癌數據集的各項指標比較,由于數據集數量較少,所以神經網絡的優勢并沒有完全凸顯出來,計算每個模型的迭代時間,在準確率可以保證在98%以上的情況下迭代的時間由小到大排序為SVM、logistic、MLP,由此可見神經網絡在準確率方面沒有傳統SVM模型高,且運行速度慢,所以提出一種基于SVM的前饋神經網絡(SVM-MLP),基本思想為利用SVM分類好的乳腺癌數據,重新使用前饋神經網絡進行檢測分類,這樣可以在保證準確率和召回率的情況下一定程度上減少神經網絡的迭代時間。
使用np.concatenate()實現對應行的數組進行拼接,使用pd.DataFrame()提供有序的列和不同類型的列值,將SVM分類好的原數據生成CSV表格,由于SVM分類出的數據惡性占比大,直接放入神經網絡中會出現數據分析不平衡狀況,為了保持數據平衡,逐漸增加成比例的良性數據完成神經網絡的預測模型。實驗結果表明加入50條良性數據時,準確率最高可達到99.1%,隨著數據分布愈加平衡,準確率也會相應上升。4種分類方法準確率、迭代時間比較結果如表6所示。

表6 4種分類模型在準確率、迭代時間上比較
在文獻[8]中,提出基于重構誤差的深度信念網絡深度自適應確定算法,基本思想是由多個受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)組成的深度置信網絡(Deep Belief Networks,DBN)在訓練過程中自適應確定隱藏層深度,并且在閾值有偏差的情況下仍能有一個較好的網絡模型深度,最大隱含層數是7,每層神經元個數為32,測出的最高準確率為95.43%,雖然可以自主確定模型深度,但是準確率較低。在文獻[9]中,提到的BP神經網絡向后傳播誤差,隱含層數為1,在達到最高準確率98.9%時的隱含層節點數是6。基于SVM優化后的前饋神經網絡與其他模型比較結果如表7所示。

表7 基于SVM優化后的前饋神經網絡與其他模型的比較
本研究是在美國威斯康辛州乳腺腫瘤分類數據集上分別使用了LR、SVM、MLP 3種模型,取得了98.0%、98.8%、99.4%的準確率,2%、0%、0%的漏報率。分析了2個機器學習領域的算法和深度學習神經網絡在該分類問題上的比較結果。
為緩解前饋神經網絡對于這一乳腺癌數據集迭代時間漫長,提出一種利用SVM分類好的數據再次放入前饋神經網絡的預測模型,相比前饋神經網絡減少了近一半的迭代時間,且準確率比傳統SVM模型要高,最高準確率可達到99.1%。本次實驗數據量比較少,為了能讓神經網絡訓練達到更好的效果,需要繼續應用更有代表性的醫學樣本數據,在網絡結構復雜性方面也應有更進一步的研究。