賈文慧,孫林子,景英川
(1.太原理工大學(xué) 數(shù)學(xué)學(xué)院,山西 晉中 030024; 2.蘇州大學(xué) 第一臨床學(xué)院,江蘇 蘇州 215000)
股骨頸骨折是臨床上常見的骨折之一,股骨頸骨折手術(shù)預(yù)后質(zhì)量評分(Harris評分)是骨科醫(yī)生較為關(guān)注的問題[1]。隨著病例數(shù)據(jù)的累積,可利用Harris評分對病例數(shù)據(jù)進(jìn)行分類預(yù)測。而面對大數(shù)據(jù)時代數(shù)據(jù)海量化、復(fù)雜化和異質(zhì)化的新挑戰(zhàn),XGBoost模型以其高效、靈活和準(zhǔn)確的特點成為解決分類問題的常用工具之一[2]。XGBoost 是極端梯度上升(Extreme Gradient Boosting)的簡稱,它兼具線性模型和Boosted Tree模型的一種優(yōu)化模型[3]。由于XGBoost模型對具有輸入數(shù)據(jù)要求不高、自動變量選取、計算復(fù)雜度不高等優(yōu)勢,被統(tǒng)計學(xué)、數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)等專家廣泛應(yīng)用于統(tǒng)計學(xué)習(xí)、數(shù)據(jù)分析和人工智能等領(lǐng)域。特別是在醫(yī)療領(lǐng)域,XGBoost模型可利用歷史病例數(shù)據(jù)構(gòu)建模型并進(jìn)行分類預(yù)測。當(dāng)新患者病例出現(xiàn)時,依據(jù)相關(guān)病例信息,可直接進(jìn)行預(yù)測,幫助醫(yī)生做出更加合理且有效的判斷,有助于指導(dǎo)后續(xù)醫(yī)療工作。
醫(yī)學(xué)領(lǐng)域?qū)W者對股骨頸近端骨折的病例做了大量研究,以股骨頸病患的臨床研究和試驗研究居多[1,4]。本文開創(chuàng)性地使用XGBoost模型,對股骨頸骨折的相關(guān)數(shù)據(jù)進(jìn)行了分析,并利用使用最為廣泛且認(rèn)可度最高的Harris評分標(biāo)準(zhǔn)[5]對股骨頸骨折的近期療效做了相應(yīng)的評價。Harris評分是由HARRIS(1969)提出的一套適用于各種髖關(guān)節(jié)疾患的療效數(shù)值評價標(biāo)準(zhǔn)。其滿分為100分,90分以上表示手術(shù)療效優(yōu)良;80~89分表示手術(shù)療效較好;70~79分表示手術(shù)療效尚可;低于70分表示手術(shù)療效較差。在臨床研究中,骨科醫(yī)生認(rèn)為Harris評分大于70分的是“成功”手術(shù),而小于70分的則為“不成功”。為方便臨床醫(yī)生的應(yīng)用,筆者將Harris評分作為一個二分類問題解決。由于影響Harris評分結(jié)果的因素較多,本文將采用XGBoost模型建立預(yù)測精度高且高效的分類模型。建立Harris評分分類模型后,可依據(jù)患者的自身情況、手術(shù)狀況等方面的信息進(jìn)行股骨頸骨折近期療效的準(zhǔn)確預(yù)測,這一模型的建立,將會給臨床實踐帶來積極的影響[3]。
XGBoost(Extreme Gradient Boosting)算法是一種大規(guī)模并行Boosted Tree的模型。而Boosted Tree最基本的組成被稱作回歸樹(regression tree),也稱CART.以判斷一個人是否喜歡玩電腦游戲的回歸樹為例[2](如圖1所示),簡單說明了回歸樹是依據(jù)輸入若干因素的屬性并將其分配到每一葉子節(jié)點上,且每一葉子節(jié)點對應(yīng)一個預(yù)測的實數(shù)分?jǐn)?shù)。通常僅依據(jù)一棵回歸樹是無法準(zhǔn)確的對數(shù)據(jù)進(jìn)行預(yù)測,因而,將會采用多棵回歸樹對同一問題進(jìn)行分類判斷。根據(jù)圖1的例子,構(gòu)造出如圖2所示的兩顆回歸樹進(jìn)行分類預(yù)測,每個樣本的預(yù)測結(jié)果即為每棵樹預(yù)測的分?jǐn)?shù)之和。
圖2 兩棵回歸樹預(yù)測模型Fig.2 Two-trees regression prediction models
將XGBoost模型可表示為:
當(dāng)建立模型時,需要找到最優(yōu)的參數(shù),通常選擇采用使目標(biāo)函數(shù)值為最小的參數(shù)[6]。一般目標(biāo)函數(shù)包含:誤差項L(θ)(誤差函數(shù))和正則化項Ω(θ)(衡量模型的復(fù)雜度)兩項。將目標(biāo)函數(shù)fobj(θ)表示為:
fobj(θ)=L(θ)+Ω(θ) .
式中,分別定義
當(dāng)對訓(xùn)練數(shù)據(jù)進(jìn)行學(xué)習(xí)時,每次在保留原有模型不變的基礎(chǔ)上,加入一個新的函數(shù)f,觀察對應(yīng)的目標(biāo)函數(shù),若加入新的函數(shù)使目標(biāo)函數(shù)盡可能減到最小,則將該函數(shù)加入到模型中。過程如下:
式中,C表示與f無關(guān)的常數(shù)項[1]。
之后,對目標(biāo)函數(shù)進(jìn)行泰勒展開得到如下的近似目標(biāo)函數(shù):
當(dāng)去掉常數(shù)項C時發(fā)現(xiàn),目標(biāo)函數(shù)只依賴于每個數(shù)據(jù)點在誤差函數(shù)上的一階和二階導(dǎo)數(shù)。
下面討論目標(biāo)函數(shù)中模型復(fù)雜度的定義。首先,對f細(xì)化,可將回歸樹劃分為樹的結(jié)構(gòu)部分q和葉子權(quán)重部分ω,即:
ft(x)=ωq(x),ω∈RT,q∶RT→{1,2,…,T} .
結(jié)構(gòu)部分q把輸入變量映射到葉子的索引號上,權(quán)重ω給定了每個索引號對應(yīng)葉子的實數(shù)分?jǐn)?shù)值。接下來,將模型的復(fù)雜度定義為每棵回歸樹中節(jié)點的個數(shù)與其葉子節(jié)點對應(yīng)的實數(shù)分?jǐn)?shù)值的平方的和。即
式中,γ,λ是調(diào)整參數(shù),防止模型過度擬合。此時,可將目標(biāo)函數(shù)進(jìn)一步表示為:
式中,Ij={i|q(xi)=j}表示第j棵樹中每一葉子中的樣本集合,令
即
這時,假設(shè)樹的結(jié)構(gòu)部分q已知,則可通過此目標(biāo)函數(shù)來找到最好的ω,及其對應(yīng)目標(biāo)函數(shù)的最大增益,其實是將需要解決的問題轉(zhuǎn)化為求解二次函數(shù)的最小值問題。解得:
式中,fobj作為評價模型的打分函數(shù),fobj值越小,代表對應(yīng)模型越好[1]。接下來,需要列舉大量的回歸樹結(jié)構(gòu),使用fobj找到最優(yōu)的樹結(jié)構(gòu),放到已有模型中,重復(fù)以上方法,建立最優(yōu)的Boosted Tree.但列舉全部的回歸樹的結(jié)構(gòu)不太現(xiàn)實,因此,采用“貪心法”,即每次對已有的葉子加入新的分割,并計算因此獲得的最大增益。對于具體的分割方案,可獲得的增益計算公式如下:
式中,第1項表示分割后左子樹產(chǎn)生的增益,第2項表示分割后右子樹產(chǎn)生的增益,第3項表示不進(jìn)行分割的增益,γ表示由于分割加入新葉子帶來的復(fù)雜度代價。
為了進(jìn)行高效的分割,需要具體計算對某一分割左右的導(dǎo)數(shù),對于所有分割,只需按上述方法計算導(dǎo)數(shù)即可。值得注意的是,由于分割加入新葉子后會帶來增加復(fù)雜度的代價,因此加入新的分割不一定總是件好事。
以上推導(dǎo)了Boosted Tree的學(xué)習(xí)過程,了解到Boosted Tree的實質(zhì),這有利于將此方法直接應(yīng)用于解決實際分類問題中。本文使用XGBoost方法的實質(zhì)就是在單個多CPU計算機(jī)上并行Boosted Tree,提升Boosted Tree的預(yù)測精度[2,6]。
股骨頸手術(shù)預(yù)后質(zhì)量分析,主要是對Harris評分進(jìn)行分類。根據(jù)已有研究表明[3-4],影響Harris評分結(jié)果的因素變量較多,主要有患病年齡、患者性別、骨折類別、致傷原因、身體質(zhì)量指數(shù)、是否患有糖尿病、是否飲酒、是否吸煙、pauwl分型類型、garden分型類型 、手術(shù)持續(xù)時間、手術(shù)解剖部位、正位螺釘是否平行、側(cè)位螺釘是否平行、受傷至手術(shù)時間、復(fù)位質(zhì)量、復(fù)位過程是否穿透股骨頭、螺釘是否至軟骨下、是否為三角結(jié)構(gòu)、經(jīng)過股骨距是否合理、患者術(shù)后不負(fù)重時間是否合理、骨折是否愈合等。
本文數(shù)據(jù)來自山西醫(yī)科大學(xué)第二附屬醫(yī)院骨科,2014年10月—2016年10月股骨頸病患的數(shù)據(jù)。依據(jù)大量的相關(guān)研究[1,5],收集了上述22個影響Harris評分結(jié)果的自變量,及“成功”與“不成功”兩類評分因變量,共采集病例樣本數(shù)80例。由于數(shù)據(jù)樣本量有限且影響Harris評分的變量較多,同時希望能高效利用數(shù)據(jù)信息,因此,采用XGBoost模型對這一數(shù)據(jù)進(jìn)行分析研究。
數(shù)據(jù)預(yù)處理對于模型建立有至關(guān)重要的作用,能夠直接影響最終預(yù)測結(jié)果。收集數(shù)據(jù)涉及較多的變量,且變量類型復(fù)雜,原始數(shù)據(jù)的自變量中有8個多分類變量和14個二分類變量(見表1)。為方便建模,將變量矩陣改寫成數(shù)值矩陣,其中多分類變量被有序分類,如患病年齡分為如表2所示的v1(18歲以下)、v2(18—50歲)、v3(51—70歲)和v4(70歲以上)。另外,需要把因變量和自變量分離,并在XGBoost模型中分別指定數(shù)據(jù)集。將75%的數(shù)據(jù)設(shè)為訓(xùn)練集,25%的數(shù)據(jù)設(shè)為測試集。
表1 原始數(shù)據(jù)自變量及取值Table 1 Variables and values of data
表2 部分多分類變量的有序分類Table 2 Part of the multivariate orderly classification
在XGBoost模型中最為重要的一步就是確定調(diào)整參數(shù)值。需要確定的參數(shù)主要有γ,λ回歸樹的最大深度等,取值范圍分別為0到1,0到∞,1到∞;默認(rèn)值分別為0.3,1,6.由于R語言程序中已有成熟的XGBoost模型的程序包xgboost,可以直接使用其設(shè)定的參數(shù)取值。此外,也可以通過C++、python等程序完成這一步驟。
由于影響Harris評分的變量眾多,本研究數(shù)據(jù)涉及22個相關(guān)變量。由于變量并不是越多越有利于模型的建立,為高效地建立XGBoost模型,故使用主成分分析法對數(shù)據(jù)進(jìn)行進(jìn)一步的處理[7],得到了與Harris評分相關(guān)性較大的5個影響因子,分別是:患者年齡、身體質(zhì)量指數(shù)、pauwl分型類型、garden分型類型和手術(shù)解剖部位。接下來,我們可以直接利用R語言程序進(jìn)行XGBoost建模過程。此外,由于數(shù)據(jù)樣本量較為有限,為充分利用樣本信息,本研究根據(jù)實際經(jīng)驗進(jìn)行了500次大量重復(fù)建模過程,每次從樣本總體中隨機(jī)抽樣75%的樣本量作為訓(xùn)練集,剩下25%的樣本量作為測試集。
使用未經(jīng)主成分分析處理的數(shù)據(jù)建立的XGBoost模型,該模型的分類預(yù)測準(zhǔn)確率為87.36%,經(jīng)主成分分析處理后的數(shù)據(jù)建立的XGBoost模型,模型的分類預(yù)測準(zhǔn)確率達(dá)90.57%,預(yù)測值方差為0.004,而這一結(jié)果說明了主成分分析對數(shù)據(jù)處理的有效性。由XGBoost模型的預(yù)測準(zhǔn)確率可知,XGBoost模型對股骨頸骨折病例數(shù)據(jù)的擬合程度較高且穩(wěn)定性好,XGBoost模型可以幫助骨科醫(yī)生處理Harris評分分類的相關(guān)問題。
在建立XGBoost模型前,通過對數(shù)據(jù)的處理,找到患者年齡、garden分型、pauwl分型類型等5個與Harris評分相關(guān)度較高的主成分,使得XGBoost建模過程更為高效。同時發(fā)現(xiàn),數(shù)據(jù)中較多變量與Harris評分的相關(guān)度低,因此,基于XGBoost建立的股骨頸骨折Harris評分模型,能夠為骨科醫(yī)生在臨床預(yù)測Harris評分起到指導(dǎo)作用。
從XGBoost模型的分類預(yù)測準(zhǔn)確度方面來看,在股骨頸數(shù)據(jù)上搭建XGBoost模型是成功的,有較高的預(yù)測精度、良好的穩(wěn)定性及運(yùn)行的高效性。XGBoost模型雖廣泛應(yīng)用于數(shù)據(jù)挖掘與人工智能領(lǐng)域,但經(jīng)研究表明,XGboost模型是可以推廣到相關(guān)醫(yī)療領(lǐng)域中。同時,利用XGBoost建立的股骨頸骨折Harris評分模型的封閉性較高,不能直觀地看到模型的建立過程,模型的復(fù)雜程度高。本研究由于數(shù)據(jù)樣本量有限,未能建立預(yù)測效果更為準(zhǔn)確的XGBoost模型,這將成為后續(xù)研究中需要改進(jìn)的問題。
[1] 李瑞龍,張強(qiáng).股骨頸骨折的外科治療進(jìn)展[J].醫(yī)學(xué)綜述,2011,17(14):2127-2129.
LI R L,ZHANG Q.Advances in surgical treatment of femoral neck fracture[J].Medical Recapitulate,2011,17(14):2127-2129.
[2] CHEN T Q,GUESTRIN C.XGBoost:A scalable tree boosting system[C]∥ACM.Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.New York:ACM,2016:785-794.
[3] 吳險峰,尚希福.股骨頸骨折治療進(jìn)展[J].醫(yī)學(xué)綜述,2008,14(12):1873-1876.
WU X F,SHANG X F.Progress in therapy of femoral neck fractures [J].Medical Recapitulate,2008,14(12):1873-1876.
[4] LIPORACE F,GAIN R,COLLING C et al.Result of internal fixation of pauwels type-3 vertical fernoral neck fractures[J].J Bone Joint Surg Am,2008,90(8):1654-1659.
[5] 艾自勝,張長青,劉粵,等.股骨頸骨折內(nèi)固定術(shù)后隨訪資料的Harris評分分析[J].中國修復(fù)重建外科雜志,2009,23(4):435-439.
AI Z S,ZHANG C Q,LIU Y,et al.Analysis on Harris scores at follow-up after internal fixation of femoral neck fracture[J].Chinese Journal of Reparative and Reconstructive Surgery,2009,23(4):435-439.
[6] FRIEDMAN J H,POPESCU B E.Importance sampled learning ensembles[J/OL].CiteSeerX,2003:1-32[2003-09-09].https://www.researchgate.net/publication/2888930_Importance_Sampled_Learning_Ensembles.
[7] 林海明,杜子芳.主成分分析綜合評價應(yīng)該注意的問題[J].統(tǒng)計研究,2013,30(8):25-31.
LIN H M,DU Z F.Some problems in comprehensive evaluation in the principal component analysis[J].Statistical Research,2013,30(8):25-31.