孫鐵錚 于澤灝



摘要:本文選取國外醫(yī)療研究中心心臟病患者數(shù)據(jù)集為研究對象,在對數(shù)據(jù)進行虛擬變量變換操作的基礎上,探究相關致病因素與目標患者之間的聯(lián)系,通過引入Logistic回歸、KNN、SVM、樸素貝葉斯、決策樹、隨機森林六類機器學習算法對病例類別進行分類預測,以準確率與混淆矩陣作為輸出結(jié)果的評判標準,對其分類識別預測的能力做出對比分析。
關鍵詞:機器學習;多算法對比;心臟病預測
中圖分類號:TP3? ? ?文獻標識碼:A
文章編號:1009-3044(2021)26-0096-02
開放科學(資源服務)標識碼(OSID):
1 研究背景
心臟病為臨床上不具有傳染性的慢性疾病,致死率較高,傳統(tǒng)的醫(yī)療決策方法難以準確分析和診斷此類疾病。隨著大量臨床檢查、治療報告和電子病歷數(shù)據(jù)的產(chǎn)生,為信息技術介入醫(yī)療診斷和輔助醫(yī)療病理決策提供了數(shù)據(jù)依據(jù)。通過對大量的醫(yī)學數(shù)據(jù)進行有效的提取與加工,機器學習算法可以為疾病做出正確的診斷、預測疾病的概率或患者病例,結(jié)合相關領域的專家知識和平衡潛在的數(shù)據(jù)處理分析,以求達到更好的疾病診斷結(jié)果,提高疾病預防、診斷和研究現(xiàn)狀。
2 研究現(xiàn)狀
以計算機學科為研究背景的諸多學者提出了多種理論與技術手段用以提高心臟病預測的檢測水平。Subbalakshmi等人[1]以樸素貝葉斯分類器為核函數(shù),開發(fā)了一種支持決策的心臟病預測系統(tǒng)(DSHDPS),從歷史數(shù)據(jù)中提取隱藏知識,通過使用年齡、性別、血壓等醫(yī)療體征指標來預測患者患病的可能性。Amin等人[2]對關鍵特征進行提取并通過遺傳神經(jīng)網(wǎng)絡進行回歸分析。周孟然等[3]利用自適應人工蜂群算法對ELM算法隱含層的權值與偏置值進行優(yōu)化,通過對最優(yōu)特征子集的訓練提升了ELM算法在心臟病輔助診斷中的表現(xiàn)。劉宇,喬木[4]將聚類與XGBOOST算法相結(jié)合,通過K-means算法對數(shù)據(jù)進行特征區(qū)分并利用XGBOOST算法對心臟病進行預測分析。葉蘇婷等[5]利用決策樹算法構(gòu)建了心臟病數(shù)據(jù)集預警模型并編寫了用戶程序界面。
3 數(shù)據(jù)及可視化
本研究數(shù)據(jù)來源于克利夫蘭數(shù)據(jù)庫(Cleveland Clinic UCI)所構(gòu)建的開源心臟病例數(shù)據(jù)集。樣本數(shù)據(jù)共303條,包含13類影響因素指標與患病標簽量,其中年齡、血壓值、膽固醇含量、最快心率四項因素為連續(xù)型數(shù)值,其余為離散型數(shù)值變量。通過對不同數(shù)據(jù)類型的關系映射以及數(shù)據(jù)虛擬化操作,將其統(tǒng)一為相同量級的數(shù)據(jù)結(jié)構(gòu)為機器學習算法的訓練做準備。數(shù)據(jù)變量列表如表1所示。
圖1以年齡、靜息血壓、最大心率、膽固醇量、患病標簽構(gòu)建相關性矩陣圖,患病樣本年齡呈現(xiàn)正態(tài)分布狀態(tài),健康樣本年齡呈負偏態(tài)分布狀態(tài)。靜息血壓呈現(xiàn)正偏態(tài)分布趨勢,其中患病樣本靜息血壓尖峰狀態(tài)更加明顯。30-40歲年齡段中患病人數(shù)的分布情況多集中于峰值,其對應的血壓值均高于120mm,其眾數(shù)與50-60歲年齡段基本持平,表明對于30-40歲人群來說較高的靜息血壓值可作為重要的患病評判依據(jù)。健康樣本最大心率值呈正態(tài)分布,患病樣本則呈現(xiàn)負偏態(tài)分布。其表明以53歲為分界點,樣本年齡區(qū)間處于30-53歲的個體其最大心率值越高,患病趨勢越明顯,大部分的非患病個體其最大心率值均保持在160以下。而樣本年齡區(qū)間處于53-70歲的個體其最大心率值越低,患病趨勢越明顯,大部分非患病個體的最大心率要高于患病個體。由此可推斷以患病率為前提年齡與最高心率值呈反比關系。膽固醇值患病與非患病樣本均呈現(xiàn)正偏態(tài)分布且患病樣本尖峰程度仍明顯高于健康樣本?;疾≌吣懝檀紨?shù)值隨年齡變化不明顯,但整體患病群體表現(xiàn)為膽固醇值偏低。靜息血壓值越低且最大心率值越高患病概率越大,靜息血壓值越低且膽固醇值越低患病風險越大。當最大心率值越大且膽固醇含量較低時患病概率也會大大增加。
4 實驗過程與結(jié)果分析
本文選取邏輯回歸、K近鄰、支持向量機、樸素貝葉斯、決策樹、隨機森林,六種機器學習經(jīng)典算法對目標患者標簽進行分類預測,通過虛擬化操作統(tǒng)一數(shù)據(jù)量綱,以數(shù)據(jù)集80%的數(shù)據(jù)量作為各算法的訓練集,其余20%作為模型驗證集。選取分類預測準確度作為模型輸出表現(xiàn)的評價指標,并根據(jù)各算法驗證集表現(xiàn)情況建立混淆矩陣,對模型的實際分類預測能力進行評判,實驗流程如圖2所示。
其中邏輯回歸算法迭代訓練次數(shù)設為1000次,當訓練迭代進行到約500次時其損失函數(shù)可達到最小值,整體趨于收斂。對于K近鄰算法來說,當近鄰群數(shù)取為7時所對應的分類準確度最高,證明此時的分類預測效果最好。
以分類準確度作為評判依據(jù),在該數(shù)據(jù)集上K近鄰算法相較于其他算法具有最高的適用性與最佳表現(xiàn),其分類準確度達到90.16%,邏輯回歸、樸素貝葉斯以及隨機森林算法也具有較高的分類預測能力,其準確度分別可達到:85.25%、85.97%、85.25%。決策樹算法在所有模型中表現(xiàn)最差,其分類準確度僅為75.41%。對比結(jié)果如表2所示。
對于分類算法評估指標除準確度外還有召回率,精確度等。而這些指標均基于混淆矩陣進行構(gòu)建。矩陣每一列代表一個類的預測情況,每一行表示一個類的實際樣本情況。其中正例樣本數(shù)量記為P,負例樣本數(shù)量記為N,被正確預測的正例數(shù)量記為TP,負例樣本被預測呈正例樣本數(shù)量記為FP,正例樣本被預測成負例樣本數(shù)量記為FN,正確預測到的負例樣本數(shù)量記為TN。分類準確度,即正負樣本分別被正確分類的概率,其計算公式為:
[Accuracy=TP+TNP+N]? ? ? ? ? ? ? ? ? ? ? (1)
召回率,即正樣本被識別出的概率,計算公式為:
[Recall=TPP]? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)