機器學習能診斷病情,還能預測患者出院後的情況?

機器學習能診斷病情,還能預測患者出院後的情況?

來自專欄 我是程序員

摘要:機器學習正逐漸改變著各行各業,醫療行業也處於變革之中。想不到機器學習不光能診斷患者病情,還能預測患者出院後的情況呢,這個研究方向有點意思,感興趣的讀者快來瞅瞅吧!

隨著數據量以及計算機性能的不斷提升,機器學習技術正逐漸滲透於各行各業中。計算機視覺、自然語言處理、機器人等領域基本上已經被機器學習演算法壟斷,正逐步向教育、銀行、醫療等傳統行業擴張。關於機器學習如何改變傳統教育模式,可以參見博主的這篇文章《使用AR、AI以及大數據改革教育體系——為每位學生打造自己的私人定製學習路線》。銀行業目前對人工智慧炒作成分居多,大多數銀行持觀望態度,短時間不會利用人工智慧取代大部分銀行職員工作。醫療行業應用AI也比較火熱,比如利用AI檢測癌症、驅動新葯發現引擎、基因檢測等。而膿毒症(Sepsis)是一種醫療行業常見的併發症,本文將使用機器學習預測膿毒症患者的出院後情況。

膿毒症是指因感染因素引起的全身炎症反應綜合征,嚴重時可導致器官功能障礙或循環障礙,是嚴重創傷、燒傷、休克、感染和外科大手術等常見的併發症,因為其癥狀和發燒、低血壓等其它常見疾病非常相像,很難被早期發現,如果不及時治療,可進一步發展為感染性休克,其住院死亡率超過40%,相當危險。

了解膿毒症患者的最高死亡風險對臨床醫生的優先護理是有幫助的。團隊與Geisinger健康護理系統的研究人員合作,使用歷史電子健康記錄數據(EHR)建立模型來預測膿毒症住院患者在住院期間或出院後90天的全因死亡率(all-cause mortality)。該模型可以指導醫療團隊為那些預測為高概率死亡的患者進行仔細監測,並採取有效預防措施。

數據科學環境

使用IBM數據科學經驗為數據科學家提供編程環境(三種流行編程語言:Python、Scala和R,兩種編程分析工具:Jupyter和Zeppelin),此外,IBM數據科學經驗通過業務應用程序實時或批量計分來操作模型,為連續模型檢測和再訓練集成反饋迴路。

收集和預處理數據

Geisinger在2006年~2016年獲得了超過10000名確診為敗血症的患者數據,這些數據包含人口統計學、住院和門診、外科手術、醫療史、藥物、醫院單位之間轉移以及實驗室結果等記錄。

對於每名患者,選擇最近的醫院和最相關的住院數據,包括住院期間具體的信息,比如手術類型、培養位置(細菌)等。此外,還導出了入院前的總結信息,比如住院前30天的外科手術次數等,沒有使用出院後的數據。圖1給出了這些基於時間數據的決策:

圖1 基於時間序列數據做預測

合併所提供的數據集後,得到的數據集包括10599行,其中每名患者有199個屬性(特徵)。

預測模型

在數據清洗和特徵選擇完成後,將任務目標定義為二分類問題:預測膿毒症患者出院後90天內是否死亡。

選擇的演算法為梯度提升樹(Gradient boosted trees, GBT),並通過XGBoost數據包實現。由於愛演算法的良好的執行速度和魯棒性,一直是機器學習競賽中流行使用的演算法。使用XGBoots另一個動機是微調超參數以提升模型性能的能力。在訓練數據中,使用十折交叉驗證(ten-fold cross-validation)和網格搜索(GridSearchCV)以迭代的方式選擇參數,以最大化ROC曲線下的面積(AUC)。IBM數據科學經驗中的一個實例在此可見。

將數據集分為訓練集和測試集,其中訓練集佔60%,測試集佔40%。使用訓練集訓練模型,將訓練好的模型參數應用於測試集上,模型性能如圖2所示:

圖2 XGBoost模型的性能

圖2中的一些數據是性能評價指標,比如AUC得分,這個數字越接近於1,則表示模型的能力越能正確的分類正預測(TP),從而減少假陽性。測試結果AUC數據為0.8561,表明模型能夠識別出絕大多數膿毒症患者90天內是否死亡,如果預測為死亡,則這些患者可以進行適當的靶向治療。

對於精確率(precision)和召回率(recall),數字越接近於1,表明模型越精確。圖2中顯示的數據為接近於0.80,即贊成高召回率——目的是盡量減少該模型遺漏最終可能因膿毒症死亡的患者數量。

對於另外的一個評價指標準確度(Accuracy),使用bootstrap對訓練和測試數據生成1000個變體,然後在這些數據上運行XGBoost模型,並獲得每次運行的模型準確率,1000次運行結果的準確度分布為0.77~0.79之間的概率為95%,這意味著建立的模型能夠識別出超過四分之三的真實結果。

除了以上評價指標外,模型的混淆矩陣(confusion matrix)如圖3所示。從圖中可以看到,對於測試數據,模型確定了1190例患者為真陽性(預測為死亡的膿毒症患者死亡)和2087例患者為真陰性(預測為生存的膿毒症患者存活)。

圖3 陰陽性預測

XGBoost還具有確定特徵的能力,這種能力並不告知選擇的特徵是否為死亡或生存的預測因子,但XGBoost生成的信息仍然非常有用,因為可以了解到哪些特徵是用於預測死亡的。如圖4所示,29.5%的患者都使用「入院年齡」特徵來預測死亡。

圖4 模型最重要的20個特徵

對特徵進一步的探索分析,以測試特徵如何與死亡結果相對應。雖然上圖有助於可視化特徵與結果的關係,更重要的是要了解XGBoost訓練多個決策樹的機制。因此,在探索過程中,XGBoost模型中的重要特徵可能與這些結果變數沒有明顯關係。

如圖5所示,諸如「入院年齡」的特徵可能表明老年患者相較於年輕患者而言具有更高的死亡比例,另一個例子「血管升壓葯使用時間」特徵可能表明服用升壓葯的患者死亡率較高,但這些死亡也可能是由於其不好的健康狀況導致。

圖5 與患者死亡有關的一些重要特徵

XGBoost輸出的決策樹規則可以幫助醫生進一步了解如何針對患者制定治療方案。比如,由於老年患者較高的死亡風險,醫療團隊可以特別關注老年患者,檢測所服用的血管升壓葯的持續時間、盡量減少患者在各科室之間轉移的次數以減少對易感染患者的影響等。

結論

預測膿毒症患者的全因死亡可指導健康提供者主動監測並採取預防措施以提升患者的存活率。在本文模型中,選擇了那些被認為與膿毒症患者死亡有關的重要特徵,即機器學習模型可以幫助識別與膿毒症死亡相關聯的變數。後續隨著數據量的增加,將添加一些更關鍵特徵來改進模型,也可以將該方法應用於其它病症的預測之中,希望產生一個更具可操作的模型,以改善醫療水平。

數十款阿里雲產品限時折扣中,趕緊點擊領劵開始雲上實踐吧!

以上為譯文,由阿里云云棲社區組織翻譯。

譯文鏈接

文章原標題《Using Machine Learning to Predict Outcomes for Sepsis Patients》

譯者:海棠,審校:Uncle_LLD。

文章為簡譯,更為詳細的內容,請查看原文。

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎

本文為雲棲社區原創內容,未經允許不得轉載。


推薦閱讀:

【ML專欄】【2018Q1】(4)眾包vs有監督學習
你需要的Scikit-learn中文文檔:步入機器學習的完美實踐教程
cs231n assignment1
重磅 | 吳恩達新書《Machine Learning Yearning》最新版分享
機器學習之對數幾率回歸(Logistic Regression)

TAG:機器學習 | 深度學習DeepLearning | 人工智慧 |