文献来源:
Denise Bandeira da Silva, Diogo Schmidt, Cristiano André da Costa, Rodrigo da Rosa Righi, Björn Eskofier, DeepSigns: A predictive model based on Deep Learning for the early detection of patient health deterioration, Expert Systems with Applications, Volume 165, 2021, 113905, ISSN 0957-4174. 原文网站链接.
目录
引言与摘要解读
危重病人早期诊断依靠对不同医学变量的观测,如生命体征、实验室化验结果等等。重症病人在病情恶化之前往往有生命体征的变化,而检测这些变化对于诊断结果的预测十分重要,进而能够在第一时间开始患者护理工作。能够对患者后续健康状况预测的指标就被称为预后指标。
那我们容易知道,预后指标数量多,数据量很大,怎么办呢?
近年来,随着网络的发展和进步,使用电子化的手段对健康信息进行记录会非常方便,目前最广泛的应用就是:电子健康记录(Electronic Health Records)。这个记录的应用使得患者的相关数据能够方便使用,进而可以通过机器学习等方法进行信息抽提,从而支持医疗决策。
本篇文献就是要建立一个模型,能够预测患者病情,以便及时开展治疗工作。
正如题目所言,本文基于深度学习、递归神经网络以及长短期记忆神经网络,以期建立预测患者生命体征、并通过预后指标评估患者健康状况的模型。据文献所说,预测的准确性>80%!
背景与预备知识
在进行进一步的探究之前,我们需要以下预备知识:
-
临床决策支持系统(Clinical Decision Support Systems, CDSS):一般指凡能对临床决策提供支持的计算机系统,这个系统充分运用可供利用的、合适的计算机技术,针对半结构化或非结构化医学问题,通过人机交互方式改善和提高决策效率的系统。
-
作用:识别患者健康风险情况,及时提醒医疗团队采取行动
-
举例:脓毒症黄金时间
-
-
电子健康记录(Electronic Health Records, EHR):可以理解为患者的电子版病历本,包含患者的全方位医疗记录,利用其中的数据可以进行医疗评估等等。
-
预后指标(Prognostic indexes):通过收集患者的健康状况以及特定生理指标,进行推断和计算,最终得出一个判断依据(通常是一个数字),这个依据就能够对患者病情进行评估。
-
常见的预后指标:序贯器官衰竭评估评分(Sequential Organ Failure Assessment Score, SOFA)、早期预警评分(Early Warning Score, EWS)、简化急性生理学评分(Simplified Acute Physiology Score Ⅱ)、急性生理学与慢性健康评估Ⅱ(Acute Physiology And Chronic Health Evaluation, APACHE II)
-
模型的提出与架构
文献根据传统的检测住院患者恶化的模型,使用LSTM网络预测生命体征,并计算预后指数,结合CDSS预测患者的病情。其模型如下图所示:
DeepSigns模型致力于通过检测到的患者生命体征,预测其后续的生命体征,结合预后指标的计算,从而得到患者的病情情况。
值得一提的是,本文采取的预后指标是上述提到的APACHE II,下图展示了APACHE II接受的生命体征和化验结果的输入:
![]() |
|
简而言之:APACHE分数=生理指标得分(A)+年龄得分(B)+手术得分(C)
接下来,我们将要了解DeepSigns模型的架构。如下图所示:
当患者到达医院,进行体检,其数据将会存储在医院的EHR中。EHR中的数据就可以解释为时间序列,将其作为LSTM神经网络的输入,进行预测,得到患者的生命体征预测值,并使用预后指标进行计算评分,预测患者的健康状况。
LSTM网络的预测模型如下,显示了LSTM网络的输入及其最后输出的预测属性,本质上就是选择一个变量作为待预测输出变量,剩余变量作为输入变量,进行预测。
![]() |
|
最后,基于DeepSigns模型的决策系统流程如下:
模型的实现
数据的选择
文献选取的数据来自MIMIC-III数据库,其记录了来自2001~2012年间在Beth Israel Deaconess医疗中心成人ICU病房的约58,000例患者的EHR数据。但是由于笔者在寻找其数据的过程中,发现需要注册申请才能获取数据,所以可以采用MIMIC数据库介绍网站(见下)中给出的Demo数据:
MIMIC数据库介绍:MIMIC
MIMIC-III数据Demo:MIMIC-III Clinical Database Demo v1.4,选择CHARTEVENTS.csv文件
数据预处理
由于EHR可以解释为时间序列数据,那么我们就需要从时间的角度组织数据。文献保留了就诊人编号hadm_id,就诊时间charttime,检查项目编号itemid,检查结果数值valuenum以及检查数值单位valueuom,如下图示例:
之后,我们需要按照一个固定的时间窗口(Window)划分数据集,从而成功创建时间序列。那么如何选择时间窗口呢?
试想一下,如果处理三个小时内持续监测的数据,但是每30min取一次,那么只会产生六个样本;如果监测时间达到24h,那么样本数也只有48个。仿佛越小的时间窗口越好,但是如果时间窗口特别小,样本量就会激增,对模型的训练时间复杂度和空间复杂度也会提高,不划算。
文献作者与专业的医生进行了讨论,决定尝试1、5、10、15、30min。
文献给出了在不同样本数下(不同住院患者数量),不同时间窗口下,APACHE II的预测准确度比较(左)以及报警正确准确度比较(右):
![]() | ![]() |
可以看到,目前1min的时间窗口确实是最佳选项,这也符合其他文献的支撑。
所以作为示例,文献以1min的时间窗口,划分了数据集,并对单位时间窗口内的数据求取平均值。以下是100006号患者的时间序列:
接着,作为数据预处理,一定要对缺失值进行插补。那么问题又来了,缺失值插补什么呢?
据其他文献支持,生命体征的缺失值一般使用参考值、0值、-1值或-100值进行插补。文献对此进行了测试,以预测的每个生命体征的MSE为标准:
可以看到,以生命体征参考值作为缺失值的插值效果最好,这个参考值其实就是APACHE II给出生命体征范围的中位数。
最后,我们需要确定数据集的大小。回想上述在选择时间窗口的时候画的曲线图,可以发现,当数据量大于1000后,其实预测的准确性没有什么变化了。文献绘制了不同数据集下各项指标的预测准确率,如下所示;右图展示了左图排名前10的数据集大小和时间窗口组合:
![]() | ![]() |
可以看到,当数据集为2500,时间窗口为1min的时候,准确率最高。可惜的是,其训练时间长达22h。试想一下,当模型在训练的时候,还不断有新的患者被送往医院,如果考虑22h的训练时长,对病人是不利的。所以这也是为什么文献选择了样本量1000,时间窗口为15min。
模型训练与评估
我们需要将原数据按照6:1:3的比例划分,如下左图:
![]() | ![]() |
模型的训练过程为:已知病人t-1之前所有历史数据,一个新的t-1的住院病人数据,之后预测生命体征,计算预后指数,并将其与使用t时刻生命体征计算的预后指数进行对比、验证。(如上右图)
LSTM的初始超参数配置为:
文献后续对神经元的数量和epoch数目进行调参,并将LSTM与之前文献的OLS(最小二乘法)方法进行了对比,证明了DeepSigns的有效性,如下图所示:
最后,文献采用最佳的50个神经元、50个epoch,结合1000样本量,15min时间窗口,对LSTM圣经网络进行了训练,下表展示了每个属性的MSE,作为评估:
总结
-
本文提出了一种模型,用于提前诊断患者健康状况的恶化可能,以便提前开始治疗。
-
使用了基于LSTM神经网络的低MSE历史数据预测生命体征,并在计算预后指标中有效应用。
-
很多健康判断是基于当下生命体征指标,而本文模型基于历史测量数据,更为准确
代码
文献所发布的github代码:GitHub - diogoschmidt/deepsigns