熊長柱,李健
(四川大學電子信息學院,成都610065)
慢性腎病在全世界內廣泛存在,它是一種進展性疾病,同時早期發生率是晚期的100倍。過早的透析不利于殘余腎功能的保存和復原,因此,借助數據挖掘技術挖掘出能指導患者接受透析治療的關鍵指標很有必要,輔助醫生合理選擇透析時機。目前沒有一種針對終期末腎?。‥nd Stage Renal Disease,ESRD)透析時機選擇的算法。在這種情況下,本文提出了一種基于優化集成學習的模型融合方案提高透析預測精度,通過確定這些特征,醫生能決定患者是否需要透析,合理地為患者選擇透析時機,改善患者生存率。
目前研究已經證實血液透析前和透析后患者死亡率有明顯區別[1-3],而且透析時機對患者其他并發癥有影響[4],另外血液透析對甲狀旁腺素、鈣變化與心臟病死率也有重要的影響[5],因此血液透析的研究有重要的現實需求和意義[6]。目前在透析時機的研究上也已經有許多工作,例如:老年腎病和透析的診斷與治療[7];血液透析在降低血液透析患者的全因死亡率和心血管死亡率的研究[8-10]。
本文采用的特征選擇過程包括產生過程、評價函數、停止準則、驗證過程這四個部分。PCA(Principal Component Analysis)可看作是依次選取方差最大方向,它是通過沿著數據最大方差方向旋轉坐標軸來實現的。本文采用的PCA算法描述如下:
輸入:樣本集D={x1,x2,...,xm};
低維空間維數d'
過程:
2:計算樣本的協方差矩陣XXT;
3:對協方差矩陣XXT做特征分解;
4:取最大的d'個特征值所對應的特征向量 ω1ω2,...,ωd';
輸出:投影矩陣 W=(ω1ω2,...,ωd')
PCA僅保留樣本均值向量即可通過簡單的向量減法和矩陣向量乘法將高維樣本投影到低維空間。PAC一方面舍棄部分信息可以增大樣本的采集密度;另一方面當數據中有噪聲時,舍棄最小特征可以在一定程度上起到去噪效果。
本文綜合利用 RF(Random Forest)、AdaBoost、GB-DT(Gradient Boosting Decision Tree)等集成學習器和SVM(Support Vector Machines)、KNN(k-Nearest Neighbor)、NB(Naive Bayes)、DT(Decision Tree)、MLP(Multilayer Perceptron)、ET(Extremely Randomized Trees)、LR(Logistic Regression)七種分類器,用大量不同數據集來訓練和測試十種模型,進行多項實驗,最后確定此十個模型的最佳權重值。在建立預測模型的過程中每個弱學習者都為分類器,并且通過投票加權方式執行集成學習。模型根據每個弱分類器的不同預測性能,分配不同的投票權重。預測性能越高,投票權越大。最終預測結果是每個弱分類器預測結果的加權平均值。這樣可以提高模型的預測性能,并且可以防止單個學習器過擬合。
本文采用支持向量機(Support Vector Machines)作為集成模型的核心分類器。SVM的目的是尋找一個超平面來對樣本根據正例和反例進行分割,其學習策略便是間隔較大化,最終可轉化為一個凸二次規劃問題的求解。輸入一個訓練數據集 T={(x1,y1),(x2,y2),…(,xn,yn)},其中xi∈ χ=Rn,yi∈ γ={-1,+1},i=1,2….,N;輸出為分類決策函數。選取適當核函數K(x,z)和適當的參數C,構造并求解最優問題。
參數C為懲罰參數,(α1*,α2*,...,αN*)T為拉格朗日乘子向量。當K(x,z)是正定核函數時,上式為凸二次規劃問題。
AdaBoost是一種可將弱學習器提升為強學習器的算法。AdaBoost采取加權多數表決的方法,加大分類誤差率小的弱分類器權值,使其在表決中起作用較大,減小分類誤差率大的弱分類器,使其在表決中起作用較小,AdaBoost算法流程如下:
如上所示,在第1-4行中,初始化樣本權值分布,基于分布bt從數據集D中訓練分類器ht,并估算出ht的誤差。在第6-7行中,確定ht的權重,更新樣本分布,其中Zt是規范化因子,用來確保bt+1是一個分布。
實驗數據來自成都軍區總醫院HIS系統腎內科2011年1月至2015年12月采集到的腎病患者臨床檢驗結果,包含醫院在此階段所有的腎內科287059條不完整臨床數據。經過數據預處理,本章確定的研究對象為慢性腎病樣本1338例,包括25個特征,其中包含透析樣本507例,不透析樣本831例。25個特征經過PCA降維后得到特征集相關重要性如圖1所示。
圖1 特征集相關權重圖
如圖1所示,以SCR為百分比參考的權重系數可知,SCR權重占主導地位,SYSC、CCR和BUN等特征子集占重要作用。
根據LVW 方法選擇前 5個特征:SCR、SYSC、CCR、BUN和P,實驗利用十種分類器進行模型融合。本實驗數據樣本隨機分為訓練集80%(1070個樣本)測試集20%(268個樣本),經過10次隨機實驗取模型預測性能平均值。其中SVM模型性能指標表如表1所示。
表1
本文利用RF、AdaBoost、GBDT等集成學習器和SVM、KNN、NB、DT、MLP、ET、LR 等分類器進行模型融合,其中集成模型的ROC曲線如圖2所示,輸出混淆矩陣圖如圖3所示。
由圖2模型ROC曲線計算得到AUC值為0.97,可知集成模型效果比單一學習器要好。由圖3集成模型混淆矩陣可得,在測試集268個樣本中僅有5個樣本分類錯誤。本文用大量不同數據集訓練和測試十種模型,進行多次實驗,以此確定模型的最佳結合策略,實驗采用十倍交叉驗證法。如表2為集成模型和其他學習器的性能比對表。
圖2 集成模型ROC曲線
圖3 集成模型混淆矩陣
表2
如表2所示,在與其他學習器模型比對中可知,本文提出的集成模型有最好的平均精度和較低的標準偏差。實驗結果表明本文提出集成學習的模型是一種有效的透析預測方法。
本文對ESRD透析時機進行了分析和預測,研究了不同模型對預測性能的提升效果,提出了基于集成學習的預測模型。我們通過其他十種學習器的大量對比實驗可知,本文提出的基于集成學習的模型具有降低亢余特征和消除噪聲的明顯效果,具有更加優良的泛化能力以及更低的標準誤差。研究結果已經證實本文提出的模型在透析時機預測中具有有效性。