鄭 列,胡逾航
(湖北工業(yè)大學(xué)理學(xué)院, 湖北 武漢 430068)
我國(guó)心血管疾病患者絕大多數(shù)也是高血壓患者[1]。高血壓早期可能無(wú)癥狀,容易被患者所忽視,因此其早期排查與及時(shí)干預(yù)有著重要意義。譚恒[2]使用決策樹算法對(duì)高血壓發(fā)病風(fēng)險(xiǎn)進(jìn)行預(yù)測(cè);Pei[3]構(gòu)建了基于支持向量機(jī)的高血壓預(yù)測(cè)模型,討論了環(huán)境因素和遺傳因素對(duì)患原發(fā)性高血壓的影響,并使用Laplace核函數(shù)對(duì)模型進(jìn)行改進(jìn);趙書穎[4]探討了中醫(yī)癥候和高血壓之間的聯(lián)系;Ren[5]使用雙向長(zhǎng)期短期記憶模型(BiLSTM)捕獲電子病歷中的文本信息,探討高血壓疾病對(duì)腎臟疾病的影響。龔軍等[6]使用logistic、隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)等多種算法構(gòu)建高血壓風(fēng)險(xiǎn)分類模型,發(fā)現(xiàn)XGBoost模型的診斷精度最高。支持向量機(jī)和神經(jīng)網(wǎng)絡(luò)在處理非線性問題上都有其獨(dú)特優(yōu)勢(shì),然而支持向量機(jī)算法會(huì)隨著數(shù)據(jù)規(guī)模的增大而計(jì)算變得低效。神經(jīng)網(wǎng)絡(luò)在建立模型時(shí)需要大量的參數(shù),其輸出結(jié)果通常難以解釋,更適合對(duì)非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行建模。本文使用LightGBM集成算法構(gòu)建高血壓風(fēng)險(xiǎn)預(yù)測(cè)模型。為了進(jìn)一步提升模型性能,利用自適應(yīng)粒子群算法對(duì)LightGBM算法進(jìn)行優(yōu)化,以精準(zhǔn)定位高血壓的致病因素,輔助醫(yī)療人員通過早期干預(yù)降低其發(fā)病率。
1.1.1梯度提升決策樹梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)是一種以回歸樹為基學(xué)習(xí)器的集成算法。同時(shí),它也是一個(gè)加法模型,即所有基學(xué)習(xí)器的線性組合作為其最終的結(jié)果。該算法可以用于解決回歸問題與分類問題,其思想是在每次迭代中通過擬合負(fù)梯度作為殘差的近似值來(lái)學(xué)習(xí)一個(gè)基學(xué)習(xí)器。GBDT的主要計(jì)算成本在于學(xué)習(xí)決策樹。由于決策樹在計(jì)算分割節(jié)點(diǎn)的信息增益時(shí)會(huì)對(duì)每個(gè)特征遍歷所有數(shù)據(jù)點(diǎn),隨著樣本量與特征維度的增大,其計(jì)算代價(jià)也會(huì)成比例上升。
1.1.2LightGBM算法LightGBM是一種基于GBDT的算法,由微軟團(tuán)隊(duì)于2017年提出[7]。為了解決GBDT在計(jì)算復(fù)雜度上的問題,可以從兩個(gè)角度進(jìn)行改進(jìn)——減少特征數(shù)和減少訓(xùn)練樣本數(shù)?;谶@個(gè)思想,LightGBM提出了單邊梯度采樣(GOSS)和互斥特征捆綁(EFB)兩種策略,在保證模型精度的同時(shí),提升了模型的計(jì)算速度。
GOSS算法保留所有梯度較大的樣本,并對(duì)剩下梯度樣本進(jìn)行隨機(jī)采樣,這樣可以在不改變數(shù)據(jù)分布的同時(shí),使得訓(xùn)練誤差大的樣本得到更大的關(guān)注。在GBDT算法中,信息增益通常是通過分裂后的方差來(lái)度量的,假設(shè)O為單棵決策樹一個(gè)固定節(jié)點(diǎn)內(nèi)的數(shù)據(jù)集,此節(jié)點(diǎn)處特征j在分割點(diǎn)d的信息增益定義為:
(1)
(2)
EFB算法的思想是將很多互斥特征捆綁成少量的稠密特征?;コ馓卣髦傅氖遣煌瑫r(shí)取非零值的特征。高維數(shù)據(jù)通常具有稀疏的特點(diǎn),并且在稀疏特征空間中,許多特征是互斥的,通過EFB算法可以減少很多針對(duì)特征取值為0的多余運(yùn)算。
1.2.1自適應(yīng)粒子群優(yōu)化算法粒子群優(yōu)化算法(Adaptive Partical Swarm Optimization, APSO)是一種生物啟發(fā)式算法,它被通常認(rèn)為是群集智能算法的一種,其思想是通過模擬鳥群捕食的行為——即模擬其集體協(xié)作的方式——尋找最優(yōu)解[8]。在搜尋食物的過程中,食物附近的鳥會(huì)向其他的鳥傳遞位置信息,使得整個(gè)鳥群都能聚集到食物附近。該算法中,鳥被抽象為沒有質(zhì)量的粒子,且僅具有速度和位置兩個(gè)屬性。
PSO算法先隨機(jī)地初始化一群粒子,即事先給定這群粒子的初始速度與初始位置,并定義適應(yīng)度函數(shù)。粒子在搜索空間中運(yùn)動(dòng)受到其自身過去最佳位置的影響以及整個(gè)群體過去最佳位置的影響,在兩個(gè)最佳位置的引導(dǎo)下,種群逐漸收斂,慢慢靠近最優(yōu)解。粒子i在n維空間中的速度和位置:
(3)
式中:k表示當(dāng)前迭代次數(shù);c1和c2稱為學(xué)習(xí)因子,是兩個(gè)正數(shù);r1與r2是[0,1]范圍內(nèi)生成的兩個(gè)隨機(jī)數(shù);vij表示粒子i在維度j上的速度;xij表示粒子i在維度j上的位置。粒子i到達(dá)過的最佳位置表示為pi=(pi1,pi2,…,pin)T,整個(gè)群體所有粒子達(dá)到的最佳位置表示為pg=(pg1,pg2,…,pgn)T。
PSO算法參數(shù)少并且操作簡(jiǎn)單,是目前較為實(shí)用的優(yōu)化算法之一,但是其存在收斂速度慢且容易陷入局部極值等缺點(diǎn)。針對(duì)上述問題,Shi[9]引入了慣性權(quán)重的概念,將之作為一個(gè)平衡因子。當(dāng)慣性權(quán)重的值較大時(shí),粒子有更好的全局搜索能力;其值較小時(shí),粒子有更好的局部搜索能力。慣性權(quán)重因子記為ω,速度
(4)
為了進(jìn)一步提升PSO的性能,本文提出一種自適應(yīng)粒子群優(yōu)化算法,自適應(yīng)主要體現(xiàn)在尋找合適的慣性權(quán)重因子,改進(jìn)策略如下。
1)先對(duì)第t次迭代的所有粒子求其適應(yīng)值。若適應(yīng)度函數(shù)期望取得最大值,就將所有粒子適應(yīng)值按大小降序排序;若適應(yīng)度函數(shù)期望取得最小值,就將粒子按適應(yīng)值升序排序。隨后將所有粒子分成兩半,并計(jì)算每一部分的平均值,分別記為favg1,favg2。
2)將每一個(gè)粒子適應(yīng)值與favg1、favg2進(jìn)行比較。若優(yōu)于favg1,則認(rèn)為粒子已趨近全局最優(yōu),此時(shí)慣性權(quán)重ω取0.2;若次于favg2,則認(rèn)為該粒子仍離全局最優(yōu)值較遠(yuǎn),此時(shí)慣性權(quán)重ω取0.9,利于其進(jìn)行全局搜索;若在兩者之間,則ω在[0.4,0.6]之間隨機(jī)取值。
LightGBM算法超參數(shù)較多,選取不同的超參數(shù)會(huì)直接影響最后的模型預(yù)測(cè)結(jié)果。目前常見的超參數(shù)優(yōu)化方法包括網(wǎng)格搜索法與隨機(jī)搜索法。
網(wǎng)格搜索是目前最普遍的超參數(shù)優(yōu)化算法,通過對(duì)各種需要優(yōu)化的超參數(shù)組合空間進(jìn)行暴力搜索來(lái)尋找使得目標(biāo)函數(shù)達(dá)到最佳的那組超參數(shù)。然而,網(wǎng)格搜索法并不適用于連續(xù)參數(shù)空間,并且隨著超參數(shù)的增多,其搜索空間大小會(huì)呈指數(shù)型增長(zhǎng),相當(dāng)耗費(fèi)時(shí)間。
與網(wǎng)格搜索相比,隨機(jī)搜索并未嘗試所有參數(shù)值,而是通過對(duì)搜索范圍的隨機(jī)取樣選取超參數(shù),因此隨機(jī)搜索一般會(huì)比網(wǎng)格搜索要快一些,但是它高度依賴初始值。Bergstra[10]在實(shí)驗(yàn)中證明了參數(shù)優(yōu)化時(shí)隨機(jī)搜索比網(wǎng)格搜索更有效。
APSO_LightGBM可以很好地解決上述問題,其偽代碼如圖1所示。其中M為種群數(shù)量,K為迭代次數(shù),c1與c2為學(xué)習(xí)因子,需要優(yōu)化的參數(shù)個(gè)數(shù)為N。
圖 1 APSO_LightGBM偽代碼
為了驗(yàn)證APSO_LightGBM在高血壓風(fēng)險(xiǎn)預(yù)測(cè)上的性能,使用美年大健康有限公司2018年公開的體檢數(shù)據(jù)集進(jìn)行研究。數(shù)據(jù)集提供收縮壓、舒張壓的值作為高血壓患病的評(píng)估標(biāo)準(zhǔn)。對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì),共計(jì)有47749條數(shù)據(jù),2800個(gè)變量,每個(gè)變量代表一個(gè)體檢項(xiàng)目。
首先對(duì)數(shù)據(jù)進(jìn)行初步篩選,將缺失值達(dá)到95%的特征刪除,并且刪除僅有單一值的特征。完成初步篩選后,特征數(shù)從2800減到了378。
因?yàn)閿?shù)據(jù)中存在著較多的文本特征,而文本特征與數(shù)值類特征需要進(jìn)行不同的處理,因此需要先對(duì)特征進(jìn)行分離,分離的過程如圖2所示。對(duì)于數(shù)值型特征,先進(jìn)行異常值處理,超過上四分位1.5倍IQR距離的樣本點(diǎn)為異常值,對(duì)其進(jìn)行刪除,并將缺失值用均值填充;對(duì)于文本類特征,短文本提取關(guān)鍵字并直接進(jìn)行編碼,長(zhǎng)文本使用Doc2Vec方法進(jìn)行處理,并設(shè)置其向量維度為5,缺失值使用null字符進(jìn)行填充。最后對(duì)數(shù)據(jù)進(jìn)行整理,預(yù)處理之后的數(shù)據(jù)一共包含38191條數(shù)據(jù),790個(gè)特征。
圖 2 特征分離流程
在機(jī)器學(xué)習(xí)中,訓(xùn)練數(shù)據(jù)的維度并不是越高越好,高維度必然伴隨著高計(jì)算復(fù)雜度,且并不是所有的特征都與預(yù)測(cè)結(jié)果相關(guān),一些不相關(guān)的變量會(huì)對(duì)模型預(yù)測(cè)效果起到負(fù)面影響[11],適當(dāng)?shù)奶卣鬟x擇會(huì)提高模型的效率與精度。采用了遞歸特征消除(RFE)[12]與交叉驗(yàn)證結(jié)合的方式(RFECV)進(jìn)行特征選擇。遞歸特征消除的思想是使用一個(gè)基模型來(lái)進(jìn)行多輪訓(xùn)練,每輪訓(xùn)練后,移除特征重要性較低的一部分特征,再基于新的特征集進(jìn)行下一輪訓(xùn)練。由于每一輪去除的特征中可能保留部分有效信息,所以模型在特征選擇后的數(shù)據(jù)集上的表現(xiàn)可能會(huì)差于原數(shù)據(jù)集。對(duì)收縮壓與舒張壓建立預(yù)測(cè)模型,并分別對(duì)兩個(gè)模型進(jìn)行特征選擇,選擇使得得分最高的一些特征。表1為各預(yù)測(cè)模型對(duì)應(yīng)的特征數(shù)。
表1 各預(yù)測(cè)模型對(duì)應(yīng)的特征數(shù)
LightGBM有較多的超參數(shù),不同的超參數(shù)對(duì)模型起到不同的作用。本文選取LightGBM模型的6項(xiàng)主要參數(shù)。對(duì)于傳統(tǒng)尋參方法存在的缺陷,本文提出自適應(yīng)粒子群優(yōu)化算法尋找其最佳參數(shù)。
根據(jù)粒子群優(yōu)化算法的特點(diǎn)以及數(shù)據(jù)集的大小,設(shè)置初始種群數(shù)為100,每個(gè)個(gè)體包含6個(gè)參數(shù),參數(shù)在所給范圍內(nèi)隨機(jī)生成;設(shè)置進(jìn)化次數(shù)為50,以均方誤差作為適應(yīng)度函數(shù),設(shè)置學(xué)習(xí)因子c1與c2的值為1.5。優(yōu)化過程如圖3所示。可以發(fā)現(xiàn),相比原始的PSO優(yōu)化算法,APSO算法收斂得更快,并且表現(xiàn)出更好的全局搜索能力。
(a)收縮壓模型參數(shù)優(yōu)化過程
(b)舒張壓模型參數(shù)優(yōu)化過程圖 3 粒子群優(yōu)化算法尋找超參數(shù)
采用python語(yǔ)言對(duì)數(shù)據(jù)進(jìn)行分析,以收縮壓、舒張壓為預(yù)測(cè)指標(biāo)分別建立對(duì)應(yīng)的預(yù)測(cè)模型。
2.4.1驗(yàn)證RFECV合理性體檢數(shù)據(jù)是一個(gè)高維數(shù)據(jù)。為了降低其維度,使用RFECV進(jìn)行特征選擇。為了驗(yàn)證該算法的有效性,實(shí)驗(yàn)使用經(jīng)過RFECV算法選擇后的特征進(jìn)行模型訓(xùn)練,并將其與原始特征訓(xùn)練的模型進(jìn)行對(duì)比。模型均使用默認(rèn)超參數(shù),并以5折交叉驗(yàn)證的方式進(jìn)行訓(xùn)練。兩者在時(shí)間與精度上的對(duì)比如表2所示,表格中的平均均方誤差指的是兩個(gè)模型均方誤差的平均值,運(yùn)行時(shí)間指的是兩個(gè)模型訓(xùn)練的總時(shí)間。實(shí)驗(yàn)分析可得,使用RFECV降維后,模型在時(shí)間效率上提高了31.8%,而在評(píng)估指標(biāo)上只下降了0.37%,所以使用RFECV方法進(jìn)行特征選擇是合理的。
表2 RFECV特征選擇前后性能對(duì)比
2.4.2驗(yàn)證APSO算法的優(yōu)越性由于特征選擇后可以大大降低計(jì)算成本,且對(duì)模型的精度不會(huì)有太大的影響,所以超參數(shù)的優(yōu)化實(shí)驗(yàn)都是基于RFECV選擇后的特征。為了驗(yàn)證自適應(yīng)粒子群優(yōu)化算法的優(yōu)越性,實(shí)驗(yàn)同時(shí)使用網(wǎng)格搜索與隨機(jī)搜索兩種傳統(tǒng)方式對(duì)超參數(shù)進(jìn)行優(yōu)化,最后將三者的結(jié)果進(jìn)行對(duì)比。由于網(wǎng)格搜索會(huì)消耗大量的時(shí)間成本,所以本次對(duì)比實(shí)驗(yàn)只選用了收縮壓預(yù)測(cè)模型,實(shí)驗(yàn)中優(yōu)化的參數(shù)空間如表3所示。
表3 參數(shù)空間
將APSO_LightGBM與網(wǎng)格搜索、隨機(jī)搜索以及LightGBM的默認(rèn)參數(shù)進(jìn)行對(duì)比,不同的優(yōu)化方法選擇相同范圍的參數(shù)空間,并使用運(yùn)行時(shí)間與均方誤差MSE作為評(píng)估指標(biāo)。由于APSO算法設(shè)置了種群大小為100,50次的進(jìn)化,即相當(dāng)于5000次迭代,故將隨機(jī)搜索的迭代次數(shù)也設(shè)置為5000以方便對(duì)比。實(shí)驗(yàn)結(jié)果如表4所示,表中網(wǎng)格搜索的運(yùn)行時(shí)間為其搜索完待選參數(shù)空間所需的時(shí)間,隨機(jī)搜索的運(yùn)行時(shí)間為其迭代5000輪的時(shí)間,APSO的運(yùn)行時(shí)間為其精度不再變化后的時(shí)間,即完成收斂所需的時(shí)間。參數(shù)列表的順序?yàn)閘earning_rate、feature_fraction、bagging_fraction、bagging_freq、num_leaves和min_data_in_leaf。
從表4中的數(shù)據(jù)看出,網(wǎng)格搜索雖然有精度上的提升,但是會(huì)花費(fèi)大量的時(shí)間成本;隨機(jī)搜索的運(yùn)行時(shí)間相比網(wǎng)格搜索大大減少了,而且在精度上也比網(wǎng)格搜索略好一些;自適應(yīng)粒子群優(yōu)化算法相比網(wǎng)格搜索與隨機(jī)搜索,在精度上有顯著的提升,而且運(yùn)行時(shí)間遠(yuǎn)遠(yuǎn)小于網(wǎng)格搜索與隨機(jī)搜索,所以使用自適應(yīng)粒子群優(yōu)化算法尋找超參數(shù)是有效的。
2.4.3驗(yàn)證APSO_LightGBM算法的有效性為了驗(yàn)證APSO_LightGBM模型對(duì)高血壓風(fēng)險(xiǎn)預(yù)測(cè)的有效性,選擇線性回歸、決策樹、支持向量機(jī)以及LightGBM與其進(jìn)行對(duì)比分析。采用MAE(平均絕對(duì)誤差)、MSE(均方誤差)和R-squared(決定系數(shù))作為模型的評(píng)價(jià)指標(biāo),其中MAE與MSE兩個(gè)評(píng)價(jià)指標(biāo)用于評(píng)估真實(shí)值與預(yù)測(cè)值之間的差異,數(shù)值越小代表預(yù)測(cè)越準(zhǔn)確,R-squared用于評(píng)估模型的解釋度,數(shù)值越大,說明模型解釋性越強(qiáng)。實(shí)驗(yàn)結(jié)果如表5所示,其中的數(shù)值為兩個(gè)預(yù)測(cè)模型對(duì)應(yīng)指標(biāo)的平均值??梢园l(fā)現(xiàn)APSO_LightGBM的預(yù)測(cè)精度優(yōu)于其他模型,并且在解釋性上也得到了增強(qiáng)。
表5 算法對(duì)比
通過驗(yàn)證,APSO_LightGBM算法性能最優(yōu)。圖4給出了基于該算法的兩個(gè)預(yù)測(cè)模型最相關(guān)的15項(xiàng)文本特征。結(jié)果顯示,收縮壓、舒張壓與心率、是否具有病史、肝功能、甲狀腺、子宮以及前列腺等的健康程度呈高度相關(guān)。有研究表明,高血壓與血清甲狀腺激素有著密切的關(guān)系[13];對(duì)前列腺增生實(shí)施藥物或者手術(shù)干預(yù)能在一定程度上降低血壓[14];子宮內(nèi)膜異??赡軐?dǎo)致患高血壓的風(fēng)險(xiǎn)增高[15]。從本文研究結(jié)果可以看出,模型得到的重要性特征與醫(yī)學(xué)結(jié)果大部分契合。因此心率不齊、甲狀腺功能低下、子宮或是前列腺異常、肝膽疾病的患者或曾有類似病史的人群通過早期檢測(cè)這些強(qiáng)重要性特征,可以實(shí)現(xiàn)高血壓的精準(zhǔn)預(yù)防。
(a)收縮壓
(b)舒張壓圖 4 收縮壓與舒張壓模型特征重要性排名
本文提出一種基于集成算法LightGBM的高血壓風(fēng)險(xiǎn)預(yù)測(cè)模型,并根據(jù)體檢數(shù)據(jù)指標(biāo)冗余的問題,引入RFECV算法進(jìn)行特征選擇,實(shí)驗(yàn)表明其在降低維度的同時(shí)保證了模型的精度。此外,為了提升模型的性能,引入自適應(yīng)粒子群優(yōu)化算法尋找最優(yōu)超參數(shù)。結(jié)果表明,改進(jìn)的模型相比傳統(tǒng)的超參數(shù)優(yōu)化算法性能有很大的提升,并且比常用的線性回歸、決策樹和SVM方法有更好的預(yù)測(cè)精度。APSO_LightGBM模型結(jié)合了自適應(yīng)粒子群算法的全局搜索能力和LightGBM算法的高效性與廣泛性,除了本文的應(yīng)用場(chǎng)景外,該模型還可以應(yīng)用于其他疾病的預(yù)測(cè)問題。但在實(shí)驗(yàn)過程中,模型的運(yùn)行時(shí)間比較長(zhǎng),降低自適應(yīng)粒子群優(yōu)化算法的計(jì)算復(fù)雜度有待進(jìn)一步研究。接下來(lái)的工也會(huì)考慮優(yōu)化LightGBM算法的損失函數(shù),進(jìn)一步提升模型精度。