繆 琦 朱玉全
(江蘇大學計算機與通信工程學院 鎮(zhèn)江 212013)
糖尿病治療時間長,沒有立竿見影的治療方法,并且隨著病情的加重,有著嚴重的并發(fā)癥。糖尿病前期的及時發(fā)現(xiàn)對于控制糖尿病的發(fā)展有極其重要的意義。中國糖尿病最新數據顯示:糖尿病前期發(fā)現(xiàn)率僅有35.7%,其中70%的人群是以餐后血糖為主。而目前常規(guī)體檢僅測空腹血糖,這會造成大量的糖尿病漏診。若在體檢中加入餐后血糖則會帶來人力物力時間上的巨大消耗,因此可以建立一個有效的數學模型協(xié)助醫(yī)生對糖尿病前期進行有效的判斷,從而提高糖尿病前期的診斷率。
目前糖尿病數據挖掘常采用的分析方法有神經網絡[1],決策樹[2]和支持向量機[3~4]等。相對于其他的方法,支持向量機的優(yōu)點是顯而易見的[5],它以VC理論和結構風險最小化準則為理論基礎,找到當前有限樣本下的最優(yōu)解,模型的泛化性較好;少量支持向量決策出結果,模型的魯棒性較好等。但是支持向量機在糖尿病預測的準確率上稍遜色,并且訓練時間相對較慢。本實驗針對這兩個問題對SVM糖尿病預測模型進行改進,提出新的PSO-FWSVM糖尿病預測模型。
傳統(tǒng)的SVM算法假設所有的特征對預測結果的重要性是相同的,但應用在具體的數據集時,樣本的不同特征與目標函數的相關性往往是不同的。通過特征加權可以篩選出對于糖尿病分類更相關的特征,增強這部分特征對結果的作用,并除去部分冗余的特征,在一定程度上可以提高SVM模型的準確率和分類速度。
因為懲罰因子和核函數參數是影響準確率的重要因素,尋找到合適的參數對建立SVM模型非常重要。目前有很多的優(yōu)化算法,比如交叉檢驗算法、遺傳算法、網格搜索算法和粒子算法等。其中網格搜索算法是目前普遍使用的方法,即在參數列表中進行窮舉搜索,這種方法在范圍足夠大和取值足夠多的情況下可以找到全局最優(yōu)解,但是這樣會浪費時間。而粒子群算法是一種發(fā)展很快的全局優(yōu)化算法,無需遍歷范圍內的所有參數組,尋優(yōu)策論簡單,收斂速度快,能較快獲取合適的σ σ和C;局限性是容易出現(xiàn)局部收斂現(xiàn)象,自適應改進慣性權重的PSO[6]可以緩解這一問題。
SVM是一種二類分類模型,其基本模型定義為特征空間上間隔最大的線性分類器,其學習策略便是間隔最大化,求解辦法就是將其轉化為一個凸二次規(guī)劃問題[7]。
對于線性可分的樣本,找到一個超平面f(x)=wTx+b使得樣本可分,該平面離數據點的幾何間隔越大,則分類的可靠性都越高。則參數要滿足以下的約束條件。
式(1)本身就是一個凸二次規(guī)劃問題,使用拉格朗日乘子法可將其轉化成“對偶問題”,可以更高效地解決這一問題。對式(1)的每條約束添加乘子αi≥0得到函數如下所示。
要想得到式(2)的解,則是先求(w,b)的極小,再求αi的極大得到式(1)的對偶問題:
對于非線性樣本,樣本空間是有限維的,則一定存在高維空間使得樣本線性可分。用?(x)表示x映射后的特征向量,經過式(2)、(3)得到的公式如下。
其中:C是懲罰系數。
本文選取RBF函數建立SVM模型,它能夠實現(xiàn)非線性映射,通??梢匀〉煤芎玫男Ч夷P蛥瞪佟碗s度低。SVM模型運用到實際情況時,數據集中各個特征與分類結果的相關性是不同的,導致不同的特征對預測結果會產生不一樣的影響。為了解決這個問題,本文對RBF核函數進行特征加權處理,即依據重要性對各個特征賦予不同的權重,并將其運用到核函數的計算中,從而使核函數的計算可以偏向強相關的特征[9~10]。
若Kp-RBF表示RBF核函數,X為其特征向量矩陣,P是n階的權重矩陣,n是輸入矩陣空間的維度,則加權RBF核函數的公式為
權重矩陣P取n階的對角矩陣,表達式為
特征的重要性度量值,也表示在特征加權矩陣中第i個特征值的權重。通過對不同特征賦予不同的權重,從而使具有更小權重的特征在分類中起到更小的作用。
由此可見wi的求取很重要,本文在隨機森林(RF)的模型中衡量各個變量的預測可以力,即求各個變量的信息值(VI)作為wi;以gini不純度作為最優(yōu)條件的選擇依據,量化每個特征對于分類的貢獻。假設RF中共有n棵樹,第i棵樹中,節(jié)點m的gini指數K表示m節(jié)點中有K個類別,pmk表示節(jié)點m中類別k所占的比例;節(jié)點m分枝前后的gini指數變化量?G=GIm-GIl-GIr,后兩項分別表示m節(jié)點分枝后新節(jié)點的gini指數;特征 Xj在節(jié)點m的重要性表示節(jié)點的樣本數量nj占總樣本數量N的比重;特征Xj在決策樹中出現(xiàn)的節(jié)點在集合特征M 中,那么Xj在第i棵樹的重要性對n棵樹中特征Xj的VI值求和并歸一化,則最終特征 Xj的重要性
該模型的性能很大程度上取決于核參數σ和懲罰因子C。參數σ越小,核函數對x的衰減越快,對x x的變化敏感,SVM的分離面更細致,則推廣能力降低;參數σ越大,核函數對x的衰減變慢,對x的變化遲鈍,SVM的分離面更平滑,則推廣能力提高。懲罰系數C的取值影響置信范圍區(qū)間的確定,C取值小表示對經驗誤差的懲罰小,學習機器的復雜度小而經驗誤差值較大;C取無窮大,則會造成過擬合,這就表示訓練樣本全部被正確分類。每個特征子空間可以找到一個或多個合適的值使得SVM泛化能力達到最佳狀態(tài)[11],本文將使用改進后的自適應PSO算法對SVM模型進行參數尋優(yōu)。
粒子群優(yōu)化算法是一種自動的尋優(yōu)技術,它的基本思想是:通過個體的行為和種群信息的共享得到最優(yōu)解。因為它容易實現(xiàn)并且參數相對簡單,可以被運用在函數優(yōu)化、模糊系統(tǒng)控制等各個領域。
在PSO算法中,每個可能的解被抽象成沒有質量和體積的粒子,經過無數次迭代得到的最佳位置就是模型合適的參數解[12]。這些粒子的初始速度和位置是隨機的,假設當前為第t代,在N維搜索空間中的粒子可以表示如下所示。
粒子位置:
粒子速度:
粒子群運行到t代,通過比較每個粒子的歷史最佳適應度,可以得到粒子個體本身的最優(yōu)解,通過比較所有粒子的最佳適應度,可以得到的群體最優(yōu)解,其公式如下所示。
個體最優(yōu):
種群最優(yōu):
在t+1代,根據這兩個極值,重新更新粒子的速度和位置,其公式如下所示。
粒子新速度:
PSO參數的常見選擇是:取c1=c2=1,自身經驗和群體信息的作用相同。r1和r2為(0,1)中的隨機數。w取線性遞減權值0.4,隨著迭代次數的增多,w值逐漸減小,這在一定程度上緩解了局部缺陷。因為一開始更好的全局索搜能力可以幫助粒子快速來到最優(yōu)解的附近,而之后則需要較強的局部搜索能力確定這個最優(yōu)解。但是w僅與迭代次數有關,在解決該問題上還存在不足[14]。
影響PSO算法性能的主要因素是參數c1,c2,w以及粒子領域的拓撲結構,本次實驗選擇調整PSO的主要參數w來平衡全局搜索性能和收斂速度,避免“早熟”現(xiàn)象。根據處理數據過程中表現(xiàn)的數據特征來調節(jié)w,充分發(fā)揮自適應調節(jié)的能力,可以使得不同狀態(tài)的粒子擁有不同的權重,避免陷入局部最優(yōu)[15]。在本文的公式中,選擇的數據特征是適應度,即預測模型的交叉驗證準確率。根據個體驗證準確率的大小,將粒子群分成兩個子集,分別采用不同的權重公式,使得群體的慣性權重層次更加豐富。
具體實現(xiàn)的思路是:假設粒子群的個數為n,在k次迭代中粒子Pi的驗證準確率為 fi,最優(yōu)粒子的驗證準確率 fmax;粒子群的平均驗證準確率為 fˉ,高于 fˉ的那部分準確率再求平均值得到-f',則剩余準確率低于 fˉ的部分再求平均值得到-f''。慣性權重的公式如下所示。
以上式子保證了較優(yōu)粒子有較小的w,會加快全局收斂的速度;較差粒子的w范圍在[0.5,1],使其在迭代后期避免陷入局部收斂。
糖尿病數據集包含多個特征,每個特征對預測結果的影響不同,并且無關的特征不僅會增加模型的建立時間,還會降低分類的準確率,所以采用隨機森林算法對數據集進行特征選取。
核參數σ和懲罰因子C對糖尿病模型的預測結果有很大的影響,因此本文利用粒子種群對FWSVM模型進行參數尋優(yōu),將識別的交叉驗證準確率當作PSO的適應度函數,在進化過程中根據適應度自適應地調整參數,找到最佳解[16]。PSO-FWSVM模型流程如圖1所示。
圖1PSO-FWSVM模型流程圖
實驗具體步驟如下。
1)利用隨機森林算法對實驗數據進行初步篩選,通過設定閾值,刪除對分類結果貢獻比較小的特征,得到新的特征集。用新的特征集建立新的隨機森林,調整樹的深度和個數進行多次實驗,其中分類精度最高的一次計算出的特征重要度即一一對應特征權重矩陣中的數值,已刪除的特征對應的權重數值為0。
2)設置核函數的初始參數,如核參數變化范圍,懲罰參數的變化范圍,隨機設置一組值。
3)設置粒子群的初始參數,比如種群規(guī)模,位置和速度等,以FWSVM模型算法所求得的交叉驗證準確率作為粒子的適應度函數。
4)采用PSO算法更新單個粒子的速度和位置,產生新的粒子并計算其適應度值。
5)判斷當前粒子的個體極值是否為種群的最優(yōu)解,若是則將當前的個體極值替換為全局最優(yōu)解,若不是,則返回步驟4)。
6)重復步驟4)、5),直至達到最大迭代次數。歷史迭代中,單個粒子的個體極值是全局最優(yōu)解且滿足 C值最小時,其對應的參數組即為最佳解。
7)將得到的最佳解用于FWSVM模型訓練,并對糖尿病測試集進行預測。
原始數據由某醫(yī)院提供,經篩選后共有936個觀測值。糖尿病患者和非糖尿病患者人數比為1:3.5,每個樣本包含13個特征如血糖指數、舒張壓、BMI等,由于這些特征的量綱不同,會影響到數據分析的結果,需對樣本的每個特征維度分別進行歸一化處理。經過試驗對比,將數據歸一化至[-1,1]區(qū)間時,效果最好,處理后的數據即為實驗數據。從實驗數據中隨機抽取70%作為訓練集,30%作為測試集。
僅依靠準確率來判斷模型的好壞是不全面的,必須加上更加復雜和全局性的標準。為了比較模型的好壞,采用了三個常用評價指標—敏感性、特異性、約登指數,它們的表達式如下。
通過隨機森林算法篩選出建立預測模型使用的8個特征以及其對應的重要性度量值如圖2所示。
圖2 特征重要性排序
將訓練集數據輸入FWSVM模型中,利用自適應PSO算法找到最優(yōu)參數組(C,σ),初始種群為20,進化代數為100,c1=c2=1。為了避免模型不可靠,尋優(yōu)過程中引入3折交叉驗證法,得到的平均準確率作為適應度,尋優(yōu)結果如圖3所示。
圖3中,x軸代表進化代數,y軸代表適應度值即訓練集的識別準確率。從圖可知,自適應PSO算法僅需數次迭代就可以達到最佳適應度為90.77%,此時得到核參數σ和懲罰因子C分別為4.2194和1.0714。運用找到的最優(yōu)FWSVM模型對驗證集進行預測。
為了驗證本方法的有效性,同時采用網絡搜索-SVM、決策樹和BP神經網絡對實驗數據進行訓練和預測,四個模型的詳細比較見表1。
圖3 自適應PSO尋優(yōu)結果
表1 四個模型的準確度、敏感性、特異性、約登指數、運行時間比較
從表1中可以看出,PSO-FWSVM模型對糖尿病數據的分類準確率略低于BP神經網絡模型為90.36%,且運行時間最短為0.93s;從三個評價指標上來看,PSO-FWSVM模型是可靠程度最高的,對糖尿病病人的正確識別達到78.95%,對非糖尿病患者的正確排除達到95.59%,模型預測結果的真實性較高。綜合來看,PSO-FWSVM模型的性能優(yōu)于其他的模型,具有一定的適用性,可用于糖尿病的預測。
PSO-FWSVM可以用于建立糖尿病預測模型。通過特征加權,篩選出對分類效果影響較大的參數,從而使得分類結果更加準確,并且由于刪除了不必要的特征,在一定程度上提高的模型運行速度;通過自適應PSO優(yōu)化算法尋找SVM模型的最優(yōu)參數,提高模型的正確識別率并縮短訓練模型的時間。
從最終結果可以看出,非糖尿病患者比糖尿病患者更容易被正確識別出來。這可能是由于考慮各個特征對識別結果的重要程度時,沒有考慮樣本數量的不平衡和從多個維度去衡量各個特征的影響力。在之后的研究中,收集更豐富的糖尿病樣本集,科學改進篩選特征的方法,并通過加入新的模型性能判斷指標,更加全面地驗證該模型的分類效果,使得PSO-FWSVM糖尿病預測模型具有更快的運行速度和更準的分類效果。