一种基于循环神经网络的慢性病患者智能预后方法及系统

文档序号:1955344 发布日期:2021-12-10 浏览:18次 >En<

阅读说明:本技术 一种基于循环神经网络的慢性病患者智能预后方法及系统 (Intelligent chronic patient prognosis method and system based on recurrent neural network ) 是由 王亚沙 唐雯 马连韬 徐云浩 马辛宇 高俊逸 于 2020-09-25 设计创作,主要内容包括:本发明公开了一种基于循环神经网络的慢性病患者智能预后方法及系统,方法包括:S100、获取并处理患者的医疗数据;S200、基于处理后的医疗数据,以及循环神经网络模型或门控循环单元,建立预测模型,通过预测模型预测患者在相应时刻的死亡风险。本发明基于循环神经网络模型及其变体以及融合了患者静态信息与随时间变化的动态信息的医疗数据建立预测模型,预测患者在相应时刻的死亡风险,辅助临床医生进行决策。(The invention discloses a chronic patient intelligent prognosis method and a system based on a recurrent neural network, wherein the method comprises the following steps: s100, acquiring and processing medical data of a patient; s200, establishing a prediction model based on the processed medical data and the cyclic neural network model or the gated cyclic unit, and predicting the death risk of the patient at the corresponding moment through the prediction model. The invention establishes a prediction model based on the recurrent neural network model and the variant thereof and the medical data which integrates the static information of the patient and the dynamic information which changes along with the time, predicts the death risk of the patient at the corresponding moment and assists the clinician to make a decision.)

一种基于循环神经网络的慢性病患者智能预后方法及系统

技术领域

本发明涉及智能医疗领域,具体涉及一种基于循环神经网络的慢性病患者智能预后方法及系统。

背景技术

腹膜透析是终末期肾病的重要替代治疗手段,进行腹膜透析治疗的患者病情复杂,为了更好地治疗和管理该类患者,要根据患者随访过程中的各种变化因素,全面地进行病情评估,并据此制定个体化治疗方案。

目前已有将数据挖掘与机器学习技术,特别是深度学习,应用于医疗数据分析的尝试,其中循环神经网络(RNN)及其变体门控循环单元(GRU)可以灵活处理变长时序数据,非常适合分析腹膜透析患者的数据,能够挖掘出其中的非线性关系以及隐藏模式,并且目前尚未见基于循环神经网络的融合静动态信息的腹膜透析智能预后方法及系统的发明。

发明内容

针对现有技术中存在的缺陷,本发明的目的在于提供一种基于循环神经网络的慢性病患者智能预后方法及系统,能够基于病人的临床医疗记录预测死亡风险。

为实现上述目的,本发明采用的技术方案如下:

一种基于循环神经网络的慢性病患者智能预后方法,包括:

S100、获取并处理患者的医疗数据;

S200、基于处理后的所述医疗数据,以及循环神经网络模型或门控循环单元,建立预测模型,通过所述预测模型预测患者在相应时刻的死亡风险。

进一步,如上所述的方法,步骤S100包括:

S101、对所述医疗数据按医学指标进行分类、数据清洗和补全预处理,所述医疗数据包括:基线数据、随访数据和预后数据;

S102、基于患者的历次随访数据,按时间将所述医疗数据合并为数条就诊记录序列,基于患者的基线数据,将患者的就诊记录序列与基线数据合并成完整的模型输入数据并对其进行降维压缩,基于患者的预后数据,记录患者在第t次就诊时的死亡风险状态,即结局变量riskt

进一步,如上所述的方法,步骤S102中,基于患者的预后数据,记录患者在第t次就诊时的死亡风险状态,包括:

对观察窗口内死亡的患者,记死亡前一年内的预后数据的结局变量为1,视为高风险状态;记死亡时间的两年之前的预后数据的结局变量为0,视为低风险状态;记前面两个时间段中间的预后数据的结局变量为uncertain,视为不确定状态;

对观察窗口内存活的患者,将窗口截止处一年内的预后数据的结局变量记为uncertain,将窗口截止处一年前的预后数据的结局变量记为0。

进一步,如上所述的方法,步骤S200包括:

基于处理后的所述医疗数据和所述循环神经网络模型,通过下式计算得到患者第t次就诊预测的死亡风险值

ht=σ(U*recordt+W*ht-1)

其中,ht为所述循环神经网络模型对第t次就诊时的就诊记录序列recordt处理后的节点状态向量,ht-1为所述循环神经网络模型对第t-1次就诊时的就诊记录序列recordt-1处理后的节点状态向量,U、V、W为待学习的参数矩阵,b为待学习的向量,σ为激活函数,t为正整数。

进一步,如上所述的方法,步骤S200包括:

用随机梯度下降的方法使交叉熵损失函数最小化,训练所述循环神经网络模型,学得最接近真正死亡风险状态的风险值。

进一步,如上所述的方法,步骤S200包括:

基于处理后的所述医疗数据和所述门控循环单元,通过下式计算得到患者第t次就诊预测的死亡风险值

rt=σ(Ur*recordt+Wr*ht-1+br)

zt=σ(Uz*recordt+Wz*ht-1+bz)

其中,ht为所述门控循环单元对第t次就诊时的就诊记录序列recordt处理后的节点状态向量,ht-1为所述门控循环单元对第t-1次就诊时的就诊记录序列recordt-1处理后的节点状态向量,Ur、Uz、Uh、Wr、Wz、Wh、V为待学习的参数矩阵,br、bz、bh、b为待学习的向量,σ为激活函数,t为正整数。

进一步,如上所述的方法,步骤S200包括:

用随机梯度下降的方法使交叉熵损失函数最小化,训练所述门控循环单元,学得最接近真正死亡风险状态的风险值。

进一步,如上所述的方法,所述交叉熵损失函数J(t)和损失函数J分别为:

其中,riskt为患者第t次就诊时的真正死亡风险状态,为患者第t次就诊预测的死亡风险值,T为就诊次数,T、t为正整数。

一种基于循环神经网络的慢性病患者智能预后系统,包括:

获取模块,用于获取并处理患者的医疗数据;

预测模块,用于基于处理后的所述医疗数据,以及循环神经网络模型或门控循环单元,建立预测模型,通过所述预测模型预测患者在相应时刻的死亡风险。

本发明的有益效果在于:本发明所提供的方法及系统,基于循环神经网络模型及其变体以及融合了患者静态信息与随时间变化的动态信息的医疗数据建立预测模型,预测患者在相应时刻的死亡风险,辅助临床医生进行决策。

附图说明

图1为本发明实施例中提供的一种基于循环神经网络的慢性病患者智能预后方法的流程示意图;

图2为本发明实施例中提供的数据集中年龄与就诊频次的分布图;

图3为本发明实施例中提供的健康风险状态标签的定义图;

图4为本发明实施例中提供的循环神经网络模型的结构示意图;

图5为本发明实施例中提供的门控循环单元的结构示意图;

图6为本发明实施例中提供的不同预测窗口下对不同死因的召回率示意图;

图7为本发明实施例中提供的一种基于循环神经网络的慢性病患者智能预后系统的结构示意图。

具体实施方式

下面结合说明书附图与具体实施方式对本发明做进一步的详细说明。

缩略语和关键术语解释

RNN(Recurrent Neural Network,循环神经网络模型)

循环神经网络模型是一种神经网络,能够处理时序信息,将不同时间戳下的数据循环输入网络,网络提取其中蕴含的信息,并给出在每个时间戳下的输出。输入数据时,网络能利用之前的循环提取的信息,对当前的状态进行更新,并给出当前的合理输出。

GRU(Gated Recurrent Unit,门控循环单元)

门控循环单元是RNN的一种变体,其大体时序信息传播结构与RNN模型相似。区别在于GRU的每次循环都更复杂,对上一个循环的状态,它会通过“更新门”和“重置门”机制选择性地保留和遗忘信息。

如图1所示,一种基于循环神经网络的慢性病患者智能预后方法,包括:

S100、获取并处理慢性病患者的医疗数据;

S101、对医疗数据按医学指标进行分类、数据清洗和补全预处理,医疗数据包括:基线数据、随访数据和预后数据;

S102、基于患者的历次随访数据按时间合并为数条就诊记录序列,基于患者的静态基线数据,将上述动态数据记录序列与之合并成完整的模型输入数据并对高维输入数据进行降维压缩,基于患者的预后数据记录患者在第t次就诊时的死亡风险状态,即结局变量riskt

具体地,基于患者的静态基线数据,将上述动态数据记录序列与之合并成完整的模型输入数据并对高维输入数据进行降维压缩,处理医疗数据的过程是融合患者静态信息与动态信息的过程,在循环神经网络处理的动态数据序列中融入患者的静态基线数据,以增强网络对重要的基线数据的关注程度,以使模型更贴近真实医疗情境,提高模型预测的准确率;又因融合后的数据维数过多不利于挖掘信息,因此对高维数据进行降维和增加深度的处理,以捕捉更多特征和隐藏关系,更利于数据的拟合,同时降维也减少了原始数据中的冗余信息所造成的误差,提高了模型的准确率。

具体地,基于患者的预后数据记录患者在第t次就诊时的死亡风险状态,包括:对观察窗口内死亡的患者,记死亡前一年内的预后数据的结局变量为1,视为高风险状态;记死亡时间的两年之前的预后数据的结局变量为0,视为低风险状态;记前面两个时间段中间的预后数据的结局变量为uncertain,视为不确定状态;对观察窗口内存活的患者,将窗口截止处一年内的预后数据的结局变量记为uncertain,将窗口截止处一年前的预后数据的结局变量记为0。

本实施例中,总共包括了1118名腹膜透析患者,筛选后总共处理其中656人的数据,他们都是2006年1月至2018年1月在北京某医院肾内科长期随访的腹膜透析患者,所有患者随访截止至2018年10月31日。资料包括基线、随访和预后数据。

基线数据包括患者的人口学资料、肾脏病原发病、在透析开始时的合并症状况,以及透析开始时的血压、化验检查信息。

随访数据包括在治疗过程中患者随访检查的化验数据、体重、血压等指标,以及患者在随访过程中所出现的各种急、慢性合并症。

预后数据指患者在随访结束时的状态及时间,包括死亡及死亡原因、转血液透析及其原因、肾移植、存活、转其他腹膜透析中心或失访。

按照医学指标(下称特征)所衡量的患者的不同身体情况,对所有用于本发明的数据特征进行分类,详情如表1所示。

表1腹膜透析相关医疗特征

经过处理的数据集共有656例患者,其中261例死亡,共计13091条记录。患者的各项化验指标的统计见表2,合并症记录统计见表3,患者基本信息统计见表4及图2。

表2数据集中腹膜透析相关医疗特征统计

表3数据集中腹膜透析相关合并症统计

表4数据集基本统计特征

结局变量为患者在数据记录的时刻的死亡风险状态(riskt),模型的预测结果是相应时刻的死亡风险(概率)。将历次随访数据合并为数条时间记录序列(record1~recordt),之后将患者静态基线数据信息融入数据序列中,以增强网络对重要的基线数据的关注程度,使模型更贴近真实医疗情境;又因融合后的数据维数过多不利于拟合,因此对高维数据进行降维和增加深度的处理,以捕捉更多特征和隐藏关系,并且降维也减少了原始数据中的冗余信息所造成的误差,提高了模型的准确率。预后数据主要提供患者的身体状况信息,用于计算结局变量。

对预后数据的处理如图3所示,对观察窗口内死亡的患者,记死亡前一年内的数据的结局变量为1,视为高风险;记死亡时间的两年之前的数据的结局变量为0,视为低风险;记上述时间段的中间为uncertain,视为不确定状态。对观察窗口内存活的患者,将窗口截止处一年内的预后数据记为uncertain,一年前的数据记为0。

S200、基于处理后的医疗数据,以及循环神经网络模型或门控循环单元,建立预测模型。

本发明的一个实施例中,步骤S200包括:

基于处理后的医疗数据和循环神经网络模型,建立预测模型,预测模型通过下式计算得到患者第t次就诊预测的死亡风险值

ht=σ(U*recordt+W*ht-l)

其中,ht为循环神经网络模型对第t次就诊时的就诊记录序列recordt处理后的节点状态向量,ht-1为循环神经网络模型对第t-1次就诊时的就诊记录序列recordt-1处理后的节点状态向量,U、V、W为待学习的参数矩阵,b为待学习的向量,σ为激活函数,t为正整数。

步骤S200包括:

用随机梯度下降的方法使交叉熵损失函数最小化,训练循环神经网络模型,学得最接近真正死亡风险状态的风险值。

本发明的另一个实施例中,步骤S200包括:

基于处理后的医疗数据和门控循环单元,建立预测模型,预测模型通过下式计算得到患者第t次就诊预测的死亡风险值

rt=σ(Ur*recordt+Wr*ht-1+br)

zt=σ(Uz*recordt+Wz*ht-1+bz)

其中,ht为门控循环单元对第t次就诊时的就诊记录序列recordt处理后的节点状态向量,ht-1为门控循环单元对第t-1次就诊时的就诊记录序列recordt-1处理后的节点状态向量,Ur、Uz、Uh、Wr、Wz、Wh、V为待学习的参数矩阵、br、bz、bh、b为待学习的向量,σ为激活函数,t为正整数。

步骤S200包括:

用随机梯度下降的方法使交叉熵损失函数最小化,训练门控循环单元,学得最接近真正死亡风险状态的风险值。

上述两个实施例中,使用的交叉熵损失函数J(t)和损失函数J分别为:

其中,riskt为患者第t次就诊时的真正死亡风险,为患者第t次就诊预测的死亡风险值,T为就诊次数,T、t为正整数。

本发明处理的对象是沿时间线展开的医疗数据的序列。由于患者就诊会产生不同长度的就诊记录序列,因此采用RNN模型来评估患者状况。RNN模型的结构以及输入数据的组成如图4所示。

对一位患者的第t次就诊而言,图4中recordt为该时间戳下RNN模型的输入向量,其中包括患者该次就诊时各项数据的值以及患者的重要基线数据。ht为RNN对record1~recordt处理后获得的隐藏层,即高维压缩表示,为RNN模型对该患者此次就诊预测的死亡风险值。图中U、V、W为待学习的参数矩阵,RNN模型通过这三个参数矩阵学得输入向量recordt到ht之间的函数映射关系,并在时间线上共享参数U、V、W。对于每一个时间戳t下的输入向量recordt,给出RNN节点状态向量ht以及RNN对输出向量的计算方法:

ht=σ(U*recordt+W*ht-1) (1)

其中,函数σ为激活函数。已知当前时间戳下的真实死亡风险为riskt,定义交叉熵损失函数为:

只需最小化损失函数J(式4),即可让RNN模型学得与真正死亡风险最接近的输出。由于在RNN模型中,距当前越近的输入对当前的输出影响越大,但在真实医疗情境中,有些信息(如合并症)是应当被持续关注的,它们不应在模型的循环过程中被忽略。因此,在RNN模型中引入门限。门限相当于一种可变的短路机制,使部分信息可以直接传到后面的隐状态而不被多次循环逐渐忽略。由此引入的门控循环单元的时序信息传播结构如图5所示。门限循环单元(GRU)能够很好地抽取长时间间距之间数据的相关信息。

σ和tanh分别为神经网络中sigmoid和tanh非线性激活函数,符号“×”和“+”指代矩阵的元素积和矩阵加法。对上一时间戳的状态ht-1,GRU会通过“更新门”和“重置门”机制对其保留和遗忘,分别对应图中的zt和rt。GRU对于每一个时间戳下的输入向量recordt,结合节点状态向量ht-1,计算更新门与重置门,更新门越大则模型会利用更多新时刻的信息,重置门越大则保留更多历史信息:

rt=σ(Ur*recordt+Wr*ht-1+br) (5)

zt=σ(Uz*recordt+Wz*ht-1+bz) (6)

其中,σ为激活函数,Wr、Wz、Wh是模型需要学习的参数。对于时间戳t下的输出向量仍然利用公式计算即可。用随机梯度下降的方法使交叉熵损失函数最小化,学得最接近真正死亡风险的风险值,以达到本发明预测患者死亡风险的目标。

目前对于腹膜透析患者的预后预测多为基于基线数据的统计学回归分析模型,逻辑回归(Logistic Regression,LR)模型是一种广泛使用的传统的回归分析模型,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。逻辑回归模型无法考虑时间这一因素带来的影响,而是单纯从每个数据本身挖掘其背后的特征和意义,因此难以准确描述和挖掘序列中数据之间的关系。它通过线性组合每个时间戳t下的输入recordt得到相应的logitt值,并将logitt通过sigmoid函数计算得到预测死亡风险值具体计算公式如下:

log itt=W*recordt+b (9)

sigmoid函数体现了最终输出概率与输入之间的非线性关系。同样采用随机梯度下降的方式最小化交叉熵损失函数来计算最优参数W和b。

此处对本发明的预后方法及系统的实际应用进行简单举例。相比于RNN和LR模型,GRU模型具有更好的预测效果,所以此处使用GRU模型进行预测。为了确定模型对于不同死亡原因的预测表现,计算了测试集上不同死亡原因的平均召回率,召回率在统计学上指所有预测为正样本中预测正确的比率,还分析了预测窗口设置为3个月时模型的性能(图6)。

图6中有几种死亡原因具有高召回率,表示模型对于这几种原因导致的死亡的预测效果较好,也有一些死亡原因(如心脑血管疾病)的召回率相对较低,表示模型对急性发病的心脑血管疾病预测效果不佳,需要在模型中纳入更多潜在危险因素,或在临床上寻找潜在预测因子来提高模型的预测效果。心脑血管疾病随着预测窗口从一年变化到三个月,脑血管疾病的召回率增加,心血管疾病召回率增加不明显,表明如果医生更频繁地随访脑血管疾病患者,则可以使用现有类型的临床数据进行预警,而对于心血管疾病患者,当前临床信息不足以更准确地对死亡做出预警,因此对于心血管疾病的预测需要进行更详细的测试。

使用本发明的预测系统辅助医生进行临床决策和干预,可能有助于医生更好地随访和检测患者。本发明也展现了循环神经网络模型在临床预测模型中的潜在应用价值,在此基础上的数据挖掘可能为临床提供更为有意义的发现。

如图7所示,一种基于循环神经网络的慢性病患者智能预后方法,包括:

获取模块100,用于获取并处理患者的医疗数据;

预测模块200,用于基于处理后的医疗数据,以及循环神经网络模型或门控循环单元,建立预测模型,通过预测模型预测患者在相应时刻的死亡风险。

获取模块100用于:对医疗数据按医学指标进行分类、数据清洗和补全预处理,医疗数据包括:基线数据、随访数据和预后数据。还用于基于患者的历次随访数据按时间合并为数条就诊记录序列,基于患者的静态基线数据,将上述动态数据记录序列与之合并成完整的模型输入数据并对高维输入数据进行降维压缩,基于患者的预后数据记录患者在第t次就诊时的死亡风险状态,即结局变量riskt。

具体地,基于患者的静态基线数据,将上述动态数据记录序列与之合并成完整的模型输入数据并对高维输入数据进行降维压缩,处理医疗数据的过程是融合患者静态信息与动态信息的过程,在循环神经网络处理的动态数据序列中融入患者的静态基线数据,以增强网络对重要的基线数据的关注程度,以使模型更贴近真实医疗情境,提高模型预测的准确率;又因融合后的数据维数过多不利于挖掘信息,因此对高维数据进行降维和增加深度的处理,以捕捉更多特征和隐藏关系,更利于数据的拟合,同时降维也减少了原始数据中的冗余信息所造成的误差,提高了模型的准确率。

具体地,基于患者的预后数据,记录患者在第t次就诊时的死亡风险状态,即结局变量riskt,包括:对观察窗口内死亡的患者,记死亡前一年内的预后数据的结局变量为1,视为高风险状态;记死亡时间的两年之前的预后数据的结局变量为0,视为低风险状态;记前面两个时间段中间的预后数据的结局变量为uncertain,视为不确定状态;

对观察窗口内存活的患者,将窗口截止处一年内的预后数据的结局变量记为uncertain,将窗口截止处一年前的预后数据的结局变量记为0。

预测模块200用于:基于处理后的医疗数据和循环神经网络模型,建立预测模型,预测模型通过下式计算得到患者第t次就诊预测的死亡风险值

ht=σ(U*recordt+W*ht-1)

其中,ht为循环神经网络模型对第t次就诊时的就诊记录序列recordt处理后的节点状态向量,ht-1为循环神经网络模型对第t-1次就诊时的就诊记录序列recordt-1处理后的节点状态向量,U、V、W为待学习的参数矩阵,b为待学习的向量,σ为激活函数,t为正整数。

预测模块200用于用随机梯度下降的方法使交叉熵损失函数最小化,训练循环神经网络模型,学得最接近真正死亡风险状态的风险值。

预测模块200用于基于处理后的医疗数据和门控循环单元,建立预测模型,预测模型通过下式计算得到患者第t次就诊预测的死亡风险值

rt=σ(Ur*recordt+Wr*ht-1+br)

zt=σ(Uz*recordt+Wz*ht-1+bz)

其中,ht为门控循环单元对第t次就诊时的就诊记录序列recordt处理后的节点状态向量,ht-1为门控循环单元对第t-1次就诊时的就诊记录序列recordt-1处理后的节点状态向量,Ur、Uz、Uh、Wr、Wz、Wh、V为待学习的参数矩阵,br、bz、bh、b为待学习的向量,σ为激活函数,t为正整数。

预测模块200用于用随机梯度下降的方法使交叉熵损失函数最小化,训练门控循环单元,学得最接近真正死亡风险状态的风险值。

交叉熵损失函数J(t)和损失函数J分别为:

其中,riskt为患者第t次就诊时的真正死亡风险状态,为患者第t次就诊预测的死亡风险值,T为就诊次数,T、t为正整数。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种预测无创呼吸机治疗失败概率的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!