賴俊豪
華南農(nóng)業(yè)大學(xué)/電子工程學(xué)院(人工智能學(xué)院) 廣州 廣東 510642
當(dāng)今社會下,高糖高脂的飲食、高漲的生活壓力、不良的生活習(xí)慣如吸煙、久坐不動等,已然成為心腦血管疾病的主要誘導(dǎo)因素。據(jù)美國心臟病學(xué)會研究表明,過去5年間,罹患各類心腦血管疾病的人數(shù)上漲了49.2%,因此造成的直接或間接經(jīng)濟(jì)負(fù)擔(dān)更是高達(dá)3634億美元每年[1]。在2019年間,中國總死亡人數(shù)中有71%死于非傳染性疾病,而心腦血管疾病是非傳染性疾病中排行榜首的致死因素,占比達(dá)到了驚人的44%[2]。心臟作為人體的重要組成部分,其任意微小病變都有概率致殘甚至致死,嚴(yán)重威脅人類身心健康。盡早發(fā)現(xiàn)心血管病便能盡早治療,便可能及時挽救人類的生命,減少不必要的社會支出,這說明對心腦血管疾病的提前預(yù)警具有重大意義。
心血管病起因復(fù)雜,早期癥狀不明顯,傳統(tǒng)的醫(yī)療診斷模型對這類疾病預(yù)測效果不佳,導(dǎo)致患者錯過黃金治療期。而機(jī)器學(xué)習(xí)可以自主地挖掘數(shù)據(jù)間的內(nèi)在聯(lián)系,建立預(yù)測模型,預(yù)測患者患病風(fēng)險。目前國內(nèi)諸多學(xué)者曾開展過研究,其中大部分研究都是基于UCI心臟病數(shù)據(jù)集,如葉蘇婷等人采用決策樹算法進(jìn)行研究,取得了81%的準(zhǔn)確率[3];劉宇等人采用K鄰近算法與XGboost算法相配合,取得了85%的準(zhǔn)確率[4];王健等人通過神經(jīng)網(wǎng)絡(luò)算法建立模型,取得了89%的準(zhǔn)確率[5]。在建立模型時,不同的機(jī)器學(xué)習(xí)算法的預(yù)測準(zhǔn)確率不同,即使是相同的訓(xùn)練集相同的算法,選擇不同特征變量的,也會導(dǎo)致結(jié)果的不同。本文選取UCI提供的心臟病數(shù)據(jù)集作為研究對象,并利用梯度提升樹與支持向量機(jī)算法相配合來構(gòu)建模型,并與部分其他算法進(jìn)行比較,尋找其中預(yù)測效果最優(yōu)的算法。
梯度提升樹是以決策樹為基礎(chǔ)的算法,對真實(shí)分布具有出色的擬合度,其原理是每輪迭代在上一輪模型的殘差基礎(chǔ)產(chǎn)生
一個新的決策樹,并將所有的決策樹相加即是搭建的模型,經(jīng)過n輪迭代后,模型可以表示為:是已經(jīng)構(gòu)造的n-1棵決策樹所組成的模型,而是我們當(dāng)前需要構(gòu)造的第n棵決策樹,代表決策樹的系數(shù),即是殘差,可以用下式近似表示:
其中:N代表樣本的總個數(shù),L代表損失函數(shù)。在本文中使用的損失函數(shù)是對數(shù)損失函數(shù):
在每輪迭代時,通過使損失函數(shù)快速減小,從而使模型可以快速收斂。
GBDT不僅可以原來建立模型,還可以用來篩選特征,這也是GBDT算法在本文中的應(yīng)用。通過遍歷每種可能的決策樹組合,某一特征的重要性可以根據(jù)其對輸出結(jié)果的影響來衡量,但這會涉及大量復(fù)雜的計算,而Friedman提出了一種簡便的方法,即是通過特征在所有樹中的平均重要度來衡量其對整體的貢獻(xiàn)性[6],其表達(dá)式如下:
其中:M是樹的數(shù)量,L是第M棵樹的葉子節(jié)點(diǎn)數(shù)量,L-1是該樹的非葉子節(jié)點(diǎn)數(shù)量,而是節(jié)點(diǎn)分裂之后損失函數(shù)的減少值。特征的重要度越高,那么在特征節(jié)點(diǎn)在分裂時損失函數(shù)減少得便越多,根據(jù)不同特征中重要度的排序,就可以知道不同特征的優(yōu)先級。
支持向量機(jī)分類器是最大間隔分類器的推廣,其算法的核心思想是根據(jù)數(shù)據(jù)樣本的空間分布特點(diǎn),尋求一個合適的超平面將樣本空間分割,以此達(dá)到分類的目的。
為方便理解,可以將遐想在一張白紙上散落著紅豆與綠豆,若在白紙上描繪坐標(biāo)軸,用X軸表示顏色,Y軸表示大小,那么紅豆與綠豆便會分成涇渭分明的兩堆,其間可以用一條直線表達(dá)式表示分界線,這便是最大間隔分類器的作用。但如果將紅豆與綠豆替換為紅豆與赤小豆,采用相同的坐標(biāo)系便無法有效區(qū)分。考慮將大小這一維度擴(kuò)展為Y軸表示長度,Z軸表示寬度,那么將可以找到一個平面將兩者區(qū)分開來,這便是支持向量機(jī)的作用。將其推廣到N維空間中,那么分割面便是一個N-1維的平面仿射子空間,可以用如下線性方程來描述:
到該平面的距離可以表示為:
的值即是間隔,通過上式計算符合樣本數(shù)據(jù)的最大值,其所對應(yīng)的曲面即是最大間隔超平面??梢钥吹?,尋找目標(biāo)曲面的重點(diǎn)是最大化間隔即是要最小化即是要求解以下優(yōu)化問題:
通過求解優(yōu)化問題,可以得到相關(guān)的模型參數(shù) 和,從而創(chuàng)立支持向量機(jī)模型。而分類可以通過定義如下函數(shù)來判斷:
近年來UCI心臟病數(shù)據(jù)集比較熱門,被廣泛應(yīng)用在各種研究中,其原始數(shù)據(jù)包含了303個樣本,75個特征與1個標(biāo)簽。遍歷數(shù)據(jù)集,人為的去除序號、姓名和社保賬號等與訓(xùn)練無關(guān)的特征,去除含有未知項和重復(fù)項的特征,此時剩余59個特征。利用GBDT算法進(jìn)行特征篩選,采用重要性前10的特征進(jìn)行模型搭建,部分特征的重要度如圖1所示。
圖1 部分特征重要性
精簡后的數(shù)據(jù)集包含10個特征與1個標(biāo)簽,如下表1所示。
表1 特征介紹
數(shù)據(jù)集中無缺失值,但可以注意到不同特征值的表達(dá)情況不同,有的用連續(xù)值表示,有的用離散值表示,各特征的量綱也有所差異。為了清除不同特征間差異的影響,需要進(jìn)行歸一化。隨后,從樣本中隨機(jī)抽取作為測試集,其余部分作為訓(xùn)練集,即訓(xùn)練集有243個樣本,測試集有60個樣本。
采用訓(xùn)練集用來搭建基于支持向量機(jī)算法的預(yù)測模型,并用測試集測試模型的可靠性,隨后采用邏輯回歸模型算法與隨機(jī)森林算法進(jìn)行模型搭建,對三者進(jìn)行比較。其中支持向量機(jī)模型選擇參數(shù)為核函數(shù)為linear函數(shù),懲罰系數(shù)為1,邏輯回歸模型采用默認(rèn)閾值,即為0.5,隨機(jī)森林模型選擇參數(shù)為最大決策樹數(shù)目為20,隨機(jī)狀態(tài)數(shù)為12,決策樹最大深度為7。通過網(wǎng)格搜索法對支持向量機(jī)模型與隨機(jī)森林模型參數(shù)進(jìn)行優(yōu)化,優(yōu)化后支持向量機(jī)模型使用RBF函數(shù)(gamma值為0.1)作為核函數(shù),懲罰系數(shù)為2,隨機(jī)森林模型最佳參數(shù)為最大決策樹數(shù)目為40,隨機(jī)狀態(tài)數(shù)為12,決策樹最大深度為6。而邏輯回歸模型則通過改變閾值探究影響,發(fā)現(xiàn)在閾值為默認(rèn)值時模型已經(jīng)達(dá)到最優(yōu)。不同模型的準(zhǔn)確率、精確率、召回率與F1值如表2所示。
從表2中可以看出,支持向量機(jī)模型不論在優(yōu)化前后,皆表現(xiàn)出了比邏輯回歸模型與隨機(jī)森林模型更好的擬合性。因?yàn)樵赨CI的心臟病樣本中,患病人數(shù)與非患病人數(shù)相差無幾,所以可以看到各模型的準(zhǔn)確率與精確率高度相似,但在實(shí)際中,患有心臟病的是少部分人數(shù),召回率是一個更有參考意義的值,它表征了我們所能正確預(yù)測心臟病患者的比例。而F1則可以表示分類器的優(yōu)劣性,值越高則說明分類效果越好。在本實(shí)驗(yàn)采用的三種算法中,支持向量機(jī)算法對UCI心臟病的數(shù)據(jù)集建模效果較好。
表2 不同模型評價對比
本文通過使用支持向量機(jī)算法,建立了心臟病預(yù)測模型,并與邏輯回歸算法與隨機(jī)森林算法搭建的模型進(jìn)行了比較,結(jié)果表明支持向量機(jī)算法效果更優(yōu)秀,可以有效預(yù)測心臟病發(fā)病風(fēng)險。在本文實(shí)驗(yàn)流程中,支持向量機(jī)模型準(zhǔn)確率為0.92,精確率為0.92,召回率為0.91,提示其在目標(biāo)數(shù)據(jù)樣本上具有優(yōu)良的分類效果。但本模型仍存在改善空間,如采取更多的效果數(shù)據(jù)集進(jìn)行驗(yàn)證,或采取不同的優(yōu)化算法進(jìn)模型進(jìn)行優(yōu)化。