王穎晶 鄭 濤 陳珊黎 邵維君 韓 剛 丁粉華
(上海交通大學醫學院附屬仁濟醫院信息中心 上海 200127)
目前我國約有2.9 億心血管病患者,其中心肌梗死患者數量約在250萬人左右。心肌梗死作為一種臨床常見的危急重癥,近年來死亡率不斷攀升[1-2],加強心血管病防控刻不容緩。心肌梗死疾病發生發展過程緩慢、影響因素較復雜,疾病早期預防及干預需要對發病危險因素進行定位評估,進而針對不同個體風險等級制定相應綜合治療或管理方案,以實現早期預防心肌梗死事件的目標。目前國內有少數研究關注急性心肌梗死(Acute Myocardial Infarction,AMI)患者的危險因素分布情況,但缺乏大規模、前瞻性的臨床研究以提供詳實數據[2]。隨著人工智能、機器學習、數據挖掘等信息技術發展,醫學數據挖掘和臨床科研工作加速開展。臨床大量結構化及半結構化數據為人工智能機器學習相關算法研究提供支撐。機器學習是人工智能領域的重要分支,通過將不同領域數據進行特征提取并自動學習,使模型不斷適應數據特征從而提高性能[3]。機器學習逐漸與醫學領域相結合,例如醫學圖像處理的診斷識別技術。利用醫療大數據及機器學習技術進行疾病研究,深入醫療決策各環節從而為臨床醫護人員提供協助將是現代醫學探索的方向之一[4]。
利用機器學習建立心肌梗死疾病特征自動識別模型,使用真實臨床數據對多種算法模型進行準確性和性能驗證,為心肌梗死疾病危險因素挖掘提供有效機器學習方法,通過特征挖掘找出關鍵和主要致病因素,為醫生提供定性或定量輔助診斷意見。
利用心內科患者數據建立機器學習模型,判別和比較各種常見機器學習模型性能并得出性能最佳模型用于特征對應,進而篩選出與心肌梗死相關的變量因素。
搜集2015年12月1日-2020年12月31日期間上海仁濟醫院心內科患者數據作為研究對象,從病案出院診斷中篩選出診斷為心肌梗死的患者,將患者分為心肌梗死組和對照組,利用患者歷史診療數據進行回顧性研究。預測變量包括患者基本信息、生命體征、肝功能、腎功能、血常規、尿常規以及凝血功能等生化檢查檢驗診療數據。初步清洗剔除缺失比例較高的指標后篩選得到123個可納入模型的特征變量。
本研究從病案出院診斷中篩選診斷為心肌梗死的患者作為實驗組,隨機抽取其余數據作為對照組。首先對數據進行均衡性處理,從對照組樣本中采用下采樣方式抽取樣本,得到2:3比例的心肌梗死組和對照組數據集。將數據集劃分為訓練集和測試集分別訓練模型和評估模型性能。訓練集和測試集以7:3比例從數據集中隨機劃分。最終得到訓練集數據量為557,包括223位心肌梗死患者和334位對照組患者,得到測試集數據量為240,包括96位心肌梗死患者和144位對照組患者。
標準化處理是數據挖掘的基礎工作,不同特征具有不同量綱和量綱單位,這一情況會影響數據分析結果。為了消除特征之間的量綱影響,需要進行數據標準化處理以解決數據特征之間的可比性問題。原始數據經過標準化處理后,各指標處于同一數量級從而適合進行綜合評價。采用離差標準化方式將連續性特征變量歸一化到0~1之間,對訓練集和測試集同時進行以下處理:借助正則表達式抽取某一指標信息,轉化為數值變量。對部分數值變量進行分層處理,轉化為分類變量。例如將患者檢查結果轉化為正常檢查結果與不正常檢查結果。將字符類型變量轉換為數值變量,方便后續處理。統計建模所需特征和樣本缺失情況,剔除缺失比例達到60%及以上的特征,以及缺失比例超過40%的樣本。類別性和連續型特征分別采用眾數和均值填充方法進行填補。利用Pearson相關系數判斷多重共線性。計算兩兩特征之間的相關系數,相關系數絕對值大于0.75的變量之間存在較強共線性,剔除其中1個特征。最后進行數據歸一化處理。
采用邏輯回歸(Logistic Regression,LR),決策樹(Decision Tree,DT),隨機森林(Random Forest,RF),自適應增強(Adaptive Boosting,AdaBoost),梯度提升決策樹(Gradient Boosting Decision Tree,GBDT),極限梯度提升(Extreme Gradient Boosting,XGBoost)6種機器學習算法訓練模型[5]。
基本分類方法,由節點和有向邊組成。決策樹包含1個根節點、1個內部節點和1個葉節點。其中內部節點代表要素,葉節點代表類。首先根據特征信息增益對特征進行過濾;然后根據特征值將每個節點劃分為子節點。根節點包含樣本集。從根節點到每個葉節點的路徑對應1個決策序列。
分類方法,主要用于兩分類問題(即輸出只有兩種,分別代表兩個類別)回歸模型中。y是一個定性變量,例如y=0或1,Logistic方法主要應用于研究某些事件發生概率。邏輯回歸過程如下:面對回歸或者分類問題建立代價函數,通過優化方法迭代求解出最優模型參數,然后測試驗證該求解模型。
基于非線性樹的集成學習模型。獲取隨機森林模型后,當新樣本進入時判斷隨機森林中每個決策樹。對于分類問題使用投票方法,最大投票數是最終模型輸出。
集成學習算法。在迭代過程中該算法在訓練集上生成新的學習器,以預測所有樣本并評估每個樣本重要性。區分樣本越困難迭代過程中給定的權重越高。當錯誤率足夠小或達到一定數量迭代時將終止整個迭代過程。
基于決策樹的綜合學習模型,采用可加模型方法。在迭代訓練過程中模型基于最后一次迭代的殘差生成弱分類器,通過不斷減少訓練過程中產生的殘差達到數據分類目的。
在GBDT基礎上對boosting算法進行改進而得到的學習模型。內部決策樹使用回歸樹。回歸樹的分裂結點對于平方損失函數,擬合的就是殘差;對于一般損失函數(梯度下降),擬合的就是殘差近似值,分裂結點劃分時枚舉所有特征的值,選取劃分點。最后預測結果是每棵樹的預測結果相加。
對同一組訓練和測試數據分別使用6種方法進行建模和評估,計算模型在訓練集和測試集上的精確率(Precision)、召回率(Recall)、綜合評價指標(F1 score)、觀測者操作特性曲線(Receiver Operating Characteristic,ROC)及曲線下面積(Area Under the Curve,AUC)等指標。計算公式如下:

其中TP為真陽性率(True Positive),FP為假陽性率(False Positive),FN 為假陰性率(False Negative)。
不同特征對模型預測的影響不同,影響大小被稱為特征重要性。不同模型計算方法略有不同,均遵循以下原則:誰對模型預測結果準確度貢獻越大誰的重要性越高。特征重要性主要通過模型返回的特征系數,或者在建模過程中特征被使用次數、帶來的信息增益計算得到。
用于反映患者數據在訓練集和測試集上各特征集間的組間水平,比較組間統計學顯著性差異。將訓練集和測試集劃分為心肌梗死組和對照組,分別統計心肌梗死組和對照組的均值和標準差,對兩組特征變量進行統計學顯著性檢驗得到P值,見表1。

表1 基線特征

續表1
分別計算6種方法在驗證集上的Precision、Recall、F1和AUC值,見表2。其中 XGBoost模型對應的ROC曲線,見圖1。XGBoost模型對應的箱線圖,見圖2。

圖1 XGBoost模型的ROC曲線

表2 6種模型指標
4.3.1 XGBoost性能最佳 利用訓練好的6個模型分別對驗證集進行特征重要性分析并對結果按降序排列,如XGBoost模型的特征重要性排序,見圖3。在利用機器學習模型進行心肌梗死特征分析實驗中,XGBoost的Precision、Recall、F1、AUC值分別達到0.82、0.82、0.82、0.91,均為各方法中的最高值,可見XGBoost在本研究中性能最佳。

圖3 XGBoost模型特征重要性排序
4.3.2 心肌梗死發病影響因素分析 通過對比觀察6種方法的特征重要性可以與心肌梗死關鍵和致病因素關聯起來。載脂蛋白A1、激酶同工酶、空腹血糖、纖維蛋白原、膽固醇等因素均排在前列且占據重要位置。在性能最佳的XGBoost方法預測結果中,空腹血糖、總膽固醇、激酶同工酶、尿酸堿度等因素均排在前列,與臨床判斷血糖、血脂、心肌酶譜和心功能指標等相關指標與心肌梗死具有重要相關性相符合[1-2]。同時研究結果表明性別、年齡等因素對心肌梗死發病具有重要影響。
4.3.3 研究優勢與局限 優勢在于使用大量真實心肌梗死患者臨床數據,其中包含臨床評估和生化變量數據。模型具有從機器學習算法和常規回歸中得出的易于使用的臨床數據。同時研究存在一定局限性。首先,上述數據均來自同一機構,缺乏外部驗證,在研究中可能會出現潛在偏見,需要進行進一步的前瞻性研究和其他人群研究。其次,研究未包括社會經濟狀況、職業、飲食和體育活動方面數據,此類數據同樣可能是心肌梗死的危險因素。
通過機器學習模型建立邏輯回歸、決策樹、隨機森林、AdaBoost、GBDT、XGBoost 6種心肌梗死疾病特征自動識別模型,挖掘心肌梗死關鍵和主要致病因素,為疾病發病可能性提供數據支持。其中XGBoost方法的AUC值最高,達到0.914 8。在該方法預測中,空腹血糖、總膽固醇、激酶同工酶、尿酸堿度等因素占據前列,與臨床經驗相符合。可見利用機器學習算法建立特征自動識別模型對心肌梗死致病因素重要性進行研究具有可行性。