基于RNN神经网络的可迁移病人分类系统转让专利

申请号 : CN201910407569.2

文献号 : CN110111901A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 彭绍亮孙哲李非陈国榜张磊秦拯魏洪马婷魏骁勇

申请人 : 湖南大学

摘要 :

本发明属于医疗数据挖掘领域,具体公开了基于RNN神经网络的可迁移病人分类系统。该系统包括:输入模块、数据处理模块、分类模块;输入模块用于获取原始病历数据;数据处理模块包括数据预处理单元、病人时序序列生成单元,用于将输入模块读入的原始病历数据转换成病人时序序列;分类模块包括模型构建单元、模型预测单元、迁移单元,用于将RNN神经网络与Attention(注意力)机制结合,构建病人分类模型,然后将数据处理模块得到的病人时序序列输入到模型进行训练,最后将训练好的模型迁移到不同数据集上进行病人分类预测。本发明具有通过挖掘电子病历数据,构建病人分类模型,在不同医疗数据集上进行病人死亡风险分类来辅助医生诊疗的优势。

权利要求 :

1.基于RNN神经网络的可迁移病人分类系统,其特征在于,包括:输入模块,数据处理模块,分类模块;

所述输入模块,用于获取医疗数据库中所有原始病历数据;

所述数据处理模块,与输入模块相连,用于对输入模块获取的原始病历数据进行处理,输出病人时序序列;

所述数据处理模块包括:数据预处理单元、病人时序序列生成单元;

所述数据预处理单元,用于对数据库中的病历数据进行筛选,清洗生理特征数据和医疗事件中的噪声数据、缺失数据,对清洗过后的数据按照病人ID进行划分,得到每个病人与住院死亡率预测相关的完整病历信息并进行数据对齐;

所述数据预处理单元包括:数据队列选择器,数据划分器,数据转化器,数据对齐器;

所述数据队列选择器用于从MIMIC-III和EICU数据集中筛选出符合条件的病人队列集,所述病人队列集的选择规则为:选取第一次ICU入住的病人记录,去除年龄小于18周岁的病人记录,去除住院期间有转院记录的病人记录,去除有重复住院的病人记录,去除住院ID为空的病人医疗事件记录,去除住院ID未出现在ICU护理信息表中的病人的医疗事件记录,并通过住院ID修复ICU住院ID为空的病人的医疗事件记录,最终得到符合条件的病人队列;

所述数据划分器将数据队列选择器筛选得到的病人队列以病人ID划分,得到每个病人的住院信息、诊断信息、医疗事件信息;

所述数据转化器用于处理数据划分器输出的每个病人记录中不同字段的取值,数据转化器的处理过程为:首先统一特征的取值单位,进而填补缺失值,再去除噪音值,最后对数值型取值中的字符型数据进行转化或剔除;

所述数据对齐器将经过数据转化器处理过后的病人数据,根据各特征与住院死亡率预测的相关性选择最相关的前17个特征,然后取MIMIC-III和EICU数据的最小特征公共子集,最后将选取的特征公共子集的特征值对齐,特征值对齐过程为:首先统一特征取值单位,进而将特征类型转换成相同类型,最后将特征名称映射成标准医学概念;

所述病人时序序列生成单元将每个病人与住院死亡率预测相关的完整病历信息中的诊断代码和医疗事件ID根据国际标准映射成对应的医疗概念,生成每一阶段的病人状态信息,同时将时间信息添加到病人序列中,生成病人时序序列;

所述病人时序序列生成单元包括:病人状态信息生成器,病人时序序列生成器;

所述病人状态信息生成器用于生成每一次ICU入住的病人状态信息,通过将上述得到病人的住院信息和诊断信息按照病人ID进行合并,得到病人该次住院的状态信息;

所述病人时序序列生成器用于生成病人时序序列,对于医疗事件信息,根据每个医疗事件发生的时间,以小时为单位计算出事件发生时间与ICU入住时间的偏移值,然后将时间偏移值加入医疗事件序列中,将每个病人的所有医疗事件按照时间顺序排列,得到病人时序序列;

所述分类模块包括:模型构建单元、模型预测单元、迁移单元,该模块利用循环神经网络构建病人分类模型,利用所述数据处理模块输出的数据进行病人分类;

所述模型构建单元采用循环神经网络RNN中的门控循环单元,并结合注意力Attention机制,构建住院死亡率预测模型,模型构建按照如下次序进行:(1)编码实现一个自定义Attention层,(2)依次调用Input层,Masking层,Dropout层,BiGRU网络层,GRU网络层和Attention层搭建预测模型;其中BiGRU层用于向量表征学习,Dropout层用于防止模型过拟合,Attention层用于计算每个特征变量的权重值,然后根据每个特征跟死亡率的相关性调整权重,最后对权重和特征值向量相乘后求和输出;

其中,门控神经单元的计算过程为:

rt=σ(Wr·[ht-1,xt])

zt=σ(Wz·[ht-1,xt])

yt=σ(Wo·ht)

其中rt是重置门,zt是更新门, 是新的隐藏状态,ht是当前隐藏状态,yt是当前输出,σ是激活函数, 是不同的权值矩阵,ht-1是上一层的隐藏状态,xt是当前输入,'.'代表点乘,tanh是正切函数,更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多,重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多;

其中,Attention机制层的计算过程为:

St=f(St-1,yt-1,ct)

etj=g(St-1,hj)

其中St是解码器在当前t时刻的状态输出,St-1是解码器在t-1时刻的状态输出,yt-1是t-

1时刻的标签,f代表一个RNN,ct是上下文信息,hj是第j个输入在编码器中的输出,atj是权重,etj是第j个输入数据在t时刻的最终输出,etk是第k个输入数据在t时刻的最终输出,g代表一个前馈神经网络;

所述模型预测单元将数据处理模块得到的病人时序序列输入到模型构建单元构建的模型,利用训练集数据对模型进行训练,并将测试集读入训练好的模型进行病人分类;其中,病人预测分类过程按照如下次序进行:(1)读入数据处理模块输出的病人时序序列,将读入的数据按照7:3划分成训练集和测试集,(2)对训练集中的数据进行正则化和离散化,其中,连续型数据采用z-score进行正则化,类别型数据进行离散化,采用独热编码方式对离散后的类型数据进行编码,最终得到病人时序序列的向量表示,(3)将转化成向量表示的训练集数据输入到模型中进行模型训练,(4)利用训练好的模型,读入测试集数据,进行病人分类预测;

所述迁移单元,利用迁移学习中的微调策略,将模型预测单元中训练好的模型迁移到其他医疗站点的数据集上进行病人分类,迁移包括以下两部分,(1)从EICU迁移到MIMIC-III,将在EICU上训练好的模型浅层固定,并迁移到MIMIC-III数据集上进行病人分类,(2)从MIMIC-III迁移到EICU,将在MIMIC上训练好的模型浅层固定,并迁移到EICU数据集上进行病人分类。

说明书 :

基于RNN神经网络的可迁移病人分类系统

技术领域

[0001] 本发明涉及医疗数据挖掘领域,特别是涉及基于RNN神经网络的可迁移病人分类系统。

背景技术

[0002] 住院死亡率作为衡量医疗服务水平的一个指标,在ICU护理中具有重要意义。对ICU病人进行分类预测,将ICU病人划分成是否为死亡高危病人,有助于针对病人制定合理的护理方案。如果是高危病人,则需要加强医疗防护,降低病人死亡风险。病人分类准确率越高,越有助于医生制定科学合理的治疗方案,从而提高诊疗质量,降低ICU住院死亡率,提升医院医疗服务水平。因此,挖掘电子病历数据,选取合适的特征进行病人住院死亡风险分类是一项有价值的工作。
[0003] 目前,国内外相继出现了一些病人住院死亡分类的系统,但现有的分类系统无法在不同医疗机构的电子病历数据集上进行死亡风险分类,即每个分类系统只适用于单个医院的数据集,对于不同医院的病历数据需要重新开发分类系统,耗时长,资源开销大,极大限制了智慧医疗的发展。

发明内容

[0004] 为了克服上述现有技术的不足,本发明提供了基于RNN神经网络的可迁移病人分类系统。对不同格式的医疗数据进行处理,按照相关国际编码统一命名,统一取值方式。对不同医疗数据集进行数据同分布处理,从而解决同一个分类系统无法在不同医疗数据集上进行分类的问题。分类系统采用RNN神经网络中的双向门控循环单元结合注意力(Attention)机制进行病人分类。
[0005] 本发明所采用的技术方案是:
[0006] 基于RNN神经网络的可迁移病人分类系统,包括:输入模块,数据处理模块,分类模块;
[0007] 所述输入模块,用于获取医疗数据库中所有原始病历数据;
[0008] 所述数据处理模块,与输入模块相连,用于对输入模块获取的原始病历数据进行处理,输出病人时序序列;
[0009] 所述数据处理模块包括:数据预处理单元、病人时序序列生成单元;
[0010] 所述数据预处理单元,用于对数据库中的病历数据进行筛选,清洗生理特征数据和医疗事件中的噪声数据、缺失数据,对清洗过后的数据按照病人ID进行划分,得到每个病人与住院死亡率预测相关的完整病历信息并进行数据对齐;
[0011] 所述数据预处理单元包括:数据队列选择器,数据划分器,数据转化器,数据对齐器;
[0012] 所述数据队列选择器用于从MIMIC-III(Medical Information Mart for Intensive Care III)和EICU(eICU Collaborative Research Database)数据集中筛选出符合条件的病人队列集,所述病人队列集的选择规则为:选取第一次ICU入住的病人记录,去除年龄小于18周岁的病人记录,去除住院期间有转院记录的病人记录,去除有重复住院的病人记录,去除住院ID为空的病人医疗事件记录,去除住院ID未出现在ICU护理信息表中的病人的医疗事件记录,并通过住院ID修复ICU住院ID为空的病人的医疗事件记录,最终得到符合条件的病人队列;
[0013] 所述数据划分器将数据队列选择器筛选得到的病人队列以病人ID划分,得到每个病人的住院信息、诊断信息、医疗事件信息;
[0014] 所述数据转化器用于处理数据划分器输出的每个病人记录中不同字段的取值,数据转化器的处理过程为:首先统一特征的取值单位,进而填补缺失值,再去除噪音值,最后对数值型取值中的字符型数据进行转化或剔除;
[0015] 所述数据对齐器将经过数据转化器处理过后的病人数据,根据各特征与住院死亡率预测的相关性选择最相关的前17个特征,然后取MIMIC-III和EICU数据的最小特征公共子集,最后将选取的特征公共子集的特征值对齐,特征值对齐过程为:首先统一特征取值单位,进而将特征类型转换成相同类型,最后将特征名称映射成标准医学概念;
[0016] 所述病人时序序列生成单元将每个病人与住院死亡率预测相关的完整病历信息中的诊断代码和医疗事件ID根据国际标准映射成对应的医疗概念,生成每一阶段的病人状态信息,同时将时间信息添加到病人序列中,生成病人时序序列;
[0017] 所述病人时序序列生成单元包括:病人状态信息生成器,病人时序序列生成器;
[0018] 所述病人状态信息生成器用于生成每一次ICU入住的病人状态信息,通过将上述得到病人的住院信息和诊断信息按照病人ID进行合并,得到病人该次住院的状态信息;
[0019] 所述病人时序序列生成器用于生成病人时序序列,对于医疗事件信息,根据每个医疗事件发生的时间,以小时为单位计算出事件发生时间与ICU入住时间的偏移值,然后将时间偏移值加入医疗事件序列中,将每个病人的所有医疗事件按照时间顺序排列,得到病人时序序列;
[0020] 所述分类模块包括:模型构建单元、模型预测单元、迁移单元,该模块利用循环神经网络构建病人分类模型,利用所述数据处理模块输出的数据进行病人分类;
[0021] 所述模型构建单元采用循环神经网络(RNN)中的门控循环单元(GRU),并结合注意力 (Attention)机制,构建住院死亡率预测模型,模型构建按照如下次序进行:(1)编码实现一个自定义Attention层,(2)依次调用Input层,Masking层,Dropout层,BiGRU(双向门控循环单元)网络层,GRU(门控神经单元)网络层和Attention层搭建预测模型;其中BiGRU 层用于向量表征学习,Dropout层用于防止模型过拟合,Attention层用于计算每个特征变量的权重值,然后根据每个特征跟死亡率的相关性调整权重,最后对权重和特征值向量相乘后求和输出;
[0022] 其中,门控神经单元(GRU)的计算过程为:
[0023] rt=σ(Wr·[ht-1,xt])
[0024] zt=σ(Wz·[ht-1,xt])
[0025]
[0026]
[0027] yt=σ(Wo·ht)
[0028] 其中rt是重置门,zt是更新门, 是新的隐藏状态,ht是当前隐藏状态,yt是当前输出,σ是激活函数, 是不同的权值矩阵,ht-1是上一层的隐藏状态,xt是当前输入, '.'代表点乘,tanh是正切函数,更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多,重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多;
[0029] 其中,Attention机制层的计算过程为:
[0030] St=f(St-1,yt-1,ct)
[0031]
[0032]
[0033] etj=g(St-1,hj)
[0034] 其中St是解码器在当前t时刻的状态输出,St-1是解码器在t-1时刻的状态输出,yt-1是 t-1时刻的标签,f代表一个RNN,ct是上下文信息,hj是第j个输入在编码器中的输出,atj是权重,etj是第j个输入数据在t时刻的最终输出,etk是第k个输入数据在t时刻的最终输出,g代表一个前馈神经网络;
[0035] 所述模型预测单元将数据处理模块得到的病人时序序列输入到模型构建单元构建的模型,利用训练集数据对模型进行训练,并将测试集读入训练好的模型进行病人分类;其中,病人预测分类过程按照如下次序进行:(1)读入数据处理模块输出的病人时序序列,将读入的数据按照7:3划分成训练集和测试集,(2)对训练集中的数据进行正则化和离散化,其中,连续型数据采用z-score进行正则化,类别型数据进行离散化,采用独热编码方式对离散后的类型数据进行编码,最终得到病人时序序列的向量表示,(3)将转化成向量表示的训练集数据输入到模型中进行模型训练,(4)利用训练好的模型,读入测试集数据,进行病人分类预测;
[0036] 所述迁移单元,利用迁移学习中的微调策略,将模型预测单元中训练好的模型迁移到其他医疗站点的数据集上进行病人分类,迁移包括以下两部分,(1)从EICU迁移到MIMIC-III, 将在EICU上训练好的模型浅层固定,并迁移到MIMIC-III数据集上进行病人分类,(2)从 MIMIC-III迁移到EICU,将在MIMIC上训练好的模型浅层固定,并迁移到EICU数据集上进行病人分类。
[0037] 与现有技术相比,本发明的有益效果是:
[0038] 本发明将选取不同医疗数据集中的公共医疗字段,将其映射成统一的医疗概念,对特征取值对齐,统一不同医疗数据集的数据分布,采用基于循环神经网络中的双向门控循环神经单元,结合注意力机制,学习各项医疗指标与病人住院死亡率的联系,来进行病人死亡风险分类,获得准确率高、可靠的有益结果。
[0039] 本发明提供了基于RNN神经网络的可迁移病人分类系统,能够将不同医疗数据集中的医疗字段映射成相同的医疗概念,对来自不同医院的医疗数据进行数据同分布处理,在不同的医疗数据集上实现病人分类模型的迁移。

附图说明

[0040] 图1为基于RNN神经网络的可迁移病人分类系统组成图。

具体实施方式

[0041] 下面结合附图对本发明进一步说明。
[0042] 图1给出了本发明实施例提出的基于RNN神经网络的可迁移病人分类系统组成图。
[0043] 参照图1,本发明实施例提出的基于RNN神经网络的可迁移病人分类系统,具体包括输入模块,数据处理模块,分类模块;
[0044] 所述输入模块,用于获取医疗数据库中所有原始病历数据;
[0045] 所述数据处理模块,与输入模块相连,用于对输入模块获取的原始病历数据进行处理,输出病人时序序列;
[0046] 所述数据处理模块包括:数据预处理单元、病人时序序列生成单元;
[0047] 所述数据预处理单元,用于对数据库中的病历数据进行筛选,清洗生理特征数据和医疗事件中的噪声数据、缺失数据,对清洗过后的数据按照病人ID进行划分,得到每个病人与住院死亡率预测相关的完整病历信息并进行数据对齐;
[0048] 所述数据预处理单元包括:数据队列选择器,数据划分器,数据转化器,数据对齐器;
[0049] 所述数据队列选择器用于从MIMIC-III(Medical Information Mart for Intensive Care III)和EICU(eICU Collaborative Research Database)数据集中筛选出符合条件的病人队列集,所述病人队列集的选择规则为:选取第一次ICU入住的病人记录,去除年龄小于18周岁的病人记录,去除住院期间有转院记录的病人记录,去除有重复住院的病人记录,去除住院ID为空的病人医疗事件记录,去除住院ID未出现在ICU护理信息表中的病人的医疗事件记录,并通过住院ID修复ICU住院ID为空的病人的医疗事件记录,最终得到符合条件的病人队列;
[0050] 所述数据划分器将数据队列选择器筛选得到的病人队列以病人ID划分,得到每个病人的住院信息、诊断信息、医疗事件信息;
[0051] 所述数据转化器用于处理数据划分器输出的每个病人记录中不同字段的取值,数据转化器的处理过程为:首先统一特征的取值单位,进而填补缺失值,再去除噪音值,最后对数值型取值中的字符型数据进行转化或剔除;
[0052] 所述数据对齐器将经过数据转化器处理过后的病人数据,根据各特征与住院死亡率预测的相关性选择最相关的前17个特征,然后取MIMIC-III和EICU数据的最小特征公共子集,最后将选取的特征公共子集的特征值对齐,特征值对齐过程为:首先统一特征取值单位,进而将特征类型转换成相同类型,最后将特征名称映射成标准医学概念;
[0053] 所述病人时序序列生成单元将每个病人与住院死亡率预测相关的完整病历信息中的诊断代码和医疗事件ID根据国际标准映射成对应的医疗概念,生成每一阶段的病人状态信息,同时将时间信息添加到病人序列中,生成病人时序序列;
[0054] 所述病人时序序列生成单元包括:病人状态信息生成器,病人时序序列生成器;
[0055] 所述病人状态信息生成器用于生成每一次ICU入住的病人状态信息,通过将上述得到病人的住院信息和诊断信息按照病人ID进行合并,得到病人该次住院的状态信息;
[0056] 所述病人时序序列生成器用于生成病人时序序列,对于医疗事件信息,根据每个医疗事件发生的时间,以小时为单位计算出事件发生时间与ICU入住时间的偏移值,然后将时间偏移值加入医疗事件序列中,将每个病人的所有医疗事件按照时间顺序排列,得到病人时序序列;
[0057] 所述分类模块包括:模型构建单元、模型预测单元、迁移单元,该模块利用循环神经网络构建病人分类模型,利用所述数据处理模块输出的数据进行病人分类;
[0058] 所述模型构建单元采用循环神经网络(RNN)中的门控循环单元(GRU),并结合注意力 (Attention)机制,构建住院死亡率预测模型,模型构建按照如下次序进行:(1)编码实现一个自定义Attention层,(2)依次调用Input层,Masking层,Dropout层,BiGRU(双向门控循环单元)网络层,GRU(门控神经单元)网络层和Attention层搭建预测模型;其中BiGRU 层用于向量表征学习,Dropout层用于防止模型过拟合,Attention层用于计算每个特征变量的权重值,然后根据每个特征跟死亡率的相关性调整权重,最后对权重和特征值向量相乘后求和输出;
[0059] 其中,门控神经单元(GRU)的计算过程为:
[0060] rt=σ(Wr·[ht-1,xt])
[0061] zt=σ(Wz·[ht-1,xt])
[0062]
[0063]
[0064] yt=σ(Wo·ht)
[0065] 其中rt是重置门,zt是更新门, 是新的隐藏状态,ht是当前隐藏状态,yt是当前输出,σ是激活函数, 是不同的权值矩阵,ht-1是上一层的隐藏状态,xt是当前输入, '.'代表点乘,tanh是正切函数,更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多,重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多;
[0066] 其中,Attention机制层的计算过程为:
[0067] St=f(St-1,yt-1,ct)
[0068]
[0069]
[0070] etj=g(St-1,hj)
[0071] 其中St是解码器在当前t时刻的状态输出,St-1是解码器在t-1时刻的状态输出,yt-1是 t-1时刻的标签,f代表一个RNN,ct是上下文信息,hj是第j个输入在编码器中的输出,atj是权重,etj是第j个输入数据在t时刻的最终输出,etk是第k个输入数据在t时刻的最终输出,g代表一个前馈神经网络;
[0072] 所述模型预测单元将数据处理模块得到的病人时序序列输入到模型构建单元构建的模型,利用训练集数据对模型进行训练,并将测试集读入训练好的模型进行病人分类;其中,病人预测分类过程按照如下次序进行:(1)读入数据处理模块输出的病人时序序列,将读入的数据按照7:3划分成训练集和测试集,(2)对训练集中的数据进行正则化和离散化,其中,连续型数据采用z-score进行正则化,类别型数据进行离散化,采用独热编码方式对离散后的类型数据进行编码,最终得到病人时序序列的向量表示,(3)将转化成向量表示的训练集数据输入到模型中进行模型训练,(4)利用训练好的模型,读入测试集数据,进行病人分类预测;
[0073] 所述迁移单元,利用迁移学习中的微调策略,将模型预测单元中训练好的模型迁移到其他医疗站点的数据集上进行病人分类,迁移包括以下两部分,(1)从EICU迁移到MIMIC-III, 将在EICU上训练好的模型浅层固定,并迁移到MIMIC-III数据集上进行病人分类,(2)从 MIMIC-III迁移到EICU,将在MIMIC上训练好的模型浅层固定,并迁移到EICU数据集上进行病人分类。
[0074] 以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。