姚 妮,高政源,王 強,朱付保
(鄭州輕工業大學 計算機與通信工程學院,河南 鄭州 450000)
隨著當今社會的飛速發展,人們生活水平不斷提高,生活方式逐漸改變,心血管疾病數量也不斷增加。根據世界衛生組織的統計數據,心血管疾病已逐漸成為影響人們身體健康的“頭號殺手”,而其中的冠心病更是倍受人們關注。世界衛生組織將冠心病分為5大類[1],分別是心絞痛、無癥狀心肌缺血(隱匿性冠心病)、缺血性心力衰竭(缺血性心臟病)、心機梗死和猝死。
在冠心病的診斷過程中,不僅需要病人的基本信息,還需要病人的家族病史、血壓、臨床癥狀、心肌灌注顯影圖等大量復雜的臨床變量。由于數據量龐大,人工診斷操作對于心臟科醫生的水平要求非常高,有時甚至需要多名專家聯合會診,也為冠心病多變量相互作用的研究提供了新的機遇。
在當前大數據的挖掘處理過程中,機器學習算法[2]發揮著重要的作用,其中邏輯回歸是一種廣義的線性回歸模型,決策樹是一種自上而下的樹形分類結構,隨機森林是利用多棵決策樹形成的集成分類器。文章首先對通過心肌灌注顯像(Myocardial Perfusion Imaging,MPI)所得到的患者心臟參數及醫生診斷的臨床數據進行篩選、填充和離散化,形成數據集,然后通過信息增益特征評估方法,按特征對于目標變量“雙源CT積分”的重要程度進行排序,再利用機器學習中的邏輯回歸、決策樹、隨機森林3種機器學習算法,使用最優的特征量構建分類識別模型,并使用測試集中的測試數據進行預測性能評估,根據評估結果形成最優識別模型。
懷卡托智能分析環境(Waikato Environment for Knowledge Analysis,WEKA)[4]是一款基于Java的開源機器學習軟件,不僅包括對數據預處理、分類、回歸、聚類、關聯規則分析的函數庫,而且是個公開、免費、非商業化的數據挖掘工作平臺。
信息增益(Information Gain)[5]是一種常用的特征選擇方法,依據各個特征,根據整個分類系統帶來信息量的多少來顯示特征的重要性。這個信息量即特征重要性的直觀體現就是信息熵,簡稱熵,其具體的計算過程如式(1)所示:

如果有變量X,其存在的類別數有n種,且每一種類別取到的概率值為Pi,那么X的熵就定義為:
使用信息增益的方法,可以對特征對于整個分類系統的貢獻做出排序,并針對不同的算法逐個刪除排名最后的特征屬性,觀察模型準確率的變化,并進行記錄,以得到使相應算法準確率最高的特征序列。
文章使用信息增益算法對患者特征重要性進行排序,使用邏輯回歸、決策樹、隨機森林3種算法對診斷模型進行對比建模。
1.3.1 邏輯回歸
邏輯回歸[6]是一種廣義的線性回歸分析模型,常用于大量數據的挖掘、復雜疾病的診斷以及股價預測、經濟走勢等方面。邏輯回歸算法的基本原理:針對某些分類問題或者是回歸問題來建立合適的代價函數,通過優化的方法迭代求解得出最優的模型參數,最后對模型的好壞進行驗證操作。
1.3.2 決策樹
決策樹[7]是用來對數據集實例進行分類的一種樹型結構,從數據的特征(或屬性)出發,以特征為基礎,對不同類別進行劃分。決策樹算法規則可以看作為if-then規則的集合,同時也可以認為是定義在特征空間與類空間上的條件概率分布。決策樹算法學習的本質就是根據已有的訓練數據集總結、歸納出一組較好的分類規則。
1.3.3 隨機森林
隨機森林[8]是指利用多棵樹對數據集樣本進行訓練和預測的一種分類器,是一個包含多個決策樹的分類器,使用機器學習中常見的bagging思想,使用組成森林的每棵數的輸出類別的投票結果決定該分類器的輸出類別。
選取某醫院完整冠心病患者數據621例,其中,訓練數據集521例,測試集100例,測試集與訓練集獨立同分布。所有研究對象資料完整,包含MPI[9]參數左心腔短暫性缺血性擴張(Transient Ischemic Dilation,TID)、肺/心放射性比值(Lung/Heart Ratio,LHR)、左心室負荷總積分(Summed Stress Score,SSS)等共17個,醫生臨床診斷信息性別(Gender)、年齡(Age)、高血壓(Hypertension)、緩解方式(Mitigation mode)等共19個。
經過在醫生指導下的篩選、填充及離散化處理,數據集的分布狀況如表1所示。

表1 數據統計分布 例 % x±s
采用信息增益對數據進行特征排序,再選擇針對不同的算法逐個刪除排名最后的特征屬性,觀察模型準確率的變化,以選擇適應算法的最優特征數量。
邏輯回歸算法測試未經過特征選擇的模型準確率如圖1所示,測試結果為74.09%。采用根據特征選擇結果逐一刪除屬性的方式,逐一測試模型準確率并記錄。實驗初始,隨著特征選擇排名靠后的屬性刪除的個數的增加,模型準確率也逐漸上升,當模型準確率達到一定限度后,再次刪除時,準確率又會逐漸下降,在刪除“峰值心率”屬性、保留了17個特征后,模型的準確率達到了77.74%。相比未經過特征選擇的數據集來說,模型準確率提高了約3.65%。

圖1 邏輯回歸算法模型刪除屬性準確率折線圖
決策樹算法測試未經過特征選擇的模型準確率如圖2所示,測試結果為64.88%,采用根據特征選擇結果逐一刪除屬性的方式,逐一測試模型準確率并記錄。初步按照特征排序結果進行屬性刪除時,隨著特征選擇排名靠后的屬性刪除個數的逐漸增加,模型準確率也先隨之上升,達到峰值后開始下降,在刪除“靜息脈沖寬度”屬性、保留14個特征時,應用于決策樹算法的模型準確率達到峰值77.74%,模型準確率相對沒有做特征選擇之前提高了12.86%。

圖2 決策樹算法模型依次刪除屬性準確率折線圖
隨機森林算法測試未經過特征選擇的模型準確率如圖3所示,測試結果為75.23%,采用根據特征選擇結果逐一刪除屬性的方式,逐一測試模型準確率并記錄。初步按照特征排序結果進行屬性刪除時,隨著特征選擇排名靠后的屬性刪除個數的逐漸增加,模型準確率在震蕩過程中逐步上升,在刪除“家族史”屬性、保留25個特征時,應用于該算法的模型準確率達到峰值77.16%,模型準確率相對沒有做特征選擇之前提高了1.92%左右。

圖3 隨機森林算法模型依次刪除屬性模型準確率折線圖
通過對3種算法特征選擇前后的模型準確率對比,如圖4所示,特征選擇前后的模型準確率均有所上升,其中決策樹算法的特征選擇成效最為明顯。但3種算法產生的預測模型的模型準確率相差不大,為選取最優的分類算法,先在訓練集上使用不用模型及其相應篩選出的特征進行訓練,再通過測試集來測試分類結果。

圖4 三種算法對特征選擇前后的數據構建模型的準確率對比
對于邏輯回歸算法,模型準確率達到最大時保留的特征為性別、左心腔短暫性缺血性擴張、肺/心放射性比值、左心室負荷總積分、左心室靜息總積分、靜息脈沖寬度、左心室靜息嚴重度計分、左心室靜息收縮末期容積、程度峰值、癥狀、部位、緩解方式、身高、體重、運動實驗時長、運動實驗等級、運動實驗結果,基于上述特征,采用邏輯回歸算法建模,并對預先處理好的測試集的“雙源CT檢查結果”進行預測,該模型預測正確的實例個數為65,預測錯誤的實例個數為35,計算得到該算法模型對測試集預測準確率為65%。
對于決策樹算法,模型準確率達到最大時保留的特征為性別、肺/心放射性比值、左心室負荷總積分、左心室靜息總積分、左心室靜息收縮末期容積、程度谷值、癥狀、緩解方式、體重、運動實驗時長、運動實驗等級、運動實驗結果、心肌血流灌注信息、冠狀動脈旁路移植術,基于上述特征,采用決策樹算法建模,并對預先處理好的測試集的“雙源CT檢查結果”進行預測,該模型預測正確的實例個數為72,預測錯誤的實例個數為28,計算得到該算法模型對測試集預測準確率為72%。
對于隨機森林算法,模型準確率達到最大時保留的特征為性別、左心腔短暫性缺血性擴張、肺/心放射性比值、左心室負荷總積分、左心室靜息總積分、靜息脈沖寬度、左心室靜息舒張末期容積、左心室靜息收縮末期容積、左心室靜息射血分數、程度峰值、灌注缺陷峰值、程度谷值、左心室負荷射血分數、吸煙、飲酒、癥狀部位、誘因、緩解方式、身高、體重、運動實驗時長、運動實驗等級、運動實驗結果、心肌血流灌注信息、冠狀動脈旁路移植術,基于上述特征,采用隨機森林算法建模,并對預先處理好的測試集的“雙源CT檢查結果”進行預測,該模型預測正確的實例個數為62,預測錯誤的實例個數為38,計算得到該算法模型對測試集結果預測準確率為62%[9-10]。
當前的研究表明,邏輯回歸算法、決策樹算法、隨機森林算法可以用來預測冠心病的風險評估。本研究的創新點源在于使用“雙源CT”積分作為分級標準及預測變量,并且在特征上結合了MPI的心肌灌注參數及臨床診斷指標,能夠更好地幫助心血管醫生更為高效地對冠心病患者進行診斷。
本研究中的3個模型通過信息增益選取最適應其算法的特征,其中特征選擇對決策樹算法構建模型準確率影響最大,利用決策樹算法構建的模型在數據集進行特征篩選后的準確率提升了12.86%左右,而對隨機森林算法構建模型準確率影響最小,利用隨機森林算法構建的模型在數據集進行特征篩選后的準確率僅提升了1.92%。進行特征選擇后3種算法構建模型準確率相差不大,最終構建模型準確率達到最高的算法為邏輯回歸算法和決策樹算法,模型準確率達到了77.74%。
通過上述3種算法依次對521個訓練集實例的訓練結果對比以及對100個測試集實例的預測結果對比,可以發現,針對該冠心病數據集,用上述3種算法構建預測模型時,所訓練出來的模型在準確率最高時相差并不是很大,基本上都維持在77%~78%,準確率最高的是邏輯回歸算法和決策樹算法訓練的冠心病預測模型,兩者的準確率都達到了77.74%。而在對測試集進行預測時,3種算法訓練出來的模型所預測的結果有較大差異,隨機森林算法訓練出的模型對100個測試集實例的預測準確率是三者中最低的,為62%,而決策樹算法訓練出的模型對相同數目的測試集實例的預測準確率是3種算法中最高的,為72%。因此得出結論,在該類冠心病數據集上,決策樹算法訓練出的模型最適合用于該冠心病數據集“雙源CT”結果的預測。