李科定 申尋兵* 黃燦奕
1(江西中醫(yī)藥大學人文學院 江西 南昌 330004)2(江西中醫(yī)藥大學計算機學院 江西 南昌 330004)
目前,由于科技水平的快速發(fā)展,信息獲取技術以及存儲能力大幅提高,所能夠獲取的數據規(guī)模越來越大,從而攜帶的信息也更加充分。在中醫(yī)藥領域的物質基礎研究中,通常采用高效液相(waters Hclass)和質譜聯用儀(synapt G2-si)來獲取實驗數據,此類數據往往包含了成千上萬種物質信息,呈現出高維數據的特點,容易造成維數災難,同時由于實驗次數的限制,還呈現出小樣本的特性,容易導致過擬合等問題。而常規(guī)的統計分析方法[1-2],如多元回歸、主成分回歸、嶺回歸在處理數據時,都是通過回歸系數來體現變量之間的相互關系,對于變量維數較高、樣本量少且具有非線性特點的中醫(yī)藥數據,很容易忽視各個變量之間的相互作用,難以達到較好的擬合效果。所以亟需一種能夠解決中醫(yī)藥高維小樣本數據問題的分析方法,為中醫(yī)藥的科研工作者提供有力支撐。
特征選擇是一種有效的降維方法,它能夠通過某種準則從原始集合中選擇一組具有良好區(qū)分能力的特征子集,從而達到降低模型復雜度和提高模型精度的目的[3-4]。因此,該方法受到了許多研究工作者的關注與青睞,例如在醫(yī)學領域中,文獻[5]提出的基于超圖的多模態(tài)特征選擇方法可進行多任務特征選擇,且能篩選出有效的腦區(qū)信息;文獻[6]提出的基于對稱不確定性和支持向量機遞歸特征消除的信息基因選擇方法,能夠有效地剔除與類別無關的基因;文獻[7]提出一種混合特征選擇算法,能夠選出基因數量少且分類能力較強的信息基因子集。同時在其他領域中,特征選擇方法也有較好的應用,文獻[8]提出的聯合譜聚類與鄰域互信息的特征選擇算法,也可剔除與標記不相關的特征;文獻[9]提出的基于多標簽ReliefF的特征選擇算法,也能較好地刪除無關特征,選出與類別強相關性的特征。因此,特征選擇是一種適合解決高維小樣本問題的研究方法。
在特征選擇研究中,通常較好的特征選擇方法應該具備以下幾個特點[10]:(1) 可解釋性,即模型中選擇的特征具有科學意義;(2) 模型具有較好的穩(wěn)定性;(3) 在假設檢驗中,盡量避免偏差;(4) 模型計算的復雜度在可控范圍內。然而傳統的特征選擇方法只能夠滿足部分特點,如逐步回歸、嶺回歸等[11-12],因此如何有效地克服此類問題,達到較好的特征選擇效果,就成為回歸和分類的研究熱點。為了尋求該問題的可行性解法,Robert Tibshirani提出一種名為Lasso的特征選擇方法[13],并將其成功地進行運用。相比傳統的特征選擇方法而言,Lasso方法可以較好地彌補傳統方法在特征選擇研究上的不足。
鑒于此,本文提出一種融入Lasso的XGBoost組合優(yōu)化方法(LAXGB),該方法首先通過one-way ANOVA[14]過濾無關特征,再利用Lasso方法對剩余特征進一步地去除無關特征和冗余特征,即將某些不顯著特征的回歸系數壓縮為零,從而達到特征選擇的目的,最后將選出的多組特征子集作為XGBoost算法的輸入進行回歸分析,從而可確定出有效特征子集。該方法不僅可以達到較好地降維效果,同時還能夠較好的解釋非線性數據,從而建立一個適用于中醫(yī)藥數據特性的回歸模型。
Lasso是一種通過對目標函數加入L1范數的特征選擇方法,其可以選出顯著性較強的特征,從而實現高維數據的降維處理。基本思想是在滿足回歸系數的絕對值之和小于或者等于一個閾值的約束條件下,其殘差平方和(SSE)最小化,使得絕對值較小的回歸系數被壓縮為0。本文假設樣本數據的自變量集合為X=(xi1,xi2,…,xij,…,xip),因變量集合為Y=(y1,y2,…,yi,…,yq),i∈[1,2,…,q],j∈[1,2,…,p],則根據Lasso算法的原理,其目標函數為:
(1)
式中:w為回歸系數,q為樣本個數,p為特征維度。且經過多次實驗,閾值s設為0.1。由于函數帶有絕對值(零點處不可導),需采用坐標下降法求整體偏導數:
(2)

(3)
坐標下降法的具體求解步驟如算法1所示。
算法1坐標下降法求解
輸入:數據集X=(xi1,xi2,…,xij,…,xip)與Y=(y1,y2,…,yi,…,yq),樣本數量q,特征數量p,閾值s,懲罰度(參數)為η。
Begin:
對回歸系數進行初始化:w=(0,0,…,0)T,以及殘差平方和為:rss_before=(Y-Xw)T(Y-Xw);
數據標準化(X),即均值為0,方差為1:

# 使用坐標下降法優(yōu)化回歸系數
ForxkinX:

ForxiinX:
else:wk=0
重新計算殘差rss_after,以及前后殘差的變化量:
delta=|rss_after-rss_before|
ifdelta
break
算法終止,且返回回歸系數w。
End
XGBoost[15]是集成了多個CART樹的迭代計算方法,它將多棵樹的預測值綜合起來作為最終的結果。假設有M棵樹,樹的集成模型為:
(4)

(5)

(6)

(7)
再根據Taylor二階展開式來簡化目標函數中的損失函數,重新定義函數為:
Ω(ft)+C
(8)

(9)
定義ft為回歸樹,葉節(jié)點的數目為T,每個葉節(jié)點的權重為δ。同時回歸樹的學習過程是從根節(jié)點到葉子節(jié)點的遍歷,因此將樹拆分成樹結構部分Q和權重部分δ,結構函數Q將輸入樣本映射到葉子節(jié)點中,δ來給定每個葉子節(jié)點的權重。
ft(x)=δQ(x),δ∈RT,Q:Rd→{1,2,…,T}
(10)
且式(9)中的正則項Ω(ft)是表示樹的復雜度,其定義為葉節(jié)點的權重平方和(即引入了L2正則項)以及葉節(jié)點總數γT的函數。
(11)
因此目標函數可以轉換為:


(12)
式中:I是每個葉子節(jié)點上樣本的集合,Ij={i|Q(xi)=j}。又令Gj=∑i∈Ijgi,Hj=∑i∈Ijhi,目標函數可簡化為:
(13)
再對目標函數求關于δj的偏導,即可得到葉子節(jié)點的最優(yōu)權重和函數的最優(yōu)目標值:
(14)
(15)
式(15)中Obj是樹的結構分數,其值越小即樹的結構越好。實驗還采用了貪心法進行子樹的劃分,即每次嘗試對已有的葉子節(jié)點加入一個分割點,再枚舉可行的分割點來選擇目標函數最小、增益最大的劃分。增益如下:
(16)
式中:等號右邊第一項和第二項分別為葉節(jié)點左側和右側分支的得分,第三項為不拆分葉節(jié)點的得分,γ則為引入額外葉節(jié)點的復雜度成本。通過從左到右線性掃描排序的樣本,即可確定出最佳的分割點。
LAXGB算法流程如算法2所示。
算法2LAXGB算法
輸入:數據集D。
Begin:
1) 第一階段:去除無關特征與冗余特征將原始數據進行one-way ANOVA過濾無關特征;
對新的數據集U進行標準化處理得到(E0,F0);
構建lasso模型:對回歸系數施加約束條件,即∑|w|≤s;
2) 第二階段:XGBoost回歸預測
Fort=1 to M:
計算最優(yōu)目標值和最優(yōu)權重:
通過Gain從左到右線性掃描,選擇最佳分割點;

End
根據RMSE評價指標,在多組子集中確定出最優(yōu)特征子集;
End
本實驗所使用的四個實驗數據集包括來自現代中藥制劑教育部重點實驗室的中醫(yī)藥物質基礎實驗數據(WYHXB)與中醫(yī)藥成分數據(TCMData)以及UCI數據集上的Breast Cancer Wisconsin(簡稱Breast data)、Residential building dataset(簡稱RBuild),各數據集的信息描述見表1。其中WYHXB數據中有798個特征,1個因變量,54個樣本;中醫(yī)藥數據中有9個特征,1個因變量,10個樣本;Breast data數據中有34個特征,1個因變量,194個樣本;RBuild數據中有103個特征,1個因變量,372個樣本。

表1 數據集信息描述
WYHXB是參附注射液治療心源性休克的物質基礎實驗數據,它采用左冠狀動脈前降支近心尖端復制中期心源性休克大鼠模型,分別給予休克模型大鼠0.1、0.33、1.0、3.3、10、15和20 ml·kg-1共7組劑量參附注射液,同時設置模型組和空白組,每組實驗大鼠6只。在給藥60 min后,再采集血紅細胞流速的藥效指標。其中參附注射液所含有的物質信息稱之為外源性物質,即特征(或者為自變量),血紅細胞流速則是因變量。

表2 中醫(yī)藥物質基礎實驗的部分數據
為了確保實驗的可靠性,本文在實驗之前先對實驗數據進行one-way ANOVA分析,即設顯著水平P值為0.05,自由度為df=1,若無顯著差異的特征則剔除,反之則保留。同時在實驗過程中,考慮到不同的樣本數據具有的特性是不一致的,因此在模型中需根據每個原始數據調好參數進行實驗分析。首先初始化模型參數,分別設L2正則項的參數λ=0.1,步長ε=0.01,建樹的數量(即迭代的次數)M=500。其次根據初始化值采用對比策略進行分析,即先保持ε與M不變,λ值逐漸減小和增大;再保持λ與M不變,ε值逐漸減小和增大;接著再保持λ與ε不變,M值逐漸減小和增大。最后根據均方根誤差(RMSE)來作為評價指標,選出各個數據集較好的參數組合,即選取RMSE值較小且開始出現轉折的點所對應的參數值,如圖1至圖12所示。

圖1 WYHXB數據λ值選取 圖2 WYHXB數據ε值選取 圖3 WYHXB數據M值選取

圖4 TCMData數據λ值選取 圖5 TCMData數據ε值選取 圖6 TCMData數據M值選取

圖7 Breast data數據λ值選取 圖8 Breast data數據ε值選取 圖9 Breast data數據M值選取

圖10 RBuild數據λ值選取 圖11 RBuild數據ε值選取 圖12 RBuild數據M值選取
可以看出,在WYHXB數據中參數λ在[0.02,0.1]區(qū)間內所對應RMSE值均較小,但在λ=0.1之后開始逐漸增大;參數ε在[0.012,0.028]區(qū)間內所對應的RMSE值也逐漸開始減緩且較小,出現轉折的點為0.012;參數M則是在M=450時,開始趨于平緩且對應的RMSE值較小。因此在實驗分析中,WYHXB數據的參數組合設為λ=0.1,ε=0.012,M=450。同理TCMData數據的參數組合為λ=0.1,ε=0.016,M=500,Breast data數據的參數組合為λ=0.04,ε=0.018,M=550,RBuild數據的參數組合為λ=0.1,ε=0.016,M=550。
在利用Lasso模型進行特征選擇時,是采用了坐標下降法進行迭代計算(迭代次數范圍為1至30),因此各數據集在每次迭代所選擇的特征個數也各不相同:WYHXB數據原始特征有798個,在迭代第9至13次時開始產生明顯變化,對應迭代次數的特征個數分別為407、216、111、70、36;TCMData數據原始特征有9個,在迭代第9至13次時開始產生明顯變化,對應迭代次數的特征個數分別為8、7、6、5、4;Breast data數據原始特征有33個,在迭代第10至14次時開始產生明顯變化,對應迭代次數的特征個數分別為28、24、21、10、4;RBuild數據原始特征有103個,在迭代第10至14次時開始產生明顯變化,對應迭代次數的特征個數分別為90、62、42、26、17。同時根據RMSE進行評價,判斷各數據集所選出的特征子集是否最優(yōu),結果見表3。

表3 各數據集不同特征個數所對應的RMSE值

續(xù)表3
由表3可知,WYHXB數據經過特征選擇后,剩下407個特征時所對應的RMSE值最好;TCMData數據經過特征選擇后,剩下6個特征時所對應的RMSE值最好;Breast data數據經過特征選擇后,剩下21個特征時所對應的RMSE值最好;RBuild數據經過特征選擇后,剩下62個特征時所對應的RMSE值最好。
為了驗證模型的有效性,采用上述所選的參數組合以及各數據集所選出的最佳特征子集進行下一步實驗,即將經過特征選擇后的各數據集按照6 ∶4的比例隨機劃分成訓練集和測試集,再分別采用傳統的偏最小二乘法(PLS)、隨機森林回歸模型[16](RF)、Lasso、XGBoost以及改進的算法(LAXGB)進行回歸分析,并以均方根誤差(RMSE)作為模型評價指標,同時為了確保實驗結果的可靠性,分別對每組實驗數據進行10次測試,再取各自平均值作為最后的實驗結果,見表4。

表4 多組實驗的結果比較
由表4可知,在四組實驗數據中改進的LAXGB方法整體效果均要比其他算法的效果好。其中LAXGB模型的訓練集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,相比其他算法的效果均呈現下降趨勢。為了更直觀地觀察實驗結果,分別繪制了趨勢圖(如圖13與圖14所示),以便體現出各數據集在不同算法的RMSE值波動情況。顯然,改進的算法在四組數據中的RMSE值均比其他算法好,說明融入Lasso的XGBoost組合優(yōu)化方法的回歸效果得到了提升。綜上所述,該改進的算法不僅可以對中醫(yī)藥高維小樣本數據進行特征降維,還能夠較好地解釋具有非線性特點的中醫(yī)藥數據。

圖13 四組數據的RMSE趨勢圖(訓練集)

圖14 四組數據的RMSE趨勢圖(測試集)
本文針對具有高維、小樣本以及非線性特點的中醫(yī)藥物質基礎實驗數據,傳統的統計分析方法無法較好地解決維數災難和過擬合等問題,提出融入Lasso的XGBoost組合優(yōu)化方法(LAXGB)。其充分利用了Lasso方法可以較好地進行特征降維,以及選出顯著性特征的優(yōu)勢,并結合能夠多線程并行計算和防止過擬合的XGBoost算法進行回歸分析,從而達到較好的模型解釋程度。通過在中醫(yī)藥物質基礎實驗數據、中醫(yī)藥成分數據和UCI數據集的實驗比較,證明該方法明顯提高了預測精度和達到了模型的簡化,是一種適合于中醫(yī)藥物質基礎實驗數據的分析方法。但該改進的算法也存在不足之處,模型參數的設置還不夠合理性。在接下來的工作中,將繼續(xù)改進算法實現模型參數的自適應調整。