張 穎,竇一峰
(天津市寶坻區人民醫院泌尿外科1,網絡信息中心2,天津 301800)
糖尿病性視網膜病變的計算機輔助判別問題是醫學信息學上的重點課題,作為機器學習中有監督學習的代表,支持向量機算法在小樣本、低維空間和線性模式下對分類問題的預測性能表現較好,而支持向量機中的懲罰參數c 以及徑向基核函數中的參數g 的選擇則決定了該而分類算法的分類精度和預測性能。目前主要有5 種對上述兩個重要參數的尋優方法,即經驗選擇法、網格選擇法[1]、遺傳優化算法[2]、粒子群優化算法[3]、遺傳或粒子群與模擬退火法[4]相結合的算法。既往基于支持向量機的改進算法在糖尿病性視網膜病變數據集上的性能研究較少,基于此,本研究選取支持向量機算法作為基礎模型,利用參數優化的思想對不同改進算法在糖尿病性視網膜病變數據集上的分類效果進行比較研究,以期為機器學習算法在輔助臨床診斷決策方面提供一定的參考依據,現報道如下。
1.1 數據來源 采用由匈牙利德布勒森大學的學者Balint Anta 博士提供糖尿病性視網膜病變數據集[5]進行實驗研究。糖尿病性視網膜病變數據集包含1151 個實例共20 個屬性,均是從Messidor 圖像集中提取的特征,來預測圖像是否包含糖尿病性視網膜病變的體征,具體信息見表1。
1.2 支持向量機算法原理 支持向量機算法(support vector machine,SVM)是由Vapnik VN[6]在1995 年提出的,算法的基本思想是通過非線性變換將輸入數據映射到一個高維空間中并建立最優線性分類面,將兩種樣本類別進行正確的分類。支持向量機模型基于結構風險最小化原則,通過計算最優超平面(optimal separating hyperplane,OSH)[7]來進行分類的統計方法,最優超平面之間的間隔越大證明建立的支持向量機模型的推廣能力越強。假定大小為l 的訓練樣本集{(xi,yi),i=1,2,...,l},其數據樣本僅可以被分成2 類,假設xi?RN屬于第1 類樣本,記為正值(yi=1),否則屬于第2 類,記為負值(yi=-1),此時需要構造一個判別函數,使得該函數能夠盡可能正確的對測試數據樣本進行分類。

表1 糖尿病性視網膜病變數據集
如果存在分類超平面

將此時的訓練樣本集稱為是線性可分的,其中將w·x 稱為向量和向量xi?RN的內積,公式(1-1)和公式(1-2)中的w?RN,b?R 都進行了規范化處理。對于公式(1-2),可改寫成如下形式:

根據最優超平面的定義可以得到如下判別函數

其泛化能力最優,其中sign(·)為符號函數。最優超平面的求解需要最大化2/‖w‖,即最小化‖w‖2/2,因此可以將其轉化成下面的由目標函數和約束條件組成的二次規劃問題:

當訓練樣本集為線性不可分的時候,需要引入非負參數,即松馳變量ξi,i=1,2,...,l,此時的分類超平面的最優化問題就轉換成如公式(1-6)所示的形式。

其中c 為約束參數,也叫做懲罰參數,c 的值越大則說明對錯誤分類的懲罰力度越大。利用拉格朗日乘子法進行求解可得

其中αi和βi表示拉格朗日乘子,進一步可得

將公式(1-8)~(1-10)代入到公式(1-7)中,得到對偶的最優化問題形式:

最優化求解得到的αi可能是(a)αi=0;(b)0<αi<c;(c)αi=c。由公式(1-8)可知,只有支持向量對最優超平面和判別函數有正向作用,所對應的學習方法才叫做支持向量機算法。在支持向量中,(c)所對應的xi稱為邊界支持向量(boundary support vector,BSV),實際上就是被錯分的訓練樣本點;(b)所對應的xi稱為標準支持向量(normal support vector,NSV),根據Karush-Kuhn-Tucher 條件[8]可知,在最優樣本點時,拉格朗日乘子與對應的約束之間乘積等于0,即

對于標準支持向量(0<αi<c),由公式(1-10)得到βi>0,因此,由公式(1-12)可得βi=0,由此可知,對于任一標準支持向量xi均滿足

從而計算參數b 為

對所有標準支持向量分別計算b 的值,然后對結果求平均值,可得

其中,NNSV 為標準支持向量的個數。由公式(1-13)可知,支持向量機模型就是滿足公式(1-3)所示中要求的樣本數據。
1.3 性能度量 選取數據集均為典型的二分類問題,因此為了更加全面的評價算法的性能,采用多指標評價的方法對算法分類效果進行對比分析,這里引入一個有監督學習二分類評價的混淆矩陣,見表2。

表2 二分類問題混淆矩陣

2.1 實驗結果 選取在線性模式下對小樣本分類較好的支持向量機算法為基礎模型,分別采用基于原始的支持向量機、基于主成分分析優化的改進支持向量機、基于網格搜索優化的改進支持向量機,基于遺傳算法進行參數優化的改進支持向量機和基于粒子群算法進行參數優化的改進支持向量機。由于支持向量機算法對核的選取不敏感,因此本研究所有實驗算法的支持向量機核函數均采用徑向基核函數,原始算法和主成分改進算法中的參數c 初始值設置為100,參數g 初始值設置為4,其余算法的參數c 的范圍為 [0.1,100],參數g 的范圍為[0.01,1000],遺傳算法和粒子群算法的參數設置見表3。采用MATLAB2016a 作為編程語言進行算法實驗,為了更好的進行參數優化算法的性能比較,隨機選取糖尿病性視網膜病變數據集的50%、60%、70%、80%和90%作為有監督學習的已標注數據,即訓練數據,剩余的數據作為測試數據,實驗中每個算法都采用3 折交叉驗證方法,報告的實驗結果均采用10 次重復獨立運行結果的平均值,具體實驗結果見表4。

表3 遺傳算法和粒子群算法的參數設置

表4 糖尿病性視網膜病變數據集的實驗結果

表4 (續)
2.2 參數對比結果 本研究均假定懲罰因子c 的取值范圍為[0.1,100],它主要用來控制分類模型的模型復雜度以及逼近誤差的折中,如果懲罰因子c 越大,那么說明該算法對數據的擬合程度越好,但同時也會降低算法的泛化能力,不利于算法的推廣應用。同時本研究也均假定所選取的高斯核函數中的參數g 的取值范圍為[0.01,1000],它決定了算法的分類精度。不同訓練占比的數據集下,通過網格搜索的參數優化以及利用啟發式算法進行參數優化得到的參數結果見表5。訓練數據集占比為70%和80%時基于遺傳算法和粒子群算法對參數尋優時適應度曲線的變化情況見圖1、圖2。

表5 參數結果
為更好地探究以支持向量機為代表的機器學習算法在輔助臨床診斷決策上所發揮的作用,本研究以匈牙利德布勒森大學的學者Balint Anta 博士提供糖尿病性視網膜病變數據集為例,基于MATLAB軟件進行編程,對比了不同的基于參數優化思想改進的支持向量機算法的分類預測效果。
本研究結果顯示,基于粒子群算法的改進支持向量機模型在病變分類預測中占有17 項最優值,在訓練數據占比為50%和60%上,粒子群改進的支持向量機模型在精確率、總精度、馬修斯相關系數、F1得分、分類正確率和AUC 值等6 項指標中均取得了最優結果,在70%的指標上取得了5 項指標最優,說明粒子群算法在全局搜索上的優勢比較明顯,收斂速度較快且參數較少,這使得它的分類性能最好,而基于遺傳算法的改進模型較差是因為遺傳算法在搜索時需要經過選擇、交叉和變異三步操作,而且需要設置的參數也較多,從而導致其收斂速度較慢,效果不太理想。基于網格搜索優化的改進算法整體上占有12 項最優值,在90%的訓練占比數據集上產生了精確率、F1 得分、AUC 值等6 項最優結果,說明其搜索能力和尋優效果也比較令人滿意。而基于主成分分析改進的算法可能由于數據集的維度較低,暫時體現不出主成分算法降維的優勢,因此其參數優化的分類效果較差。

圖1 遺傳算法適應度變化曲線圖

圖2 粒子群算法適應度變化曲線圖
此外,本研究中適應度值都是訓練集得到的適應度值,最后用測試集得到的分類正確率會比最佳適應度值要大,原因在于本研究采用的是交叉檢驗,得到的適應度值是經過交叉驗證后的最佳適應度值的平均值,值得注意的是適應度值圖里的數據集是訓練數據,然而分類正確率值用的數據集是測試數據;平均適應度值指的是PSO 分類算法和GA 分類算法的種群適應度值,因此這個結果應該是比最佳適應度值要小一些的,不是每一個粒子和基因都是最好的,與Huang S 等[3]和Tang H 等[4]研究討論相似。
通過本研究可以看出,這些尋優算法雖有一定的應用并取得一定的效果,但是均存在不同程度的問題,如經驗選擇法對使用者的經驗豐富度較高且對樣本的依賴程度較大,缺少充分的理論基礎支撐;網格選擇法的弊端在對步長的選擇,如果步長選擇過大容易陷入局部最優,選擇過小則會造成計算量過大;遺傳優化算法需經過選擇、交叉和變異三步,參數設置相對復雜,收斂速度較慢,且容易陷入局部最優解;粒子群優化SVM 參數的優點是收斂速度較快且參數較少,但是也容易陷入局部最優;遺傳或粒子群算法與模擬退火法相結合來優化SVM 參數的方法雖然提升了收斂速度,在一定程度上改善了局部尋優能力差的不足,但在一些實際的應用中可能會出現穩定性差的問題。未來的研究方向可以考慮在機器學習領域,探究利用信息融合的思想來進行模型組合,或者以支持向量機算法為基礎進行分類器集成的方式來提高糖尿病性視網膜病變數據診斷分類的精度。