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

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

隨著資料量以及計算機效能的不斷提升,機器學習技術正逐漸滲透於各行各業中。計算機視覺、自然語言處理、機器人等領域基本上已經被機器學習演算法壟斷,正逐步向教育、銀行、醫療等傳統行業擴張。關於機器學習如何改變傳統教育模式,可以參見博主的這篇文章《使用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輸出的決策樹規則可以幫助醫生進一步瞭解如何針對患者制定治療方案。比如,由於老年患者較高的死亡風險,醫療團隊可以特別關注老年患者,檢測所服用的血管升壓藥的持續時間、儘量減少患者在各科室之間轉移的次數以減少對易感染患者的影響等。

結論

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

閱讀更多幹貨好文,請關注掃描以下二維碼:


相關文章