馮航測, 孫潔, 張瑛琪, 張友坤
(1.華北理工大學電氣工程學院, 唐山 063210; 2.河北醫科大學第一醫院急診科, 石家莊 050031)
隨著人工智能技術及大數據的發展,在各個領域中出現了越來越多的人工智能設備及算法。醫學是一個在人工智能領域發展比較迅速的行業,各科技公司紛紛推出醫學人工智能產品,拓展了人工智能在醫學中的應用,“數字診療”“智慧醫療”等已經成為了醫學發展的新趨勢。目前,機器學習是最熱門的人工智能技術,各種預測算法在醫療大數據中得到了廣泛的應用,有利于對病癥進行診斷[1]、治療[2]與管理[3]工作。
中國每年有超過50萬人死于心臟驟停,位于世界榜首[4]。對急性心臟驟停患者進行有效的搶救變得尤為重要,若能將機器學習算法與心肺復蘇(cardiopulmonary resuscitation,CPR)診斷充分結合,對于輔助醫生進行心肺復蘇診斷工作具有重要的現實意義,可以有效提高心臟驟停患者的搶救效率。鄭萍等[5]系統地評價了機器學習應用于院外心臟驟停的預測效果,認為年齡,心率和患者性別是心肺復蘇結果較為重要的特征。龔海蓉等[6]提出了一種基于決策樹的院內心臟驟停患者早期預測模型,并采用十折交叉驗證的方式優化模型得到了更好的預測結果。Nanayakkara等[7]使用梯度提升樹(gradient boosting decision tree,GBDT),支持向量機,隨機森林(random forest,RF),構建了CPR風險預測模型,認為與現有的疾病嚴重程度評分和統計學方法邏輯回歸相比,機器學習方法顯著增強了對心臟驟停后死亡率的預測辨別。Al-Dury等[8]使用數據驅動結合RF算法對院外心臟驟停院前評估的16個特征進行了相對重要性分析,總結出初始心率,年齡,早期心肺復蘇,心臟驟停位置和救護車到達時間5個特征對心臟驟停最終結果影響意義重大,并且否定了性別這個在傳統思維上十分重要的特征。Wu 等[9]針對166例急性冠脈綜合征患者的心臟驟停,構建了8種機器學習算法得出預測結果并相互比較,得到了極端梯度提升(EXtreme gradient boosting,XGBoost)為效果最優的模型。雖然有諸多學者使用機器學習方法對CPR風險因素展開了預測,但是上述研究大多是傾向于得到更好的預測結果、分析風險因素以及判斷特征重要性,并未針對某一具體病例給出特定的診療方案。
在機器學習模型預測與特征選擇的基礎上,融合了CPR診療標準創建了算法尋優的參數空間,通過CPR輔助診療算法得出了最佳診療方案。并與未加入CPR診療標準的算法對比,驗證加入CPR診療標準后得出的診療方案更貼合臨床實際。
本文所用數據主要來自河北醫科大學第一院急診科、河北省急診急救創新中心的“院內心臟停止與心肺復蘇”的數字信息系統。使用以Utstein模式[10]為基礎的心肺復蘇注冊研究登記表,具體內容包括:醫院等級和年急診量、患者一般情況、發生心臟驟停和CPR時情況、院內自主循環恢復、住院到出院、出院隨訪等。
整理完畢的數據含有1 201個樣本和29個特征。將缺失值大于50%的特征剔除,包括碳酸氫鈉用量、碳酸氫鈉首次使用時間、頭部X光掃描和頭部核磁共振。年齡與腎上腺素使用劑量有少量數據缺失,分別使用眾數與平均數進行填補。將兩個特征進行耦合,用CPR開始時間與使用腎上腺素時間做差,得到首次使用腎上腺素的時間這個特征,對預測結果有重要的影響。之后將CPR停止原因(復蘇成功率>20、復蘇失敗)作為標簽,用LabelEncoder進行編碼(復蘇成功率>20為0、復蘇失敗為1)。數據處理完畢之后納入824個樣本,24個特征和1個標簽。
RF[11]是一種經典的裝袋式集成算法,它可以使分類器總數以1/2為邊界,執行少數服從多數的投票原則從而達到遠超一棵樹的預測效果,具有良好的泛化能力以及不錯的運行速度。
GBDT[12]是一種基于前向分布算法的boosting算法,新分類器會在舊分類器損失函數梯度下降的地方被創建,每個新的分類器會在上一代分類器殘差基礎上進行訓練。將多個弱分類器進行線性組合,并且擬合殘差,得到的優于單棵決策樹的算法。
XGBoost[13]是GBDT算法的強化版本,同時具備線性規模求解器和樹學習兩種算法。它致力于讓提升樹突破極限,做到比其他提升類的集成算法響應更加快速,訓練時間短,精準度高。
模型解釋算法(shapley additive explanation,SHAP)[14]不僅可以反映特征的重要程度,還可以展示特征對模型輸出的影響。與傳統的特征重要性方法比較,Shapley值可以展現特征在取值范圍內各個區域對模型的貢獻程度。
本文基模型采用3種以樹模型(RF、GBDT、XGBoost)為基礎的算法,采用加權投票法(Voting)對其進行融合,再根據Shapley值對特征進行過濾,在保證模型預測準確率的基礎上留下最重要的一部分特征以此減少后續融合算法尋優所需的時間。
本研究采用基于混淆矩陣的評估指標。真正例(TP)、真反例(TN)、假正例(FP)和假反例(FN)分別代表正例中分類正確和錯誤、負例中分類正確和錯誤的個數。
準確率A(accuracy)代表模型分類正確的樣本占總樣本數的比率,是衡量模型性能的重要標準,即

(1)
精度P(precision)又叫做查準率,表示被模型正確預測為正例的樣本數占所有被預測預測為正例的樣本數的比例,即

(2)
召回率R(recall)又叫做查全率,表示被正確預測為正例的樣本數占全體真實正例樣本數的比例,即

(3)
F1-score可以將精度與召回率調和取平衡值,即

(4)
CPR診療有國內國際上通用的診療標準,CPR相關操作、藥物的使用都有固定的流程。首先要確定周圍環境安全,然后評價患者生命體征,擺正患者姿態后持續予以胸外心臟按壓并同時進行腎上腺素的靜脈推注,患者頸動脈出現搏動則證明搶救成功[15]。
本研究通過model.predict_proba(data)返回機器學習模型預測結果在生存與死亡下的概率,并在符合CPR診療標準的參數空間中循環尋優來得到最佳診療方案。以此來實現機器學習模型與CPR診療標準的融合。在臨床環境中因為其環境復雜多變,存在患者無脈搏,但家屬仍然要求繼續進行胸外按壓或者繼續使用腎上腺素等情況,故CPR總時間、腎上腺素首次使用時間、腎上腺素用量的取值范圍通過參考特征在數據集中的分布取四分位值與臨床經驗來限定。數據分布情況如表1所示。

表1 數據分布情況Table 1 Data distribution
本研究設定在CPR開始后進行靜脈推注腎上腺素,并在CPR停止時同時停止使用腎上腺素。心肺復蘇救治的時序圖如圖1所示。

CPR_start為心肺復蘇開始時間;At_start為腎上腺素開始時間;Finish為心肺復蘇結束;TCPR為心肺復蘇總時間;TF為心肺復蘇開始至首次使用腎上腺素的時間;TAt為腎上腺素使用時間圖1 CPR救治時序圖Fig.1 Time sequence diagram of CPR
融合算法根據后續實驗篩選特征的結果,納入了以下CPR診療標準,并創建參數空間。
(1)假定患者只在CPR持續期間使用腎上腺素。
(2)腎上腺素使用方式為每3 min靜脈推注1 mg。
(3)根據數據分布情況限制腎上腺素首次使用時間小于10.8 min、心肺復蘇時間小于76 min、腎上腺素用量小于19.5 mg。
算法需要依賴模型在參數空間中進行尋優,其數學模型為
算法整體流程圖如圖2所示。首先將初始數據集分別輸入到RF、XGBoost、GDBT中進行訓練并對其進行投票融合。接著使用Shapley值進行特征過濾,留下最重要的特征,重新訓練模型。其次將模型引入參數空間,在參數空間下進行尋優,最終得到最佳診療方案。

圖2 整體流程圖Fig.2 Overall flow chart
仿真結果得到了6個對CPR結果影響最大的特征,而在實際臨床應用中,每個特征相互之間也都有著密切的依賴關系。各特征在SHAP特征密度散點圖下的表現如圖3所示。

圖3 SHAP特征密度散點圖Fig.3 Scatterplot of SHAP feature density
腎上腺素總劑量與CPR總時間相關,心肺復蘇時間越長,腎上腺素使用劑量越多,復蘇結果往往越差。在各個年齡層,特殊病史都與復蘇結果有一定的相關性。心臟驟停的原因分為心源性,非心源性,原因不明三類,而只有心源性因素與復蘇結果顯著相關。在實際臨床操作中,對于初期心律不能除顫的心臟驟停在首次除顫失敗后立即應用腎上腺素,均可提高復蘇成功率。美國心臟學會認為最初幾分鐘內給予CPR,則患者的存活機會可提高4倍,在4 min內進行CPR的患者生存率可達43%~53%,超過10 min的患者死亡率極高。
心臟驟停地點對CPR結果有著重要的影響。分為院外與院內兩種,若患者在醫院內治療過程中發生了心臟驟停,醫護人員可以及時進行治療;若在院外發生心臟驟停可能會因為救護車往返途中損失的時間而耽誤了最佳的治療期,而降低了復蘇成功率。
將本文模型預測效果與RF、GBDT、XGBoost對比。各模型在評價指標下的得分如表2所示。

表2 算法對比Table 2 Algorithm comparison
由仿真結果可見,本文模型性能相比基礎模型在各個性能指標上都有所提升,準確率、精度、召回率和F1-score分別達到了0.88、0.92、0.94和0.93。
選取一名年齡為20歲、無確切病史、在急診科發生心臟驟停的男性患者。在臨床實際操作中,對其進行了40 min的心肺復蘇,在開始心肺復蘇的2 min后對其間斷給予了10 mg的腎上腺素最終患者死亡。
將其數據輸入到融合之前和融合之后的模型,將融入CPR救治標準后的模型在參數空間的表現與未融入的模型在原參數空間的表現進行對比如圖4、圖5所示:可以看出融合CPR診療標準之前的算法的參數空間存在與臨床實際不符的參數,如存在CPR總時間很小但腎上腺素首次使用時間與腎上腺素用量很大的區域。融合CPR診療標準之后的參數空間其參數量大幅減少但更符合臨床實際。

圖4 原參數空間Fig.4 Original parameter space

圖5 融合診療標準后的參數空間Fig.5 Parameter space after fusion of diagnosis and treatment criteria
融合后和融合前的算法得出的最佳診療建議如表3所示。

表3 融合前后結果對比Table 3 Comparison of results before and after fusion
可以看出融合前的算法對該患者的診療建議在CPR開始的第三分鐘開始使用腎上腺素,在開始CPR的第六分鐘已停止使用腎上腺素但仍持續進行了22 min的CPR其復蘇成功率也與臨床經驗不符。融合之后的算法進行了6 min CPR,在CPR開始的第三分鐘開始使用腎上腺素,CPR結束時同時停止使用腎上腺素。可以看出融合之后的算法更符合臨床實際。
本研究融合3種性能較好的機器學習模型并根據Shapley值篩選出了CPR總時間,腎上腺素首次使用時間、腎上腺素用量、心臟驟停地點、特殊病史、年齡這6個重要特征。在CPR診療標準下創建參數空間進行尋優,最終得到針對心肺復蘇總時間,腎上腺素首次使用時間以及腎上腺素用量的具體診療方案,對于醫護人員的輔助診斷工作具有重要的應用意義。機器學習模型需要大量數據支撐,由于數據樣本量有限,本研究存在一定的局限性。增加多中心研究,提高心肺復蘇結構化病歷入組數據登記質量,納入更多的病歷數據,進一步提高模型性能,是本研究今后繼續探索的方向。納入的心肺復蘇診療標準也比較有限,在今后的研究中還應與更多的專家學者一起探討如何構建更貼合臨床的數學模型。
綜上所述本研究構建的融合算法能夠給出具體的CPR診療方案,對臨床診療具有輔助效果,在機器學習與醫學融合的方向上具有創新性。但進一步的研究還需繼續擴大CPR樣本集,并與更多的專家學者一起探討關于診療標準與機器學習更貼合的融合方法。