趙金超,李 儀,王 冬,張俊虎
(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,山東 青島266061)
目前醫(yī)學(xué)領(lǐng)域正面臨由傳統(tǒng)醫(yī)學(xué)模式向精準(zhǔn)醫(yī)學(xué)模式轉(zhuǎn)變的契機(jī),給人工智能技術(shù)充分參與醫(yī)療實(shí)踐活動(dòng)創(chuàng)造了有利的環(huán)境[1-2]。國(guó)內(nèi)外研究人員,依靠不同的算法,通過(guò)對(duì)心臟病進(jìn)行分類(lèi)從而實(shí)現(xiàn)幫助醫(yī)生進(jìn)行輔助診斷,正在進(jìn)行大量的研究工作。COMAK等[3]在2007年通過(guò)支持向量機(jī)建立了對(duì)心臟病識(shí)別的系統(tǒng)。PARTHIBAN等[4]在2011年應(yīng)用樸素貝葉斯算法在心臟病治療上。史琦等[5-7]連續(xù)3 a分別使用數(shù)據(jù)挖掘、決策樹(shù)、模式識(shí)別對(duì)心臟病進(jìn)行了分類(lèi)預(yù)測(cè)研究,史瑜等[8]在2015年用K近鄰算法對(duì)心臟病進(jìn)行分類(lèi),得到了75%的準(zhǔn)確率。醫(yī)生在診斷患者時(shí),主要根據(jù)病人的一系列的醫(yī)學(xué)檢查結(jié)果,自己學(xué)習(xí)的醫(yī)療知識(shí)和以往的經(jīng)驗(yàn),對(duì)病人是否患有該疾病進(jìn)行判斷。然而在醫(yī)生做出判斷時(shí),會(huì)由于人為不可抗原因,可能會(huì)產(chǎn)生錯(cuò)誤判斷。而目前流行的通過(guò)醫(yī)療與機(jī)器學(xué)習(xí)算法相結(jié)合的方法,能夠幫助醫(yī)生有效減少誤診率,提高診療準(zhǔn)確率和效率,對(duì)醫(yī)療事業(yè)的發(fā)展有著推動(dòng)作用。在機(jī)器學(xué)習(xí)算法中,隨機(jī)森林就是一種易理解,易應(yīng)用的集成學(xué)習(xí)的方法,本研究基于隨機(jī)森林算法建立一種KNN-RF模型,對(duì)心臟病進(jìn)行輔助診斷,通過(guò)對(duì)算法進(jìn)行優(yōu)化和與其他機(jī)器學(xué)習(xí)算法對(duì)比,獲得較高準(zhǔn)確率。
隨機(jī)森林的基本組成單元是決策樹(shù),對(duì)用與分類(lèi)與回歸問(wèn)題的研究,它是許多各自獨(dú)立同分布的決策樹(shù)結(jié)合而成的,組成隨機(jī)森林的每一棵決策樹(shù)都會(huì)對(duì)輸入數(shù)據(jù)進(jìn)行分類(lèi)處理,處理完成后,對(duì)每棵樹(shù)的決策結(jié)果進(jìn)行投票處理,票數(shù)高的即為輸出結(jié)果。與決策樹(shù)相比,隨機(jī)森林有更良好的分類(lèi)效果和更加優(yōu)秀的泛化能力,實(shí)質(zhì)上就是對(duì)決策樹(shù)的一種改進(jìn)算法。
決策樹(shù)是一種基礎(chǔ)結(jié)構(gòu)形似一棵樹(shù)的監(jiān)督學(xué)習(xí)算法,其每個(gè)節(jié)點(diǎn)代表一個(gè)字段,最早由HUNT等提出,反映輸入的屬性與輸出值的一一對(duì)應(yīng)關(guān)系。決策樹(shù)由三部分構(gòu)成:決策點(diǎn)、狀態(tài)節(jié)點(diǎn)、結(jié)果節(jié)點(diǎn)。對(duì)每一個(gè)新輸入的數(shù)據(jù),根據(jù)模型進(jìn)行自上而下的節(jié)點(diǎn)分配,每一個(gè)內(nèi)部節(jié)點(diǎn)只有一個(gè)父節(jié)點(diǎn)和兩個(gè)或多個(gè)子節(jié)點(diǎn),根據(jù)所規(guī)定的規(guī)則劃分?jǐn)?shù)據(jù)集,直到最下層,最終將葉子結(jié)點(diǎn)的分類(lèi)作為該輸入數(shù)據(jù)的類(lèi)別。決策樹(shù)中,每個(gè)節(jié)點(diǎn)表示一個(gè)對(duì)象,決策點(diǎn)是最終選擇的方案,若為多級(jí)決策問(wèn)題,則可以存在多個(gè)決策點(diǎn)。決策樹(shù)的模型構(gòu)建分類(lèi)兩部分:特征選擇和生成樹(shù)。
決策樹(shù)的分類(lèi)好壞取決于其屬性的選擇,在不斷劃分的或域中,使節(jié)點(diǎn)“純度”越來(lái)越高。決策樹(shù)使用無(wú)需先驗(yàn)知識(shí),可以同時(shí)處理連續(xù)與離散數(shù)據(jù),更容易學(xué)習(xí)和理解,復(fù)雜度低效率高。但是會(huì)容易出現(xiàn)過(guò)擬合現(xiàn)象,存在局限性[9]。
為了解決單棵決策樹(shù)存在的不足并提高模型精度,文中采取隨機(jī)森林(random forest)算法。該算法主要用于分類(lèi)與回歸,在20世紀(jì)90年代由BREIMAN[10]提出,在生物處理,人臉識(shí)別等方面應(yīng)用廣泛。隨機(jī)森林利用集成學(xué)習(xí)思維為基礎(chǔ),構(gòu)造多個(gè)決策樹(shù)合成,其中的每一棵決策樹(shù)之間是獨(dú)立的。當(dāng)輸入新樣本時(shí),隨機(jī)森林中的每一棵樹(shù)都會(huì)判斷該樣本的分類(lèi)結(jié)果,最后綜合判斷結(jié)果進(jìn)行投票判決,票數(shù)多的一類(lèi)即為預(yù)測(cè)的最終結(jié)果,公式如下:。該算法能夠有效解決決策樹(shù)準(zhǔn)確性較低或過(guò)擬合的問(wèn)題,有效的提升了算法模型的泛化能力,實(shí)現(xiàn)簡(jiǎn)單。大致流程見(jiàn)圖1。
圖1 隨機(jī)森林算法流程Fig.1 Flow of random forest algorithm
步驟:
1)假設(shè)原始訓(xùn)練集有N個(gè)樣本,隨機(jī)有放回的抽樣組成訓(xùn)練集。
2)設(shè)d<D,從樣本的D個(gè)特征中,隨機(jī)抽取d個(gè)特征。
3)用抽取的特征進(jìn)行構(gòu)造隨機(jī)森林模型。
4)輸入數(shù)據(jù),每棵樹(shù)得到各自的結(jié)果,將結(jié)果進(jìn)行投票,選擇票數(shù)多的為最終結(jié)果。
隨機(jī)森林中的每一棵樹(shù)都是按照由頂而下的原則,從根節(jié)點(diǎn)開(kāi)始劃分而成。在該樹(shù)中,根節(jié)點(diǎn)包含所有的數(shù)據(jù),直到分裂至滿足停止條件才會(huì)停止分類(lèi)。該算法將單個(gè)分類(lèi)器進(jìn)行加權(quán)組合,構(gòu)建性能較好的分類(lèi)器,任意兩棵樹(shù)關(guān)聯(lián)性越小,該模型錯(cuò)誤率越低。
隨機(jī)森林在實(shí)驗(yàn)中性能較好,有較強(qiáng)的抗噪聲性能,但在處理非平衡的數(shù)據(jù)上,存在缺陷,由于本研究數(shù)據(jù)標(biāo)簽分布均衡,故本數(shù)據(jù)集適用于隨機(jī)森林算法。
網(wǎng)格搜索(grid search CV),又被稱(chēng)為窮舉搜索,是在機(jī)器學(xué)習(xí)中非常常用的一種調(diào)參方法。其包括兩部分:網(wǎng)格搜索,交叉驗(yàn)證。一般就是根據(jù)實(shí)驗(yàn)需要指定一項(xiàng)需要調(diào)整的參數(shù),在指定的范圍內(nèi),通過(guò)遍歷選定參數(shù),選擇能夠讓模型得到最優(yōu)結(jié)果的那個(gè)參數(shù)作為最終結(jié)果。
為了提高模型的精確度,本研究對(duì)隨機(jī)森林中的兩個(gè)參數(shù):樹(shù)的數(shù)量即n_estimators、樹(shù)的高度即max_depth和最大葉子節(jié)點(diǎn)數(shù)即max_leaf_nodes作為需要搜索的超參數(shù),選擇最佳的參數(shù)。該方法可避免產(chǎn)生嚴(yán)重的誤差,得到較優(yōu)的解。但是該方法的缺點(diǎn)是會(huì)消耗比較多的時(shí)間。
從數(shù)據(jù)庫(kù)收集的數(shù)據(jù),存在良莠不齊的特點(diǎn),可能會(huì)存在缺失值和異常值,因此需要先對(duì)數(shù)據(jù)進(jìn)行處理,得到符合實(shí)驗(yàn)規(guī)定的數(shù)據(jù),再進(jìn)行模型建立。
本研究選取UCI上的心臟病數(shù)據(jù)集,該數(shù)據(jù)集有13個(gè)屬性,303條數(shù)據(jù),其中第14位為分類(lèi)項(xiàng),target代表是否患病。此外,本研究還使用了來(lái)自克利夫蘭醫(yī)學(xué)中心的270條數(shù)據(jù),同樣有13個(gè)屬性,是開(kāi)源數(shù)據(jù)集。屬性名稱(chēng)分別見(jiàn)表1。
表1 數(shù)據(jù)集屬性Table 1 Data set properties
機(jī)器學(xué)習(xí)常用的數(shù)據(jù)庫(kù),超過(guò)40%都含有缺失數(shù)據(jù)[11]。在原始數(shù)據(jù)集中,可能會(huì)存在大量“臟數(shù)據(jù)”,這些“臟數(shù)據(jù)”的使用,會(huì)導(dǎo)致模型的分類(lèi)效果變差,準(zhǔn)確率變低,有價(jià)值信息被忽略等情況,因此,在進(jìn)行相關(guān)的研究之前,需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。本研究數(shù)據(jù)處理包括:缺失值處理,one-hot編碼,歸一化數(shù)據(jù)。
2.2.1 缺失值處理
缺失值處理常用的辦法有2種:刪除法和插補(bǔ)法。刪除法,主要用于刪除有缺失的數(shù)據(jù),適用于數(shù)據(jù)量大的情況。由于本研究數(shù)據(jù)集較小,使用的是第2種方法,插補(bǔ)法。對(duì)于填補(bǔ)方法,通常,數(shù)值型用中位數(shù)進(jìn)行數(shù)據(jù)填充,離散型用眾數(shù)進(jìn)行填充,但是這樣做會(huì)增加噪聲,會(huì)使數(shù)據(jù)的使用結(jié)果產(chǎn)生一定的偏差,只適用于缺失數(shù)據(jù)特別少時(shí)可用。由于K近鄰算法具有簡(jiǎn)單、直觀的優(yōu)點(diǎn),在將其與中位數(shù)填充、均值填充、眾數(shù)填充、不進(jìn)行處理等4項(xiàng)操作進(jìn)行對(duì)比后,選擇效果最好的K近鄰填補(bǔ)法對(duì)數(shù)據(jù)進(jìn)行填充完善。
首先將數(shù)據(jù)初始化,構(gòu)建成數(shù)據(jù)矩陣;其次,對(duì)矩陣中的數(shù)據(jù)進(jìn)行歐式距離計(jì)算,其公式如下:D=,并從中選擇歐氏距離最小的K個(gè)數(shù)據(jù);最后,計(jì)算所選數(shù)據(jù)的權(quán)值,并對(duì)數(shù)據(jù)進(jìn)行填充。該算法具體流程圖2所示。
圖2 數(shù)據(jù)填補(bǔ)流程Fig.2 Data filling process
以上所述的方法,只能處理離散值屬性,如果遇上連續(xù)型屬性,就要把連續(xù)型屬性離散化,再按照上述步驟進(jìn)行數(shù)據(jù)處理既可。
2.2.2 one-hot編碼
one-hot編碼為機(jī)器學(xué)習(xí)技術(shù)常用數(shù)據(jù)預(yù)處理方法。其主要思想是把一個(gè)詞語(yǔ)轉(zhuǎn)化成為一些數(shù)字化特征,也可以看作將其映射到一個(gè)新的空間并用多維的實(shí)數(shù)向量進(jìn)行表示,而這個(gè)向量就稱(chēng)之為詞向量[12]。
one-hot編碼就是把詞向量的非連續(xù)性數(shù)值進(jìn)行轉(zhuǎn)換,是分類(lèi)變量的二進(jìn)制表示形式。使用該編碼,將離散特征的取值映射到歐式空間,離散特征的某個(gè)取值就對(duì)應(yīng)歐式空間的某個(gè)點(diǎn)。
在處理后,該值只有一個(gè)維度為1其余維度為0。由于本研究數(shù)據(jù)集中CP、Slope、Thal 3個(gè)特征屬性是離散特征,采用one-hot方法對(duì)3個(gè)特征屬性進(jìn)行數(shù)字標(biāo)號(hào)處理,離散數(shù)據(jù)特征進(jìn)行one-hot編碼后,每一維度的特征都可以被看作是連續(xù)的特征??梢詫?duì)其進(jìn)行歸一化處理。CP、Slope、Thal 3個(gè)變量進(jìn)行one-hot編碼后,數(shù)據(jù)集由原來(lái)14個(gè)特征變?yōu)?2個(gè)特征。
2.2.3 數(shù)據(jù)歸一化
數(shù)據(jù)歸一化是將數(shù)據(jù)按照一定比例,將其縮小到特定閾值內(nèi),而對(duì)于不同數(shù)據(jù),存在不同的量綱,計(jì)算起來(lái)較為復(fù)雜,需要對(duì)數(shù)據(jù)采取歸一化處理。本研究采用Min-Max方法,將數(shù)據(jù)變成0~1之間的數(shù),其計(jì)算公式如式(1)所示。由于心臟病數(shù)據(jù)集中各屬性的取值不都在0~1之間,需要對(duì)其進(jìn)行歸一化處理,來(lái)提高分類(lèi)算法準(zhǔn)確度。歸一化后部分?jǐn)?shù)據(jù)見(jiàn)表2。
表2 歸一化后部分?jǐn)?shù)據(jù)顯示Table 2 Normalized partial data display
2.2.4 連續(xù)值離散化
經(jīng)典決策樹(shù)算法比較適用于離散型屬性數(shù)據(jù),對(duì)于連續(xù)數(shù)值型屬性問(wèn)題,它生成的決策樹(shù)較為龐大,一般選擇取值區(qū)間二分離散化對(duì)其進(jìn)行處理。其具體步驟如下:1)給定一個(gè)訓(xùn)練集D和連續(xù)屬性a,初始化區(qū)間,通過(guò)離散化連續(xù)型屬性,基于劃分點(diǎn)t將樣本進(jìn)行劃分為和為取值小于等于t的樣本,為取值大于t的樣本);2)對(duì)屬性a,把區(qū)間的中點(diǎn)作為劃分點(diǎn),就可以對(duì)其進(jìn)行處理;3)分別計(jì)算信息增益并比較大小,Gain(D,a)=(D,a,t),信息增益比較最大的,即為最佳分裂點(diǎn),由該點(diǎn)將概率屬性值劃分。
數(shù)據(jù)集特征之間可以進(jìn)行分析,利用特征之間的關(guān)系可以更好地理解數(shù)據(jù)集數(shù)據(jù)之間的關(guān)系。在統(tǒng)計(jì)學(xué)領(lǐng)域,特征之間的關(guān)系稱(chēng)為相關(guān)[13]??梢杂脽崃D觀察各個(gè)特征之間的相關(guān)性,每一個(gè)顏色塊代表橫坐標(biāo)和縱坐標(biāo)特征的相關(guān)程度,右側(cè)為劃分的相關(guān)系數(shù)。顏色越深說(shuō)明兩個(gè)特征之間的關(guān)聯(lián)性越小,相關(guān)系數(shù)越小。相關(guān)系數(shù)為0時(shí)表明兩個(gè)特征之間是獨(dú)立的。反之,說(shuō)明特征之間是冗余的。通過(guò)圖3可得,該數(shù)據(jù)集特征之間相關(guān)程度較弱,數(shù)據(jù)沒(méi)有冗余。
圖3 特征相關(guān)性分析Fig.3 Feature correlation analysis
為了提高算法的準(zhǔn)確度,利用網(wǎng)格搜索算法對(duì)隨機(jī)森林(RF)算法進(jìn)行參數(shù)調(diào)優(yōu)。設(shè)定隨機(jī)森林分類(lèi)樹(shù)的數(shù)量為n_estimators,范圍設(shè)置為[10,100,200,500,1 000],分類(lèi)樹(shù)的高度為max_depth,范圍設(shè)置為[3,4,5,6,7,8],最大葉子節(jié)點(diǎn)數(shù)為max_leaf_nodes,范圍設(shè)置為[11,12,13,14,15,16]。利用Python中Scikit-Learn.GridSearchCV網(wǎng)格搜索算法按步長(zhǎng)依次調(diào)整參數(shù),在指定的參數(shù)范圍內(nèi)找到精度最高的參數(shù),采用10倍交叉驗(yàn)證方法對(duì)其進(jìn)行評(píng)估。10倍交叉驗(yàn)證對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行訓(xùn)練,將數(shù)據(jù)集平均分為10份,隨機(jī)選擇其中的9份作為訓(xùn)練集,剩下的1份作為測(cè)試集,一共進(jìn)行10次訓(xùn)練和測(cè)試,使用選擇好的評(píng)分方式如準(zhǔn)確率來(lái)求平均值,然后找出最大的一個(gè)評(píng)分對(duì)應(yīng)的參數(shù)組合,得到分類(lèi)準(zhǔn)確率最高的最優(yōu)參數(shù)。通過(guò)網(wǎng)格搜索算法多次尋優(yōu)后,確定最佳參數(shù)組合為[n_estimators:100,max_depth:5,max_leaf_nodes:16],算法準(zhǔn)確率最高。
本研究模型流程主要包括數(shù)據(jù)預(yù)處理、特征分析以及利用隨機(jī)森林(RF)對(duì)數(shù)據(jù)集進(jìn)行分類(lèi)預(yù)測(cè)。模型流程如圖4所示。
圖4 基于優(yōu)化的隨機(jī)森林預(yù)測(cè)算法模型流程Fig.4 Model flow of prediction gorithm based on optimized random forest
本研究的實(shí)驗(yàn)數(shù)據(jù)來(lái)自UCI公開(kāi)心臟病數(shù)據(jù)集以及克利夫蘭醫(yī)學(xué)中心,由于兩個(gè)數(shù)據(jù)集的特征數(shù)量和內(nèi)容相同,在經(jīng)過(guò)數(shù)據(jù)預(yù)處理后,兩者對(duì)數(shù)據(jù)的表現(xiàn)形式完全一致,因此,為了實(shí)驗(yàn)?zāi)軌虮憩F(xiàn)出更好的泛化能力,將兩個(gè)數(shù)據(jù)集的數(shù)據(jù)進(jìn)行混合,并按照7∶3的比例分類(lèi)訓(xùn)練集和測(cè)試集,進(jìn)行建模。
此外,建模所用的數(shù)據(jù)共573條,為了讓模型擁有足夠多的數(shù)據(jù)量以便使預(yù)測(cè)效果更好,本研究采用交叉驗(yàn)證方法擴(kuò)充數(shù)據(jù)集。交叉驗(yàn)證也就是重復(fù)使用數(shù)據(jù)進(jìn)行切分組合,將其組合成為不同的訓(xùn)練集和測(cè)試集。在此基礎(chǔ)上可以得到多組不一樣的訓(xùn)練集和測(cè)試集。此外,在機(jī)器學(xué)習(xí)中,討論的數(shù)據(jù)量大小一般是指樣本量除以特征量的值,適中的數(shù)據(jù)量較適合使用樹(shù)結(jié)構(gòu)模型,若數(shù)據(jù)量過(guò)大,也容易造成過(guò)擬合現(xiàn)象。因此,綜合數(shù)據(jù)量與特征數(shù),本研究使用隨機(jī)森林進(jìn)行建模所需的數(shù)據(jù)量基本足夠。
本研究基于Python語(yǔ)言,在Anaconda環(huán)境中構(gòu)建隨機(jī)森林算法進(jìn)行實(shí)驗(yàn)。本實(shí)驗(yàn)對(duì)數(shù)據(jù)集進(jìn)行缺失值處理、one-hot處理以及數(shù)據(jù)歸一化等一系列數(shù)據(jù)預(yù)處理操作,得到更加干凈、可用性高的數(shù)據(jù)。為了分析各特征之間的相關(guān)度和對(duì)疾病產(chǎn)生的影響,選擇使用熱力圖展示來(lái)各個(gè)特征的相關(guān)度,經(jīng)過(guò)分析比較,該數(shù)據(jù)無(wú)冗余特征。
實(shí)驗(yàn)采用優(yōu)化的隨機(jī)森林算法對(duì)模型進(jìn)行訓(xùn)練,通過(guò)bootstrap重采樣技術(shù),抽取訓(xùn)練樣本,對(duì)選取特征進(jìn)行節(jié)點(diǎn)分裂,生成隨機(jī)森林。使用網(wǎng)格搜索算法對(duì)隨機(jī)森林配置最優(yōu)參數(shù),得到預(yù)測(cè)模型。建模流程如圖5所示。
圖5 隨機(jī)森林模型流程Fig.5 Random forest model process
為了進(jìn)一步驗(yàn)證網(wǎng)格優(yōu)化后隨機(jī)森林的有效性,將該模型測(cè)試結(jié)果與Logistic回歸、GBDT、決策樹(shù)(DT)進(jìn)行比較。
在醫(yī)學(xué)診斷中,評(píng)價(jià)分類(lèi)器的優(yōu)劣通常采用準(zhǔn)確率、召回率(靈敏度)和特異度等指標(biāo)。準(zhǔn)確率(accuracy)表示對(duì)于給定的測(cè)試數(shù)據(jù)集,正確分類(lèi)的樣本個(gè)數(shù)與總數(shù)之比[14];召回率(recall)表示預(yù)測(cè)為正例的樣本與實(shí)際為正例的樣本的比例。特異度(spcificity)表示預(yù)測(cè)也為負(fù)例的樣本與實(shí)際為負(fù)例的樣本的比例。以關(guān)注的類(lèi)通常為正類(lèi),其他類(lèi)為負(fù)類(lèi)[15]?;煜仃嚤硎痉诸?lèi)器在測(cè)試數(shù)據(jù)集上預(yù)測(cè)是否正確,如表3所示。
表3 混淆矩陣Table 3 Confusion matrix
其中,P為正類(lèi)樣本的數(shù)目,N為負(fù)類(lèi)樣本的數(shù)目。4個(gè)評(píng)價(jià)指標(biāo)的公式:
ROC曲線是由靈敏度(真陽(yáng)性)為縱坐標(biāo),特異性(假陽(yáng)性)為橫坐標(biāo)繪制的曲線,能夠反映不同分類(lèi)算法的性能。ROC曲線越靠近左上角,表明準(zhǔn)確度越高。ROC曲線下的面積稱(chēng)為AUC,也是衡量算法優(yōu)劣的性能指標(biāo),AUC值越大,算法效果越好[15]。
利用隨機(jī)森林算法,對(duì)21個(gè)特征與是否患心臟病進(jìn)行相關(guān)性分析,得到輸入特征的重要性,如圖6所示。圖6橫坐標(biāo)為21個(gè)特征屬性,其中,0:age,1:sex,2:trestbps,3:chol,4:fbs,5:restecg,6:thalach,7:exang,8:oldpeak,9:ca,10:cp_0,11:cp_1,12:cp_2,13:cp_3,14:slope_0,15:slope_1,16:slope_2,17:thal_0,18:thal_1,19:thal_2,20:thal_3。實(shí)驗(yàn)結(jié)果表明,thal_2對(duì)是否患心臟病影響最大,特征重要性最高。
圖6 隨機(jī)森林輸入特征重要性Fig.6 Random forest input feature importance
其中,特征6~9、10、19、20重要性排在前7位,這7個(gè)特征分別代表最高心率、運(yùn)動(dòng)是否誘發(fā)心絞痛、運(yùn)動(dòng)引起ST抑制、主要血管數(shù)、胸痛類(lèi)型、地中海貧血,根據(jù)醫(yī)學(xué)常識(shí)這7個(gè)特征可作為主要判斷參數(shù),患者在就醫(yī)時(shí)通過(guò)體檢,獲得特征數(shù)值可作為醫(yī)生診斷重要參考。這幾個(gè)重要特征不僅能夠預(yù)測(cè)是否患有心臟病,同時(shí)也給醫(yī)生診斷和患者就醫(yī)帶來(lái)參考意見(jiàn)。
分別將其與Logistic回歸、GBDT、決策樹(shù)(DT)進(jìn)行比較,驗(yàn)證優(yōu)化后隨機(jī)森林(RF)算法是否具有更好的效果,通過(guò)對(duì)其幾種算法的準(zhǔn)確率、召回率、AUC值進(jìn)行對(duì)比,發(fā)現(xiàn)本研究提出的方法結(jié)果優(yōu)于其他算法,實(shí)驗(yàn)結(jié)果如表4所示。
表4 不同算法結(jié)果比較Table 4 Comparison of results of different algorithms
從表4可以看出,隨機(jī)森林算法準(zhǔn)確率為0.832,較Logistic回歸提高了0.3%、較GBDT提高了1%、較決策樹(shù)(DT)提高了10.8%;隨機(jī)森林算法召回率為0.834,較Logistic回歸提高了0.9%、較GBDT提高了1.9%、較決策樹(shù)(DT)提高了10.5%。為了更清晰的對(duì)比各個(gè)算法的性能,更好的展示AUC值,對(duì)各種分類(lèi)算法進(jìn)行ROC曲線比較[16](圖7)。從圖7可以看出,RF算法的ROC曲線下的面積是最大的,即AUC值最大,值為0.965。
圖7 不同分類(lèi)算法的ROC曲線Fig.7 ROC curves of different classification algorithms
經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn),通過(guò)對(duì)隨機(jī)森林算法進(jìn)行網(wǎng)格搜索優(yōu)化,算法的準(zhǔn)確性得到了提升,泛化能力能到增強(qiáng),不同的調(diào)參數(shù)值得到的結(jié)果不同。表明隨機(jī)森林算法在心臟病預(yù)測(cè)方面的有效性和可行性??梢愿鶕?jù)算法預(yù)測(cè)結(jié)果對(duì)醫(yī)生進(jìn)行輔助診斷,給患者帶來(lái)就醫(yī)參考。對(duì)智慧醫(yī)療中疾病預(yù)測(cè)的進(jìn)步有現(xiàn)實(shí)意義。
本研究在UCI開(kāi)源心臟病數(shù)據(jù)集和克利夫蘭醫(yī)學(xué)中心數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),針對(duì)精度較低的缺點(diǎn),提出了基于網(wǎng)格搜索的優(yōu)化隨機(jī)森林算法的建模方法,用來(lái)預(yù)測(cè)心臟病。通過(guò)對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,對(duì)特征進(jìn)行分析,對(duì)超參數(shù)進(jìn)行調(diào)整,用隨機(jī)森林算法對(duì)數(shù)據(jù)分類(lèi)預(yù)測(cè),獲得了較好的效果。為了驗(yàn)證該算法的優(yōu)越性,將其與Logistic回歸、GBDT、決策樹(shù)(DT)等算法進(jìn)行比較,在準(zhǔn)確率、召回率、AUC值方面驗(yàn)證該算法優(yōu)于其他機(jī)器學(xué)習(xí)算法。由于該數(shù)據(jù)集的數(shù)據(jù)量較小,無(wú)法證明該算法適用于大數(shù)據(jù)集,下一步對(duì)大數(shù)據(jù)集進(jìn)行分類(lèi)預(yù)測(cè)的情況下,需要進(jìn)行特征選擇對(duì)算法進(jìn)行優(yōu)化。