一种基于机器学习的脓毒症早期预测方法与流程

专利2022-06-29  167


本发明属于医疗数据挖掘领域,具体涉及一种基于机器学习的脓毒症早期预测方法。



背景技术:

脓毒症是一种对生命安全有着严重威胁的疾病,脓毒症是因感染导致的全身炎症反应综合症,是icu患者常见高危并发症和致死的主要原因之一。全球中每年估计有3000万人患有脓毒症,因脓毒致死人数超过600万人,脓毒症的治疗费用非常高,且面临的风险也非常大。因发病率、致死率高以及昂贵的治疗费用,脓毒症已经成为全球高度关注的公共医疗问题。脓毒症的临床诊断定义从1.0发展到3.0,也在不断变化更新。目前临床上最新定义脓毒症-3是欧洲重症学会于2016年提出的。临床上对脓毒症的发病规律研究已取得一定进展,但脓毒症的发病机制复杂,涉及变量因素较多,诊断准确率还有待提高。有研究表明,脓毒症的早期发现和及时的抗生素治疗对于改善脓毒症患者的结局至关重要,每延迟一小时治疗都会使死亡率增加4%-8%。尽早地发现可能发展成脓毒症的患者并对其给与及时治疗,同时探究与脓毒症发生有着密切关系的关键影响因素对于改善病人预后有着具有重要的研究价值和意义。目前的研究大都从医学角度出发,大部分使用的是基于统计分析以及简单的逻辑回归模型,很少有使用机器学习算法针对患者进行脓毒症的早期预测。现有研究表明脓毒症是远期死亡的主要原因。患者入icu后的24小时内是非常关键的时刻,大多数病情转变发生在此期间。基于24小时内的临床数据对患者进行脓毒症的早期诊断具有较高的研究价值和意义。此外由于医疗信息数据的隐私性,很多研究的文献数据都是基于特定医院,难以共享,所以导致研究的方法和结果不具备可重复性和可对比性。随着基于数据驱动的智能医疗的到来,越来越多的医务人员也期望利用机器学习的方法开展对医疗数据的挖掘,进而帮助其提高对疾病的深层认知和诊断效率。



技术实现要素:

为了解决现有技术中icu患者脓毒症临床诊断困难、准确率不高的问题,本发明提出了一种基于机器学习的脓毒症的早期预测方法,该方法基于机器学习和数据挖掘流程对icu患者进行脓毒症的早期预测。本方法通过提取患者的电子病历记录的多项检查变量,对数据进行预处理后,使用改进的深度森林算法构建预测模型,输出病人罹患脓毒症的概率,对脓毒症患者进行早期预测和识别,具有预测准确度高的有益效果,同时探究与脓毒症发生有着密切关系的关键影响因素。

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

一种基于机器学习的脓毒症早期预测方法,包括以下步骤:

步骤1,首先明确诊断任务,从病患的电子病历记录或者医疗数据集中提取入icu后24小时内的记录的多个预测特征变量;

步骤2,提取到数据以后,因数据存在不同程度的缺失、异常的情况,需要对数据进行预处理,预处理包括变量筛选、缺失值填充、异常值处理、特征提取的操作;

步骤3,数据预处理之后,输入到构建的预测模型中,使用基于改进的深度森林算法构建了预测模型;

步骤4,对预测模型进行训练,通过训练找到最理想的参数,不断调优,使得模型效果稳定且最佳;

步骤5,模型经过训练之后,对新的病患进行脓毒症早期预测,同时输出每个特征变量的重要性度量值。

进一步的,所述步骤1中提取的预测特征变量包括生命体征变量;实验室测量指标;人口统计学信息。

进一步的,所述步骤2中数据预处理包括:

变量筛选,设置缺失率阈值,去除了缺失率过高的变量,同时还进行了低方差过滤变量选择,即计算每一个变量所对应的方差,设定阈值,变量方差低于阈值则过滤,选择剔除零方差特征,方差为0,表示变量取值没任何变化,该变量对于模型而言不具有区分性;

缺失值填充,使用missforest模型预测的方法对缺失值进行了填充,missforest是一种非参数的缺失值填补方法,利用算法模型对缺失值进行预测填充;

异常值处理,处理方法是使用的6σ原则,其中:σ表示的是数据的标准差,在一般的3σ上扩大了上下限范围,如果病人的某项数据在所属数据集中与平均值的偏差超过6倍标准差,即数据值在[u-6σ—u 6σ]之外,其中:u表示的数据集的平均值,则分别用最小和最大界限值替代;

特征提取,对特征变量进行扩展,医学评分系统判断病人的严重程度基于最值计算,从最大值、最小值和平均值三方面进行特征扩展。

进一步的,所述步骤3中的构建模型,使用的是改进的深度森林算法模型构建了预测模型;

所述改进的深度森林算法模型的具体步骤为:

步骤(1):选择随机森林和xgboost两种基于树的模型算法作为每层的基学习器,每一层选用2个相同的随机森林算法模型,2个相同的xgboost,作为四个基学习器预测模型。每个模型采用k折交叉验证对数据进行训练后,其中:k=10,输出每个森林的概率向量xi;

步骤(2):在k折训练之后,同时计算训练数据的预测结果的准确度,正则归一化后作为模型的权重参数,记为w′i,计算公式为:

其中:wi表示的是在10折训练之后,第i个森林算法模型训练数据的预测结果的准确度;w′i表示第i个模型的预测概率的权重;

步骤(3):对每层所使用的四个基学习器预测模型的预测概率做加权融合,最后输出的概率向量记为xprob,然后将每层输出的最后概率向量xprob和原始特征相连输入到下一层,xprob的计算公式为:

其中,xi表示的是每层采用k折交叉验证对数据进行训练,k=10,第i个森林输出的预测概率向量。

步骤(4):下一层重复步骤(1)-(3),继续进行训练,直到训练精度不再提高,则自动停止,输出最后一层的加权概率作为预测结果。

进一步的,所述步骤4中的训练调优中的模型参数,训练预测的算法模型每一层选用2个相同的随机森林,2个相同的xgboost,每个森林都包含100颗树;每层采用10折交叉验证方式对数据进行训练,训练集和测试集数据按照0.8/0.2进行划分;评估指标使用的是预测准确度,如果训练中的下一层的预测准确度不再提升,则终止训练。

进一步的,所述步骤5中输出的每个特征变量的重要性度量值是在模型训练过程中同时产生的,每层最后输出的特征重要性为f′n,计算方法为:

f′n′=w′i*fi

其中,n表示是第n层,i表示的是每层的第i个森林算法模型,fi表示的是第i个森林模型10折训练以后的取平均的所有特征重要性;

最后选择输出最后一层的特征重要性,进而得到每个特征变量的重要性度量值。

本发明相比与现有技术,具有以下有益效果:

本发明针对提取的患者入icu后的24小时内的医疗数据,进行了包括变量筛选,缺失值填充,异常值处理,以及特征提取等预处理之后,基于对脓毒症早期预测的任务,构建了改进的深度森林算法模型,不同于原始深度森林模型架构,直接使用上一层每个森林预测的概率叠加,我们在每个森林输出类分布概率以后,直接对其进行加权平均,权重参数由训练模型的准确度决定。这样不但可以减少维度,而且只保留关键提取的信息作为新特征进行预测,训练速度也大大加快。此外,我们着重对特征重要性进行打分,每层都输出各自的训练模型中特征的贡献,最后计算所有特征的整体重要性分值,得到对脓毒症的早期预测有着重要影响的预警因子。使用机器学习的方法对脓毒症的预测分类精度更高,可以辅助医生判断病情,对可能发生脓毒症的患者密切关注,并及时救治,改善icu患者的预后。

附图说明

图1是本发明的整体流程图;

图2是sofa评分表;

图3是级联森林结构图;

图4是本发明改进的深度森林结构图;

图5是特征重要性度量值排序示意图。

具体实施方式

为了更好的说明本技术方案,下面结合实施例做出更详细的说明。

一种基于机器学习的脓毒症早期预测方法,包括以下步骤:

步骤1:对脓毒症进行早期预测,是一项预测分类任务,首先需要获取数据。数据是研究的基石,对于不同的疾病问题,需要有对应的数据作为支撑。icu病患所做的检查非常多,数据记录也非常纷杂,因此需要从病患的电子病历记录或者医疗数据集中提取所需的多个预测特征变量,主要提取的是入icu后24小时内的临床数据;

1.1医学评分系统中常使用的预测特征变量

在临床上,针对脓毒症的诊断主要使用医学评分系统如sofa评分等对病人的病情进行判断,这些评分系统中常使用的变量主要包含三类:生命体征变量(如心率、脉搏、收缩血压、动脉压)、实验室测量指标(如肌酐、直接胆红素、血清葡萄糖、乳酸盐)、人口统计学信息(如年龄、体重、住院时长、住院类型)。如图2所示,为sofa评分表格中需要用到的变量。为了对比机器学习方法和传统临床诊断的性能优劣,他人研究中经常提取和使用医学评分系统中出现的变量,便于对比。

步骤2:提取数据之后,在输入到预测模型之前,需要先对数据进行预处理,包括对数据的变量筛选,缺失值填充,异常值处理以及特征提取等操作,提高数据质量。

一般来说,原始数据集质量不高,存在很多问题,不能直接使用,需要进行一定的预处理。现实场景中的数据往往存在很多不足之处,从医院系统中导出的数由于人为错误、设备误差或者收集过程中出现漏洞等多种原因导致数据失真。icu患者的数据比较稀疏,存在着大量的缺失值和一些异常值。因为提取的变量中测量频率不一致,比如一些实验室化验指标如血培养/白细胞数可能需要1~5天不等的时间才能获取结果,有些变量实时采样如心率/呼吸率等,也有些可能几小时或者一天才采样一次。所以在进行预测之前,我们需要对数据进行预处理。数据处理的结果是对各种脏数据进行对应方式的处理,得到可用的、标准一致的数据。数据预处理主要包含:

变量筛选,设置缺失率阈值,去除了缺失率过高的变量。同时还进行了低方差过滤变量选择,即计算每一个变量所对应的方差,设定阈值,变量方差低于阈值则过滤。一般会选择剔除零方差特征,方差为0,表示变量取值没任何变化,该变量对于模型而言不具有区分性。

异常值处理,因为医疗数据异常的比较难以界定,处理方法是使用的6σ原则,其中:σ表示的是数据的标准差,在一般的3σ上扩大了上下限范围,如果病人的某项数据在所属数据集中与平均值的偏差超过6倍标准差,即数据值在[u-6σ—u 6σ]之外,其中:u表示的数据集的平均值,则分别用最小和最大界限值替代;

缺失值填充,使用missforest模型预测的方法对缺失值进行了填充。missforest是一种非参数的缺失值填补方法,利用算法模型对缺失值进行预测填充。算法原理将先将已知数据列当做特征,缺失变量列作为标签。接着将标签中有数据的作为训练集,缺失标签的作为测试集,使用随机森林算法训练并预测和更新缺失值,最后将预测的数据填充继续迭代用来预测其他缺失数据。

特征提取,对变量进行扩展,常用医学评分系统判断病人的严重程度一般都是基于最值计算,为此从最大值、最小值和平均值三方面进行特征扩展。

步骤3:数据预处理之后,输入到构建的预测模型中,使用基于改进的深度森林算法构建了预测模型。在使用机器学习算法进行医疗数据挖掘的研究中,需要根据疾病诊断学习任务的不同,选择或者构建不同的算法,以达到最佳的预测效果。在机器学习中,有各类算法可供选择,如逻辑回归、支持向量机、k近邻等,或者基于基础算法进行的各种改进算法。随着神经网络的不断发展,迁移学习/增强学习等深度学习方法也开始被广泛使用,且效果突出。深度森林算法较之深度神经网络有较好的竞争性,因其超参数少、训练效率高,并且在小规模数据集上也表现优异。在智能医疗辅助诊断中,也有不少的研究使用深度学习方法获得比较高的准确率,但由于神经网络的不可解释性,类似“黑盒”结构,医生对其信任度不高。而树模型因为具备很好的可展示型,可依据决策树内部的分裂路径解释原因。

3.1深度森林模型

多粒度级联森林算法(multi-grainedcascadeforest,gcforest),也称作深度森林算法,是2017年由周志华教授等人提出。这是一种多层分类器,每层由多个基分类器集成而来。gcforest结构和深度神经网络类似,通过层级学习表征能力。深度神经网络因其强大的表征学习能力,特征自动转换和复杂模型等特点被广泛应用,但同时也存在着计算复杂度高、参数过多以及缺乏可解释性等问题。gcforest的提出为探索神经网络以外的深度算法提供了新思路。gcforest算法由两部分组成:第一部分是多粒度扫描,用来提取数据特征;第二部分是级联森林,用来迭代训练提高分类结果;这两部分可以结合起来使用,也可以单独使用。神经网络的基本组成是一个个小的神经元,而gcforest基本组成单位是一个森林,森林又是由多个决策树构成的集成模型,所以也可把深度森林看作是一种“集成的集成”模型。图3是gcforest模型的级联森林结构图。

3.2改进的深度森林模型

gcforest实际是一种深度森林算法的框架,需要根据具体的适应场景进行修改。在gcforest算法框架基础上,提出了一种改进的深度森林算法,用于脓毒症预测。改进后的深度森林算法结构如图4所示。不同于原始gcforest模型架构,直接使用上一层每个森林预测的概率叠加,我们在每个森林输出类分布概率以后,直接对其进行加权平均,权重参数由训练模型的准确度决定。每个森林模型的权重参数w′i的计算方式为:

其中,wi表示的是在10折训练之后,第i个森林算法模型训练数据的预测结果的准确度;

然后对四个模型的预测概率做加权融合,最后输出的概率向量记为xprob,计算公式为:

其中,xi表示的是每层采用k折(k=10)交叉验证对数据进行训练,第i个森林输出的预测概率向量。

将最后概率向量xprob和原始特征相连输入到下一层,直到模型训练结束,输出最后一层的加权概率作为预测结果。

对所有森林模型预测的概率求加权平均之后,不但可以减少维度,而且只保留关键提取的信息作为新特征进行预测,训练速度也大大加快。此外,还可以在训练过程中同时输出每层的特征重要性,最后求均值即可,同样可以使用模型权重参数w′i来辅助计算。

步骤4,对模型进行训练,根据训练数据规模的大小,模型训练的时间长短不一。模型训练的本质是一个参数最优化的过程。通过训练找到最理想的超参数和各个基模型的参数,然后根据评估指标不断调优,使得模型效果稳定且最佳。训练预测的算法模型每一层选用2个相同的随机森林,2个相同的xgboost,每个森林都包含100颗树。每层采用k折(k=10)交叉验证对数据进行训练,训练集和测试集数据按照0.8/0.2进行划分。评估指标使用的是预测准确度,如果训练中的下一层的预测准确度不再提升,则终止训练。

步骤5,模型经过训练之后,可对新的病患进行脓毒症预测输出,模型预测输出的患病的概率,概率值在0-1之间,将预测概率大于等于0.5的病人分类为1,即认为其可能会产生脓毒症。反之小于0.5的预测概率的分类为0,表示病人不会发展成脓毒症。同时模型训练结束之后,还可输出每个特征变量的重要性度量值。每层最后输出的特征重要性为f′n,计算方法为:

f′n=w′i*fi

其中,n表示是第n层,i表示的是每层的第i个森林算法模型,fi表示的是第i个森林模型10折训练以后的取平均的所有特征重要性。

最后输出最后一层的特征重要性。如图5所示,横坐标表示的是特征的重要性度量值,纵坐标为对应的特征变量。横条长度越长,代表数值越大。所有的特征重要性相加之和为1。

本发明首先从电子病历记录或者医疗数据集中提取患者的各类预测变量,主要提取患者的入icu后24小时内记录的生命体征变量、实验室测量指标、人口统计学信息三大类的多维变量信息。然后对提取的数据进行预处理,包括对数据的变量筛选、异常值处理、缺失值填充以及特征提取等操作,完成数据的清洗和处理。再将处理好的数据输入到构建的预测模型中,预测模型使用的是改进的深度森林算法模型。经过训练和参数调优后,预测模型可以对新的病患进行预测,输入预测病人和训练模型中对应变量的数据,则可对此病患进行脓毒症的早期预测。此外,训练好的算法模型还可以对其特征变量进行排序,输出对脓毒症早期预测有重要影响的预警因子。预警因子的得分越高表明和脓毒症的发生关系愈加密切。采用本发明的技术方案,可以辅助医生进行临床决策,提高对病人病情的预测准确度。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。


技术特征:

1.一种基于机器学习的脓毒症早期预测方法,其特征在于,包括以下步骤:

步骤1,首先明确诊断任务,从病患的电子病历记录或者医疗数据集中提取入icu后24小时内的记录的多个预测特征变量;

步骤2,提取到数据以后,因数据存在不同程度的缺失、异常的情况,需要对数据进行预处理,预处理包括变量筛选、缺失值填充、异常值处理、特征提取的操作;

步骤3,数据预处理之后,输入到构建的预测模型中,使用基于改进的深度森林算法构建了预测模型;

步骤4,对预测模型进行训练,通过训练找到最理想的参数,不断调优,使得模型效果稳定且最佳;

步骤5,模型经过训练之后,对新的病患进行脓毒症预测,同时输出每个特征变量的重要性度量值。

2.根据权利要求1所述基于机器学习的脓毒症早期预测方法,其特征在于:所述步骤1中提取的预测特征变量包括生命体征变量;实验室测量指标;人口统计学信息。

3.根据权利要求1所述基于机器学习的脓毒症早期预测方法,其特征在于:所述步骤2中数据预处理包括:

变量筛选,设置缺失率阈值,去除了缺失率过高的变量,同时还进行了低方差过滤变量选择,即计算每一个变量所对应的方差,设定阈值,变量方差低于阈值则过滤,选择剔除零方差特征,方差为0,表示变量取值没任何变化,该变量对于模型而言不具有区分性;

缺失值填充,使用missforest模型预测的方法对缺失值进行了填充,missforest是一种非参数的缺失值填补方法,利用算法模型对缺失值进行预测填充;

异常值处理,处理方法是使用的6σ原则,其中:σ表示的是数据的标准差,若病人的某项数据在所属数据集中与平均值的偏差超过6倍标准差,即数据值在[u-6σ—u 6σ]之外,其中:u表示的数据集的平均值,则分别用最小和最大界限值替代;

特征提取,对特征变量进行扩展,医学评分系统判断病人的严重程度基于最值计算,从最大值、最小值和平均值三方面进行特征扩展。

4.根据权利要求1所述基于机器学习的脓毒症早期预测方法,其特征在于:所述步骤3中的构建模型,使用的是改进的深度森林算法模型构建了预测模型;

所述改进的深度森林算法模型的具体步骤为:

步骤(1):选择随机森林和xgboost两种基于树的模型算法作为每层的基学习器,每一层选用2个相同的随机森林算法模型,2个相同的xgboost,作为四个基学习器预测模型;每个模型采用k折交叉验证对数据进行训练后,其中:k=10,输出每个森林的概率向量xi;

步骤(2):在k折训练之后,同时计算训练数据的预测结果的准确度,正则归一化后作为模型的权重参数,记为w′i,计算公式为:

其中:wi表示的是在10折训练之后,第i个森林算法模型训练数据的预测结果的准确度;w′i表示第i个模型的预测概率的权重;

步骤(3):对每层所使用的四个基学习器预测模型的预测概率做加权融合,最后输出的概率向量记为xprob,然后将每层输出的最后概率向量xprob和原始特征相连输入到下一层,xprob的计算公式为:

xprob=∑w′i*xi

其中,xi表示的是每层采用k折交叉验证对数据进行训练,k=10,第i个森林输出的预测概率向量。

步骤(4):下一层重复步骤(1)-(3),继续进行训练,直到训练精度不再提高,则自动停止,输出最后一层的加权概率作为预测结果。

5.根据权利要求1所述基于机器学习的脓毒症的早期预测方法,其特征在于:所述步骤4中的训练调优中的模型参数,训练预测的算法模型每一层选用2个相同的随机森林,2个相同的xgboost,每个森林都包含100颗树;每层采用10折交叉验证方式对数据进行训练,训练集和测试集数据按照0.8/0.2进行划分;评估指标使用的是预测准确度,如果训练中的下一层的预测准确度不再提升,则终止训练。

6.根据权利要求1所述基于机器学习的脓毒症早期预测方法,其特征在于:所述步骤5中输出的每个特征变量的重要性度量值是在模型训练过程中同时产生的,每层最后输出的特征重要性为f′n,计算方法为:

f′n=w′i*fi

其中,n表示是第n层,i表示的是每层的第i个森林算法模型,fi表示的是第i个森林模型10折训练以后的取平均的所有特征重要性;

最后选择输出最后一层的特征重要性,进而得到每个特征变量的重要性度量值。

技术总结
本发明公开了一种基于机器学习的脓毒症早期预测方法。首先,利用电子病历记录提取患者入ICU后24小时内的临床数据,包括人口统计学(如年龄,性别)、生命体征变量(如心率、收缩压)以及实验室测量指标(如肌酐、血小板计数)等多个变量,对数据进行预处理后,输入到改进的深度森林算法模型中进行训练,训练调优后,输出病人的患病概率。同时算法模型还可以对其特征变量进行排序,输出对早期预测脓毒症有重要影响的预警因子。最后,将需要预测的病人的对应变量输入到训练好的模型中,则可对此病患进行脓毒症的早期预测。本发明基于机器学习的方法对脓毒症进行早期预测,可以辅助医生进行临床决策,提高预测准确度。

技术研发人员:付梦莎;袁家斌
受保护的技术使用者:南京航空航天大学
技术研发日:2020.01.21
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-34628.html

最新回复(0)