李科定 申尋兵* 黃燦奕
1(江西中醫(yī)藥大學(xué)人文學(xué)院 江西 南昌 330004)2(江西中醫(yī)藥大學(xué)計(jì)算機(jī)學(xué)院 江西 南昌 330004)
目前,由于科技水平的快速發(fā)展,信息獲取技術(shù)以及存儲(chǔ)能力大幅提高,所能夠獲取的數(shù)據(jù)規(guī)模越來越大,從而攜帶的信息也更加充分。在中醫(yī)藥領(lǐng)域的物質(zhì)基礎(chǔ)研究中,通常采用高效液相(waters Hclass)和質(zhì)譜聯(lián)用儀(synapt G2-si)來獲取實(shí)驗(yàn)數(shù)據(jù),此類數(shù)據(jù)往往包含了成千上萬種物質(zhì)信息,呈現(xiàn)出高維數(shù)據(jù)的特點(diǎn),容易造成維數(shù)災(zāi)難,同時(shí)由于實(shí)驗(yàn)次數(shù)的限制,還呈現(xiàn)出小樣本的特性,容易導(dǎo)致過擬合等問題。而常規(guī)的統(tǒng)計(jì)分析方法[1-2],如多元回歸、主成分回歸、嶺回歸在處理數(shù)據(jù)時(shí),都是通過回歸系數(shù)來體現(xiàn)變量之間的相互關(guān)系,對于變量維數(shù)較高、樣本量少且具有非線性特點(diǎn)的中醫(yī)藥數(shù)據(jù),很容易忽視各個(gè)變量之間的相互作用,難以達(dá)到較好的擬合效果。所以亟需一種能夠解決中醫(yī)藥高維小樣本數(shù)據(jù)問題的分析方法,為中醫(yī)藥的科研工作者提供有力支撐。
特征選擇是一種有效的降維方法,它能夠通過某種準(zhǔn)則從原始集合中選擇一組具有良好區(qū)分能力的特征子集,從而達(dá)到降低模型復(fù)雜度和提高模型精度的目的[3-4]。因此,該方法受到了許多研究工作者的關(guān)注與青睞,例如在醫(yī)學(xué)領(lǐng)域中,文獻(xiàn)[5]提出的基于超圖的多模態(tài)特征選擇方法可進(jìn)行多任務(wù)特征選擇,且能篩選出有效的腦區(qū)信息;文獻(xiàn)[6]提出的基于對稱不確定性和支持向量機(jī)遞歸特征消除的信息基因選擇方法,能夠有效地剔除與類別無關(guān)的基因;文獻(xiàn)[7]提出一種混合特征選擇算法,能夠選出基因數(shù)量少且分類能力較強(qiáng)的信息基因子集。同時(shí)在其他領(lǐng)域中,特征選擇方法也有較好的應(yīng)用,文獻(xiàn)[8]提出的聯(lián)合譜聚類與鄰域互信息的特征選擇算法,也可剔除與標(biāo)記不相關(guān)的特征;文獻(xiàn)[9]提出的基于多標(biāo)簽ReliefF的特征選擇算法,也能較好地刪除無關(guān)特征,選出與類別強(qiáng)相關(guān)性的特征。因此,特征選擇是一種適合解決高維小樣本問題的研究方法。
在特征選擇研究中,通常較好的特征選擇方法應(yīng)該具備以下幾個(gè)特點(diǎn)[10]:(1) 可解釋性,即模型中選擇的特征具有科學(xué)意義;(2) 模型具有較好的穩(wěn)定性;(3) 在假設(shè)檢驗(yàn)中,盡量避免偏差;(4) 模型計(jì)算的復(fù)雜度在可控范圍內(nèi)。然而傳統(tǒng)的特征選擇方法只能夠滿足部分特點(diǎn),如逐步回歸、嶺回歸等[11-12],因此如何有效地克服此類問題,達(dá)到較好的特征選擇效果,就成為回歸和分類的研究熱點(diǎn)。為了尋求該問題的可行性解法,Robert Tibshirani提出一種名為Lasso的特征選擇方法[13],并將其成功地進(jìn)行運(yùn)用。相比傳統(tǒng)的特征選擇方法而言,Lasso方法可以較好地彌補(bǔ)傳統(tǒng)方法在特征選擇研究上的不足。
鑒于此,本文提出一種融入Lasso的XGBoost組合優(yōu)化方法(LAXGB),該方法首先通過one-way ANOVA[14]過濾無關(guān)特征,再利用Lasso方法對剩余特征進(jìn)一步地去除無關(guān)特征和冗余特征,即將某些不顯著特征的回歸系數(shù)壓縮為零,從而達(dá)到特征選擇的目的,最后將選出的多組特征子集作為XGBoost算法的輸入進(jìn)行回歸分析,從而可確定出有效特征子集。該方法不僅可以達(dá)到較好地降維效果,同時(shí)還能夠較好的解釋非線性數(shù)據(jù),從而建立一個(gè)適用于中醫(yī)藥數(shù)據(jù)特性的回歸模型。
Lasso是一種通過對目標(biāo)函數(shù)加入L1范數(shù)的特征選擇方法,其可以選出顯著性較強(qiáng)的特征,從而實(shí)現(xiàn)高維數(shù)據(jù)的降維處理。基本思想是在滿足回歸系數(shù)的絕對值之和小于或者等于一個(gè)閾值的約束條件下,其殘差平方和(SSE)最小化,使得絕對值較小的回歸系數(shù)被壓縮為0。本文假設(shè)樣本數(shù)據(jù)的自變量集合為X=(xi1,xi2,…,xij,…,xip),因變量集合為Y=(y1,y2,…,yi,…,yq),i∈[1,2,…,q],j∈[1,2,…,p],則根據(jù)Lasso算法的原理,其目標(biāo)函數(shù)為:
(1)
式中:w為回歸系數(shù),q為樣本個(gè)數(shù),p為特征維度。且經(jīng)過多次實(shí)驗(yàn),閾值s設(shè)為0.1。由于函數(shù)帶有絕對值(零點(diǎn)處不可導(dǎo)),需采用坐標(biāo)下降法求整體偏導(dǎo)數(shù):
(2)
(3)
坐標(biāo)下降法的具體求解步驟如算法1所示。
算法1坐標(biāo)下降法求解
輸入:數(shù)據(jù)集X=(xi1,xi2,…,xij,…,xip)與Y=(y1,y2,…,yi,…,yq),樣本數(shù)量q,特征數(shù)量p,閾值s,懲罰度(參數(shù))為η。
Begin:
對回歸系數(shù)進(jìn)行初始化:w=(0,0,…,0)T,以及殘差平方和為:rss_before=(Y-Xw)T(Y-Xw);
數(shù)據(jù)標(biāo)準(zhǔn)化(X),即均值為0,方差為1:
# 使用坐標(biāo)下降法優(yōu)化回歸系數(shù)
ForxkinX:
ForxiinX:
else:wk=0
重新計(jì)算殘差rss_after,以及前后殘差的變化量:
delta=|rss_after-rss_before|
ifdelta
break
算法終止,且返回回歸系數(shù)w。
End
XGBoost[15]是集成了多個(gè)CART樹的迭代計(jì)算方法,它將多棵樹的預(yù)測值綜合起來作為最終的結(jié)果。假設(shè)有M棵樹,樹的集成模型為:
(4)
(5)
(6)
(7)
再根據(jù)Taylor二階展開式來簡化目標(biāo)函數(shù)中的損失函數(shù),重新定義函數(shù)為:
Ω(ft)+C
(8)
(9)
定義ft為回歸樹,葉節(jié)點(diǎn)的數(shù)目為T,每個(gè)葉節(jié)點(diǎn)的權(quán)重為δ。同時(shí)回歸樹的學(xué)習(xí)過程是從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的遍歷,因此將樹拆分成樹結(jié)構(gòu)部分Q和權(quán)重部分δ,結(jié)構(gòu)函數(shù)Q將輸入樣本映射到葉子節(jié)點(diǎn)中,δ來給定每個(gè)葉子節(jié)點(diǎn)的權(quán)重。
ft(x)=δQ(x),δ∈RT,Q:Rd→{1,2,…,T}
(10)
且式(9)中的正則項(xiàng)Ω(ft)是表示樹的復(fù)雜度,其定義為葉節(jié)點(diǎn)的權(quán)重平方和(即引入了L2正則項(xiàng))以及葉節(jié)點(diǎn)總數(shù)γT的函數(shù)。
(11)
因此目標(biāo)函數(shù)可以轉(zhuǎn)換為:
(12)
式中:I是每個(gè)葉子節(jié)點(diǎn)上樣本的集合,Ij={i|Q(xi)=j}。又令Gj=∑i∈Ijgi,Hj=∑i∈Ijhi,目標(biāo)函數(shù)可簡化為:
(13)
再對目標(biāo)函數(shù)求關(guān)于δj的偏導(dǎo),即可得到葉子節(jié)點(diǎn)的最優(yōu)權(quán)重和函數(shù)的最優(yōu)目標(biāo)值:
(14)
(15)
式(15)中Obj是樹的結(jié)構(gòu)分?jǐn)?shù),其值越小即樹的結(jié)構(gòu)越好。實(shí)驗(yàn)還采用了貪心法進(jìn)行子樹的劃分,即每次嘗試對已有的葉子節(jié)點(diǎn)加入一個(gè)分割點(diǎn),再枚舉可行的分割點(diǎn)來選擇目標(biāo)函數(shù)最小、增益最大的劃分。增益如下:
(16)
式中:等號右邊第一項(xiàng)和第二項(xiàng)分別為葉節(jié)點(diǎn)左側(cè)和右側(cè)分支的得分,第三項(xiàng)為不拆分葉節(jié)點(diǎn)的得分,γ則為引入額外葉節(jié)點(diǎn)的復(fù)雜度成本。通過從左到右線性掃描排序的樣本,即可確定出最佳的分割點(diǎn)。
LAXGB算法流程如算法2所示。
算法2LAXGB算法
輸入:數(shù)據(jù)集D。
Begin:
1) 第一階段:去除無關(guān)特征與冗余特征將原始數(shù)據(jù)進(jìn)行one-way ANOVA過濾無關(guān)特征;
對新的數(shù)據(jù)集U進(jìn)行標(biāo)準(zhǔn)化處理得到(E0,F0);
構(gòu)建lasso模型:對回歸系數(shù)施加約束條件,即∑|w|≤s;
2) 第二階段:XGBoost回歸預(yù)測
Fort=1 to M:
計(jì)算最優(yōu)目標(biāo)值和最優(yōu)權(quán)重:
通過Gain從左到右線性掃描,選擇最佳分割點(diǎn);
End
根據(jù)RMSE評價(jià)指標(biāo),在多組子集中確定出最優(yōu)特征子集;
End
本實(shí)驗(yàn)所使用的四個(gè)實(shí)驗(yàn)數(shù)據(jù)集包括來自現(xiàn)代中藥制劑教育部重點(diǎn)實(shí)驗(yàn)室的中醫(yī)藥物質(zhì)基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù)(WYHXB)與中醫(yī)藥成分?jǐn)?shù)據(jù)(TCMData)以及UCI數(shù)據(jù)集上的Breast Cancer Wisconsin(簡稱Breast data)、Residential building dataset(簡稱RBuild),各數(shù)據(jù)集的信息描述見表1。其中WYHXB數(shù)據(jù)中有798個(gè)特征,1個(gè)因變量,54個(gè)樣本;中醫(yī)藥數(shù)據(jù)中有9個(gè)特征,1個(gè)因變量,10個(gè)樣本;Breast data數(shù)據(jù)中有34個(gè)特征,1個(gè)因變量,194個(gè)樣本;RBuild數(shù)據(jù)中有103個(gè)特征,1個(gè)因變量,372個(gè)樣本。
表1 數(shù)據(jù)集信息描述
WYHXB是參附注射液治療心源性休克的物質(zhì)基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù),它采用左冠狀動(dòng)脈前降支近心尖端復(fù)制中期心源性休克大鼠模型,分別給予休克模型大鼠0.1、0.33、1.0、3.3、10、15和20 ml·kg-1共7組劑量參附注射液,同時(shí)設(shè)置模型組和空白組,每組實(shí)驗(yàn)大鼠6只。在給藥60 min后,再采集血紅細(xì)胞流速的藥效指標(biāo)。其中參附注射液所含有的物質(zhì)信息稱之為外源性物質(zhì),即特征(或者為自變量),血紅細(xì)胞流速則是因變量。
表2 中醫(yī)藥物質(zhì)基礎(chǔ)實(shí)驗(yàn)的部分?jǐn)?shù)據(jù)
為了確保實(shí)驗(yàn)的可靠性,本文在實(shí)驗(yàn)之前先對實(shí)驗(yàn)數(shù)據(jù)進(jìn)行one-way ANOVA分析,即設(shè)顯著水平P值為0.05,自由度為df=1,若無顯著差異的特征則剔除,反之則保留。同時(shí)在實(shí)驗(yàn)過程中,考慮到不同的樣本數(shù)據(jù)具有的特性是不一致的,因此在模型中需根據(jù)每個(gè)原始數(shù)據(jù)調(diào)好參數(shù)進(jìn)行實(shí)驗(yàn)分析。首先初始化模型參數(shù),分別設(shè)L2正則項(xiàng)的參數(shù)λ=0.1,步長ε=0.01,建樹的數(shù)量(即迭代的次數(shù))M=500。其次根據(jù)初始化值采用對比策略進(jìn)行分析,即先保持ε與M不變,λ值逐漸減小和增大;再保持λ與M不變,ε值逐漸減小和增大;接著再保持λ與ε不變,M值逐漸減小和增大。最后根據(jù)均方根誤差(RMSE)來作為評價(jià)指標(biāo),選出各個(gè)數(shù)據(jù)集較好的參數(shù)組合,即選取RMSE值較小且開始出現(xiàn)轉(zhuǎn)折的點(diǎn)所對應(yīng)的參數(shù)值,如圖1至圖12所示。
圖1 WYHXB數(shù)據(jù)λ值選取 圖2 WYHXB數(shù)據(jù)ε值選取 圖3 WYHXB數(shù)據(jù)M值選取
圖4 TCMData數(shù)據(jù)λ值選取 圖5 TCMData數(shù)據(jù)ε值選取 圖6 TCMData數(shù)據(jù)M值選取
圖7 Breast data數(shù)據(jù)λ值選取 圖8 Breast data數(shù)據(jù)ε值選取 圖9 Breast data數(shù)據(jù)M值選取
圖10 RBuild數(shù)據(jù)λ值選取 圖11 RBuild數(shù)據(jù)ε值選取 圖12 RBuild數(shù)據(jù)M值選取
可以看出,在WYHXB數(shù)據(jù)中參數(shù)λ在[0.02,0.1]區(qū)間內(nèi)所對應(yīng)RMSE值均較小,但在λ=0.1之后開始逐漸增大;參數(shù)ε在[0.012,0.028]區(qū)間內(nèi)所對應(yīng)的RMSE值也逐漸開始減緩且較小,出現(xiàn)轉(zhuǎn)折的點(diǎn)為0.012;參數(shù)M則是在M=450時(shí),開始趨于平緩且對應(yīng)的RMSE值較小。因此在實(shí)驗(yàn)分析中,WYHXB數(shù)據(jù)的參數(shù)組合設(shè)為λ=0.1,ε=0.012,M=450。同理TCMData數(shù)據(jù)的參數(shù)組合為λ=0.1,ε=0.016,M=500,Breast data數(shù)據(jù)的參數(shù)組合為λ=0.04,ε=0.018,M=550,RBuild數(shù)據(jù)的參數(shù)組合為λ=0.1,ε=0.016,M=550。
在利用Lasso模型進(jìn)行特征選擇時(shí),是采用了坐標(biāo)下降法進(jìn)行迭代計(jì)算(迭代次數(shù)范圍為1至30),因此各數(shù)據(jù)集在每次迭代所選擇的特征個(gè)數(shù)也各不相同:WYHXB數(shù)據(jù)原始特征有798個(gè),在迭代第9至13次時(shí)開始產(chǎn)生明顯變化,對應(yīng)迭代次數(shù)的特征個(gè)數(shù)分別為407、216、111、70、36;TCMData數(shù)據(jù)原始特征有9個(gè),在迭代第9至13次時(shí)開始產(chǎn)生明顯變化,對應(yīng)迭代次數(shù)的特征個(gè)數(shù)分別為8、7、6、5、4;Breast data數(shù)據(jù)原始特征有33個(gè),在迭代第10至14次時(shí)開始產(chǎn)生明顯變化,對應(yīng)迭代次數(shù)的特征個(gè)數(shù)分別為28、24、21、10、4;RBuild數(shù)據(jù)原始特征有103個(gè),在迭代第10至14次時(shí)開始產(chǎn)生明顯變化,對應(yīng)迭代次數(shù)的特征個(gè)數(shù)分別為90、62、42、26、17。同時(shí)根據(jù)RMSE進(jìn)行評價(jià),判斷各數(shù)據(jù)集所選出的特征子集是否最優(yōu),結(jié)果見表3。
表3 各數(shù)據(jù)集不同特征個(gè)數(shù)所對應(yīng)的RMSE值
續(xù)表3
由表3可知,WYHXB數(shù)據(jù)經(jīng)過特征選擇后,剩下407個(gè)特征時(shí)所對應(yīng)的RMSE值最好;TCMData數(shù)據(jù)經(jīng)過特征選擇后,剩下6個(gè)特征時(shí)所對應(yīng)的RMSE值最好;Breast data數(shù)據(jù)經(jīng)過特征選擇后,剩下21個(gè)特征時(shí)所對應(yīng)的RMSE值最好;RBuild數(shù)據(jù)經(jīng)過特征選擇后,剩下62個(gè)特征時(shí)所對應(yīng)的RMSE值最好。
為了驗(yàn)證模型的有效性,采用上述所選的參數(shù)組合以及各數(shù)據(jù)集所選出的最佳特征子集進(jìn)行下一步實(shí)驗(yàn),即將經(jīng)過特征選擇后的各數(shù)據(jù)集按照6 ∶4的比例隨機(jī)劃分成訓(xùn)練集和測試集,再分別采用傳統(tǒng)的偏最小二乘法(PLS)、隨機(jī)森林回歸模型[16](RF)、Lasso、XGBoost以及改進(jìn)的算法(LAXGB)進(jìn)行回歸分析,并以均方根誤差(RMSE)作為模型評價(jià)指標(biāo),同時(shí)為了確保實(shí)驗(yàn)結(jié)果的可靠性,分別對每組實(shí)驗(yàn)數(shù)據(jù)進(jìn)行10次測試,再取各自平均值作為最后的實(shí)驗(yàn)結(jié)果,見表4。
表4 多組實(shí)驗(yàn)的結(jié)果比較
由表4可知,在四組實(shí)驗(yàn)數(shù)據(jù)中改進(jìn)的LAXGB方法整體效果均要比其他算法的效果好。其中LAXGB模型的訓(xùn)練集RMSE值分別為0.932 5、0.000 7、0.000 6、1.913 9,測試集RMSE值分別為0.920 6、0.000 8、0.000 5、1.016 4,相比其他算法的效果均呈現(xiàn)下降趨勢。為了更直觀地觀察實(shí)驗(yàn)結(jié)果,分別繪制了趨勢圖(如圖13與圖14所示),以便體現(xiàn)出各數(shù)據(jù)集在不同算法的RMSE值波動(dòng)情況。顯然,改進(jìn)的算法在四組數(shù)據(jù)中的RMSE值均比其他算法好,說明融入Lasso的XGBoost組合優(yōu)化方法的回歸效果得到了提升。綜上所述,該改進(jìn)的算法不僅可以對中醫(yī)藥高維小樣本數(shù)據(jù)進(jìn)行特征降維,還能夠較好地解釋具有非線性特點(diǎn)的中醫(yī)藥數(shù)據(jù)。
圖13 四組數(shù)據(jù)的RMSE趨勢圖(訓(xùn)練集)
圖14 四組數(shù)據(jù)的RMSE趨勢圖(測試集)
本文針對具有高維、小樣本以及非線性特點(diǎn)的中醫(yī)藥物質(zhì)基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù),傳統(tǒng)的統(tǒng)計(jì)分析方法無法較好地解決維數(shù)災(zāi)難和過擬合等問題,提出融入Lasso的XGBoost組合優(yōu)化方法(LAXGB)。其充分利用了Lasso方法可以較好地進(jìn)行特征降維,以及選出顯著性特征的優(yōu)勢,并結(jié)合能夠多線程并行計(jì)算和防止過擬合的XGBoost算法進(jìn)行回歸分析,從而達(dá)到較好的模型解釋程度。通過在中醫(yī)藥物質(zhì)基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù)、中醫(yī)藥成分?jǐn)?shù)據(jù)和UCI數(shù)據(jù)集的實(shí)驗(yàn)比較,證明該方法明顯提高了預(yù)測精度和達(dá)到了模型的簡化,是一種適合于中醫(yī)藥物質(zhì)基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù)的分析方法。但該改進(jìn)的算法也存在不足之處,模型參數(shù)的設(shè)置還不夠合理性。在接下來的工作中,將繼續(xù)改進(jìn)算法實(shí)現(xiàn)模型參數(shù)的自適應(yīng)調(diào)整。