劉強,郭瑞,王勤,孫凱
北京醫(yī)院 a. 器材處;b. 呼吸與危重癥科;c. 醫(yī)務(wù)處,北京 100730
呼吸機是重要的危重急救和生命支持設(shè)備,國家衛(wèi)健委發(fā)布的《呼吸機安全管理》要求運用管理和醫(yī)學(xué)工程技術(shù)手段,對影響治療使用安全的因素進行系統(tǒng)化管理,提高臨床保障能力[1]。目前呼吸機設(shè)備廠商不斷改進技術(shù),提供更加敏感的算法,使呼吸機不漏掉患者報警,因此有效報警會伴隨更多的無效報警出現(xiàn),而在急診或重癥監(jiān)護病房,無效的誤報警會使醫(yī)護人員產(chǎn)生報警疲勞,出現(xiàn)響應(yīng)遲緩現(xiàn)象,從而降低醫(yī)療質(zhì)量[2]。當(dāng)前呼吸機普遍使用單變量報警算法和數(shù)字閾值預(yù)警模式[3],不同廠商主要使用流量傳感器、壓力傳感器、氧傳感器(氧電池)、溫濕度傳感器等來監(jiān)測患者端的通氣情況。當(dāng)患者實際數(shù)值超過醫(yī)生預(yù)設(shè)閾值時,即觸發(fā)報警,因而不能分辨這一報警產(chǎn)生的原因是生理狀態(tài)改變、閾值設(shè)置范圍較大,還是外界醫(yī)療干預(yù),且不同呼吸機品牌的報警項目可相差多項報警信息和視覺信息。本研究基于呼吸機環(huán)境和參數(shù)設(shè)置,便捷、高效地對單中心數(shù)據(jù)建立預(yù)測模型。由于患者病情變化從而導(dǎo)致呼吸機環(huán)境和參數(shù)設(shè)置變化較大,故無法用建立數(shù)學(xué)模型的方法建模。本研究應(yīng)用機器學(xué)習(xí)中主流的隨機森林算法對呼吸機報警進行分析及對重要參數(shù)進行排序,通過建模識別每次報警是否為誤報警,并將報警提示對應(yīng)發(fā)送給醫(yī)生、呼吸治療師和臨床工程師。利用臨床在用呼吸機的實時數(shù)據(jù)真實反饋呼吸機的臨床使用情況,基于臨床數(shù)據(jù)采用機器學(xué)習(xí)的方法分析判別主要因素,可提升呼吸機的有效報警能力,降低無效報警數(shù)量,在臨床上對呼吸機的使用方面具有重要意義[4]。
呼吸機數(shù)據(jù)平臺的建立[5-6]是整合呼吸機臨床數(shù)據(jù)并進一步進行統(tǒng)計分析、機器學(xué)習(xí)的基礎(chǔ)。平臺基于國際醫(yī)療信息系統(tǒng)集成(Integrating the Healthcare Enterprise,IHE)的規(guī)范流程和相關(guān)技術(shù)框架[7-8]實現(xiàn)數(shù)據(jù)整合。我院采用呼吸機中心集中管理的模式,對有創(chuàng)呼吸機建立了呼吸機數(shù)據(jù)監(jiān)測拓撲圖(圖1)。呼吸機通信協(xié)議是系統(tǒng)平臺建立的核心問題,本研究采用IHE規(guī)范中的患者護理設(shè)備(Patient Care Device,PDC)框架,明確各廠家的數(shù)據(jù)流標準,確保各廠家設(shè)備與系統(tǒng)平臺聯(lián)通[9]。呼吸機硬件連接在RS232 口上[10],系統(tǒng)平臺為B/S 架構(gòu),醫(yī)護端以移動手機或平板App 的形式[11]實時監(jiān)測所關(guān)注的呼吸機報警數(shù)據(jù),服務(wù)器端支持對數(shù)據(jù)的統(tǒng)計分析。

圖1 呼吸機數(shù)據(jù)平臺建立拓撲圖
1.2.1 數(shù)據(jù)準備
接入數(shù)據(jù)平臺的呼吸機全部符合國際電工委員(IECEE)醫(yī)用設(shè)備及系統(tǒng)中警報的通用標準[12]。我院呼吸機中心有30 臺有創(chuàng)呼吸機接入呼吸機數(shù)據(jù)平臺,均為臨床常用的品牌,呼吸機型號及呼吸機數(shù)據(jù)平臺所記錄的報警數(shù)據(jù)量如表1 所示。

表1 接入呼吸機數(shù)據(jù)平臺設(shè)備列表
對呼吸機數(shù)據(jù)平臺單日的報警次數(shù)進行統(tǒng)計得出報警總量為3699 次,其中只有近2%的報警為設(shè)備報警,其余均為通氣類報警,見圖2。

圖2 呼吸機報警分類對比
基于呼吸機特點及報警定義級別,將呼吸機報警分為設(shè)備報警和通氣報警[13]。設(shè)備報警也稱故障報警,通常指呼吸機及配件發(fā)生問題。由于各呼吸機廠家設(shè)備的報警等級最高,且在臨床使用中,設(shè)備報警產(chǎn)生的次數(shù)極低,因而設(shè)備報警(故障報警)在本研究中全部默認為真實報警。臨床實際數(shù)據(jù)表明,通氣類報警數(shù)量最多且頻繁[14],與臨床使用操作等關(guān)系緊密,不確定因素較多,報警真實性有待提高。本研究基于呼吸機數(shù)據(jù)管理平臺,針對表1 中的4 款型號共5 臺呼吸機,選取呼吸科病房持續(xù)上機大于30 d、情況相對穩(wěn)定的5 例患者,調(diào)閱30 d 的報警數(shù)據(jù),報警數(shù)據(jù)按臨床通氣報警進行數(shù)據(jù)統(tǒng)計,見表2。

表2 呼吸機臨床常見報警真實率統(tǒng)計
1.2.2 數(shù)據(jù)標注
訓(xùn)練數(shù)據(jù)集由呼吸科醫(yī)生、呼吸治療師對該科室的在用5 臺呼吸機、30 d 共計20327 次臨床通氣報警進行標注,每條報警需在獲得一致的判斷后才被標注為真或假,常見報警真實率統(tǒng)計如表2 所示。
1.3.1 算法架構(gòu)分析
隨機森林算法目前已成為醫(yī)學(xué)數(shù)據(jù)分析中較常用的一種機器學(xué)習(xí)方法[15-16]。本研究使用隨機森林算法構(gòu)建模型進行訓(xùn)練和測試。隨機森林算法的優(yōu)勢在于能夠處理數(shù)量龐大的高維度特征,且不需要進行降維,能評估各個特征在分類問題上的重要性,臨床訓(xùn)練速度快,可平衡誤差、生成樹狀結(jié)構(gòu)、判斷各個特征的重要性;缺點是在噪聲較大時容易出現(xiàn)過擬合現(xiàn)象,對異常值、缺失值不敏感。本文對影響真假報警的相關(guān)參數(shù)采用隨機森林算法研究的變量進行表征[17],變量名及賦值說明如表3 所示。

表3 變量參數(shù)表
由表2 可知,報警總量為20327 條,其中真報警2948 條。由于正負樣本嚴重不均衡,因此在無效報警中隨機抽取和真實報警數(shù)量相同的樣本數(shù)組成要研究的數(shù)據(jù)集。首先,將數(shù)據(jù)集按照分層抽樣法分成訓(xùn)練集(14391 條)和測試集(5936 條),因變量為Y,其余13 個變量X 為自變量。先對數(shù)據(jù)進行訓(xùn)練,再對測試集進行驗證完成預(yù)測。
1.3.2 建模過程
(1)導(dǎo)入所有必需的Python 庫并設(shè)置環(huán)境配置。使用Python 的“read_excel”方法從保存呼吸機數(shù)據(jù)平臺中加載數(shù)據(jù)并對數(shù)據(jù)進行預(yù)處理,具體包括檢查數(shù)據(jù)中是否有缺失值,并使用Python 函數(shù)“dropna”刪除包含任何空值的行,再將阻力、分鐘容量等列的值轉(zhuǎn)換為浮點數(shù)并用“NaN”替換空字符串。
(2)將數(shù)據(jù)集劃分訓(xùn)練集和測試集,并在訓(xùn)練集上進行模型訓(xùn)練[18]。訓(xùn)練模型前,使用scikit-learn 的“train_test_split”方法劃分數(shù)據(jù)集,確保模型不會過度擬合訓(xùn)練數(shù)據(jù),并在測試集上測試。模型的輸出為0 和1 之間的概率值,該值等同于無效報警或真實報警的估計值,可確定模型具有泛化能力。本研究定義了一個Pipeline來處理缺失值(使用SimpleImputer)和特征縮放(使用StandardScaler)以填充缺失數(shù)據(jù)和特征縮放,避免不同特征的規(guī)模相差過大。
(3)隨機森林模型的初始化和超參數(shù)調(diào)優(yōu)。本研究執(zhí)行網(wǎng)格搜索并根據(jù)最高精度找到模型的最佳超參數(shù)(“n_estimators”“max_depth”和“criterion”)。本文通過GridSearchCV 實現(xiàn)超參數(shù)調(diào)優(yōu),該方法執(zhí)行交叉驗證,可有效避免過度擬合。隨機森林模型的最優(yōu)超參數(shù)組合如表4 所示。其中,“gini”作為標準,意味著使用基尼系數(shù)來衡量模型的質(zhì)量,也就是組成森林的決策樹的分裂;Max_depth 為4,表示森林中每棵決策樹的最大深度,據(jù)此可避免因樹生長得太深而導(dǎo)致的過度擬合;N_estimators 為150,說明森林由150 棵樹組成。

表4 最優(yōu)參數(shù)模型
模型訓(xùn)練完成后,提取特征重要性并在條形圖中進行可視化排序。特征重要性可清晰地顯示呼吸機的哪些特征對于判斷無效報警最為關(guān)鍵。特征重要性排序圖如圖3 所示。

圖3 特征重要性排序圖
根據(jù)此次單中心數(shù)據(jù)建模分析獲得的特征重要性結(jié)果為:分鐘漏氣量>吸氣峰壓>阻力>分鐘容量>PEEP(呼氣末正壓)>潮氣量>泄漏 %>呼吸頻率>平均氣道壓>氧濃度>吸氣流量。從結(jié)果來看,“分鐘漏氣量”和“吸氣峰壓”是最重要的特征,每個特征的重要性約為0.201。“阻力”的重要性比前兩個稍低,為0.195。其他特征的重要性較低,“氧濃度”和“吸氣流量”的重要性為零,說明“氧濃度”和“吸氣流量”可能對模型預(yù)測無效報警用處極小。
在測試集評估模型性能方面,本研究通過計算得出的混淆矩陣如圖4 所示。在測試集的1484 個樣本中,模型正確識別了1204 個無效報警(True Negatives),正確識別了196 個真實警報(True Positives)。該模型錯誤地將28 個無效警報分類為真實警報(假陽性),并將56 個真實報警錯誤分類為無效報警(假陰性)。從不同方面評估本文模型指標[19],可得模型準確度為0.94,精準度為0.78,召回率為0.88,F(xiàn)1 得分為0.82,受試者工作特征(Receiver Operating Characteristic,ROC)曲線下面積(Area Under Curve,AUC)為0.92(圖5),說明模型表現(xiàn)較好,正確區(qū)分真實或無效報警的能力較強。

圖4 混淆矩陣圖

圖5 ROC曲線圖
根據(jù)隨機森林模型得到的各因素重要性得分圖可知,分鐘通氣量、吸氣峰壓、阻力特征重要性值最高(>0.19);氧濃度和吸氣流量的重要性幾乎為零,說明這2 項報警均為設(shè)備報警而非通氣類報警,一旦報警即為真實報警,符合目前臨床操作。通過超參數(shù)調(diào)優(yōu)建模可預(yù)測報警的真假,評估指標中召回率為0.88,即約88%的報警可提示臨床為無效報警。隨機森林建模不同于公式建模,本研究的呼吸機設(shè)備、參數(shù)發(fā)生變化,包括報警設(shè)置改變,均須重新建模再進行分析。同比其他數(shù)學(xué)模型訓(xùn)練方法,本研究的建模方式更符合臨床科室的實際情況,對于醫(yī)院單中心的數(shù)據(jù)分析更加適用。呼吸機數(shù)據(jù)平臺的服務(wù)器在獲得分析報警的真假結(jié)果數(shù)據(jù)后[20],由呼吸機數(shù)據(jù)平臺將真實報警或可能為誤報警的信息分別發(fā)送給工程師[21]和臨床醫(yī)護App 端,其中共有5223 次通過App 對醫(yī)護端提示存在誤報警可能,包括16 次延遲。網(wǎng)絡(luò)延遲目前在院內(nèi)測試中雖有20~30 s的延遲,但不會漏掉任何報警信息,且符合美國醫(yī)療器械促進協(xié)會(Association for the Advancement of Medical Instrumentation,AAMI)規(guī)定的報警響應(yīng)時間。本研究的不足之處在于建模訓(xùn)練前期的20327 次報警需由醫(yī)生標注,不可避免地會由于主觀判斷造成誤差以及產(chǎn)生標注疲勞。獲得大量的數(shù)據(jù)標注雖可提升算法的精度,但需要不斷克服臨床數(shù)據(jù)標注中的困難。后續(xù)機器學(xué)習(xí)數(shù)據(jù)的積累可為呼吸機設(shè)備保障的早期預(yù)警提供參考。
基于呼吸機數(shù)據(jù)平臺的真實臨床數(shù)據(jù),用Python 語言建立超參數(shù)調(diào)優(yōu)的隨機森林模型和重要參數(shù)排序,經(jīng)測試集數(shù)據(jù)驗證可及時、高效地進行呼吸機報警數(shù)據(jù)分析和預(yù)測。在降低無效報警方面,設(shè)備報警及通氣類報警中真實報警被降低得較少。在不降低真實報警率的情況下,氧濃度和吸氣流量等真實報警很難被抑制,也客觀驗證了無效報警目前無法完全被抑制但可以被提示。下一步,隨著呼吸機平臺數(shù)據(jù)量的不斷積累,基于重要報警參數(shù)的軟件算法不斷更新,以及整合心電、血氧、心率等監(jiān)護信息的多模態(tài)數(shù)據(jù)的導(dǎo)入,未來有望實現(xiàn)精準地評價呼吸機的每次報警,最終實現(xiàn)完全抑制呼吸機的無效報警。