陳婉琦,林勇
上海理工大學醫(yī)療器械與食品學院,上海200093
骨質疏松癥是骨骼的主要疾病,其特征是骨密度降低和骨組織微結構損壞,進而導致骨折敏感性增加[1]。由骨質疏松癥引起的骨折叫骨質疏松性骨折,其給患者帶來巨大痛苦,并給社會和醫(yī)療系統(tǒng)帶來沉重負擔[2]。骨質疏松癥的發(fā)病率在女性中最高,但在接下來的50年中,男性的發(fā)病率有可能會翻3倍[3]。因此根據臨床變量預測男性骨質疏松性骨折風險對其預防至關重要。
近年來機器學習在醫(yī)學領域的應用越來越廣泛,出現了基于機器學習的骨質疏松性骨折預測研究。章軼立等[4]通 過Group Lasso 回歸算法和Logistic回歸模型初步構建骨質疏松性骨折風險評估工具。Villamor等[5]結合臨床和生物力學數據通過支持向量機(Support Vector Machine,SVM)對髖部骨折進行有效預測。此類單一模型的預測精度仍有較大提升空間,進而有研究提出采用集成學習方法提高模型預測性能。Kruse 等[6]使用邏輯回歸、隨機森林模型以及Bagging 和Boosting 集成學習方法預測髖部骨折,研究結果表明集成學習方法預測效果更佳。Kilic 等[7]使用 Bagging、梯度提升(Gradient Boosting)、隨機子空間(Random Subspace)采樣等集成學習方法對絕經后婦女進行骨質疏松性骨折預測,結果顯示基于隨機子空間的隨機森林(Random Forest based on Random Subspace, RSM-RF)集成分類器模型預測精度最佳。目前使用集成學習模型的研究絕大多數是對相同結構的個體學習器進行集成,使用異構分類器的研究還相對較少。
本研究使用學習法的典型代表Stacking 構建異構分類器EtDtb-S,經相關性分析后篩選出16 個特征作為特征向量,選用極端隨機樹、基于決策樹的Bagging 集成模型(Decision Tree Based on Bagging,DTB)作為初級學習器,邏輯回歸作為次級學習器進行集成。實驗結果表明集成的異構分類器比同構分類器預測準確性更高。
本研究采用MrOs Online(https://mrosdata.sfcccpmc.net/)上的美國男性骨質疏松性骨折研究數據,數據包含5 994 例男性病例樣本,病例均為年齡在65歲以上的非臥床男子,其中有12.13%(727名)的患者主要部位(髖部、頸椎、腰椎、胸椎、腕部、肩部)發(fā)生過骨折。
選取MrOs 數據集中的骨相關數據作為基線數據,包括臨床數據、骨密度數據、骨小梁評分數據、腹主動脈鈣化數據以及病例骨折情況記錄數據。每項基線數據均包含若干特征,如骨密度數據中包含髖部骨密度、股骨骨密度、腰椎骨密度等特征。對這些數據進行特征相關性分析,提取與骨折相關性較高的特征。部分基線數據描述如表1所示。
特征選擇是選擇相關特征子集以用于模型構建的過程。本研究選用的相關數據文件中均包含眾多特征,其中有許多冗余或不相關特征,它們會使得機器學習算法的訓練速度降低,增加模型的復雜性,產生模型過擬合現象并會影響預測模型的準確性。因此對數據進行特征選擇,考慮到所用學習算法較多,且對模型進行了集成學習,采用過濾式特征選擇方法:通過數據的內在屬性來估計特征的差異性,根據特征的差異性評分進行排序,并選取評分較高的一部分特征作為特征子集輸入到分類算法上。過濾式方法計算簡單快速,獨立于分類算法,適用于不同的分類算法[8]。筆者選用過濾式中基于皮爾遜(Pearson)相關系數的算法。
Pearson 相關系數是衡量向量相似度的一種方法。輸出范圍為-1~+1,0 代表無相關性,負值為負相關,正值為正相關。其公式為:
其中,n為樣本個數,Xi為選取的特征數據集,Yi為標簽數據集,μX表示隨機變量X的均值,μY表示隨機變量Y的均值。從臨床數據中提取身高、體質量、體重指數(BMI)等數據;骨密度數據中提取髖部骨密度、股骨骨密度、腰椎骨密度等數據;腹主動脈鈣化數據中提取腹主動脈鈣化評分數據;骨小梁評分數據中提取L1~L4腰椎段的骨小梁評分數據;并從骨折情況數據中提取病例主要部位骨折數據標簽。經過相關性分析后,剔除與骨折數據標簽Pearson 相關性低于0.6 的特征,對于存在高度相關的特征組(本研究取Pearson 相關性高于0.9)每組僅保留一個特征。最終篩選出骨小梁評分、腹主動脈鈣化評分、身體質量指數、髖部骨密度、股骨骨密度、頸部骨密度T評分等共16個相關性較高的特征納入模型中。
本研究數據中只有12.13%的患者主要部位骨折,數據類別失衡較嚴重,若直接使用不平衡的數據進行實驗,則多數類與少數類之間的不平衡將導致機器學習產生偏差,影響模型的性能。目前重采樣技術是處理類不平衡問題的常用方法,例如過采樣,欠采樣和綜合采樣。其中過采樣少數類雖可以平衡本文數據的類分布但無法解決數據集中存在的類重疊問題,并在使用分類器后易產生過擬合現象。本研究將過采樣方法Smote 與數據清除方法Tomek links 相結合可以解決上述問題[9]。Smote+Tomek 方法不僅可以平衡數據,還能消除決策邊界錯誤一側的嘈雜示例,最適用于本研究這種具有少量正樣本的數據集。
集成學習是一種使用多個基礎學習器來提高預測準確性的機器學習技術。對分類器進行集成的思想是將一組分類器使用選定的結合策略通過多種方法(例如投票和平均)對新樣本進行分類[10]。目前行之有效的集成技術是Bagging,Boosting,Stacking 和隨機子空間(Random subspace)方法[11]。本文選用極端隨機樹(Extremely Randomized Trees,ET)、DTB 作為初級學習器,邏輯回歸作為次級學習器,使用Stacking 算法對上述不同個體學習器進行集成,構建異構分類器以進一步提高模型預測精度。集成時初級學習器ET、DTB 的個數均取1,且ET、DTB 中決策樹的集成度均為40。
Stacking 先從初始數據集訓練出幾個不同的初級學習器,并通過訓練一個次級學習器來結合這些初級學習器[12]。用于訓練次級學習器的數據集是一個新數據集。在這個新數據集中,初級學習器的輸出被當作樣例輸入特征,而初始樣本的標記仍被當作樣例標記[13]。我們需要定義初級學習器以及次級學習器來構建Stacking。本文Stacking 框架如下所述。
設基學習算法為Lk,Lk分別為ET、DTB。設基學習器為Ck:
其中,S表示本文骨質疏松患者訓練數據集,且S中的樣本為Si:
其中,Xi為篩選出的16 維特征向量,yi為主要部位是否發(fā)生過骨折。
使用交叉驗證方式,用訓練初級學習器未使用的樣本來產生次級學習器的訓練樣本。本文將數據集S分割為20份。此時設為數據集S中去除第j份數據子集后使用第k個基學習算法訓練出的基學習器,其表示為:
其中,Sj為第j份數據子集。將第j份數據子集中的特征向量作為基學習器的測試集來預測是否會發(fā)生骨折,預測結果表示為:
為每一份數據子集預測出患者發(fā)生骨折和不發(fā)生骨折的概率,得出基學習器的預測結果集為作為次級學習器的數據集,其中yj為該患者是否骨折的初始樣本標記。
本文采用邏輯回歸作為Stacking 的次級學習器算法,其模型可以表示為:
其中,xi∈xl,θ為需學習的參數,hθ(x)為邏輯回歸的假設函數,其公式為:
將式(7)代入式(6)可得:
該模型的目標函數可以定義為:
其中,J(θ)為邏輯回歸模型的代價函數,本文使用交叉熵作為代價函數,其公式為:
其中,m為訓練樣本的個數,y為樣本的標簽值。將基學習器學習所得的是否發(fā)生骨折的結果集xl作為邏輯回歸模型訓練樣本的特征數據,將初始樣本中病例是否骨折的標記yl作為邏輯回歸模型的標簽,最終訓練得到本文基于Stacking的異構分類器EtDtb-S。
為驗證本研究的有效性,本文采用準確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1值(F1)對各分類模型進行評估。
其中,TP為真陽性,表示實際骨折患者預測結果也為骨折;TN為真陰性,表示實際健康男性預測結果也為健康;FP 為假陽性,表示實際健康男性預測結果為骨折患者;FN為假陰性,表示實際骨折患者預測結果為健康。
本文將構建的EtDtb-S 模型與單模型以及同構分類器共8種模型進行對比,設標簽為骨折的樣本為正類樣本,不骨折的樣本為負類樣本。用于實驗對比的模型分為2 類:(1)單獨使用ET 模型和DTB 模型;(2)使用不同集成學習方法(Bagging、Boosting、Stacking)分別對ET模型、DTB模型進行同構集成。
對比實驗采用十折交叉驗證,驗證過程中每一折內類別標簽比例隨機,為減少因樣本劃分不同而引入的差別,本文重復進行10次十折交叉驗證再取均值,得出以上共9 種模型的準確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1值(F1)以及相應標準差。
本文數據集在不同模型下的分類預測結果及標準差如表2所示。
表2 9種模型預測結果及標準差比較(± s)Tab.2 Comparison of prediction results obtained by 9 models(Mean±SD)
表2 9種模型預測結果及標準差比較(± s)Tab.2 Comparison of prediction results obtained by 9 models(Mean±SD)
模型ET DTB ET-Bagging DTB-Bagging ET-Boosting DTB-Boosting ET-Stacking DTB-Stacking EtDtb-S準確率0.904±0.012 0.903±0.088 0.880±0.009 0.889±0.056 0.902±0.012 0.917±0.060 0.908±0.013 0.905±0.063 0.932±0.021精確率0.890±0.019 0.918±0.020 0.857±0.026 0.888±0.027 0.894±0.017 0.920±0.027 0.885±0.022 0.910±0.022 0.918±0.024召回率0.927±0.013 0.901±0.167 0.918±0.019 0.885±0.167 0.923±0.011 0.924±0.123 0.935±0.010 0.906±0.165 0.957±0.053 F1值0.904±0.012 0.895±0.090 0.883±0.012 0.873±0.109 0.905±0.013 0.907±0.090 0.911±0.010 0.886±0.119 0.929±0.022
由表2 可以發(fā)現,本文異構分類器EtDtb-S 的分類精度為0.932,相較單獨使用ET 的分類精度0.904和單獨使用DTB的分類精度0.903,分別提高2.8%和2.9%?;贐agging 對ET、DTB 分別進行集成的同構分類器ET-Bagging、DTB-Bagging 分類精度分別為0.880、0.889;基于Boosting 對ET、DTB 分別進行集成的同構分類器ET-Boosting、DTB-Boosting 分類精度分別為0.902、0.917;基于Stacking 對ET、DTB 分別進行集成的同構分類器ET-Stacking、DTB-Stacking 分類精度分別為0.908、0.905。本文的異構分類器相較上述同構分類器的分類精度提高1.5%~5.2%。由此可得出,本文異構分類器的分類精度優(yōu)于單模型和同構分類器,分類效果最佳。
為比較上述分類器的性能,繪制出各分類器基于十折交叉驗證的ROC 曲線,在得出每一折交叉驗證的ROC 曲線下面積(AUC)值后求出AUC 的均值,結果如圖1 所示。ROC 曲線越靠近左上角邊界,即AUC 越大,表示分類器性能越好。由圖1 可以看出,在ROC 曲線中,ET-Bagging 和DTB-Bagging 的AUC均值為0.95,DTB 和DTB-Stacking 的AUC 均值為0.96,ET、ET-Boosting、DTB-Boosting 和ET-Stacking的AUC 均值為0.97,本文異構分類器EtDtb-S 的AUC 均值為0.98。以上數據說明,本文提出的基于Stacking 的異構分類器EtDtb-S 相較于單模型和同構分類器分類性能最好。
本文介紹了一種用于骨質疏松性骨折預測的新的集成方法,使用Stacking 對ET、DTB 模型進一步集成構建出異構分類器EtDtb-S。首先,提出了基于機器學習理論的Stacking 集成方法的模型構建過程;其次,使用不同集成學習方法對本文集成方法中所采用的初級學習器分別進行集成,將單獨使用初級學習器的模型、集成后的同構分類器與本研究的異構分類器分別對選取的特征變量進行訓練;最后,通過十折交叉驗證得出的準確率、精確率、召回率、ROC曲線比較各模型在測試集上預測的性能,驗證本文提出方法的有效性。用Stacking 集成時初級學習器ET 和DTB 在模型結構和分類偏差上的差異性改善了集成后異構分類器的預測精度。實驗結果表明,本文基于Stacking 的異構分類器能夠正確預測骨質疏松性骨折的大部分病例,并且比單模型和集成的同構分類器預測準確性更高,具有最好的分類性能。
本文在運用Stacking進行模型融合的過程中將數據集分割成20份,葉子結點最少樣本數為1,內部結點再劃分所需最小樣本數為2,決策樹集成度為40,后續(xù)還將調整這些參數,以進一步提高模型性能。本研究還嘗試過加入其它分類模型例如神經網絡作為集成模型的基學習器,但最終預測準確率并不理想,后續(xù)將基于本文現有個體學習器的特征,嘗試加入不同神經網絡作為個體學習器,進一步提高模型的準確性和通用性。
圖1 9種模型ROC曲線對比圖Fig.1 Comparison of receiver operating characteristic curves of 9 models