一种基于神经网络与SEIR模型的传染病趋势预测方法

文档序号:25863996发布日期:2021-07-13 16:22阅读:509来源:国知局
一种基于神经网络与SEIR模型的传染病趋势预测方法

本发明涉及人工智能预测领域,具体是指一种基于神经网络与seir模型的传染病趋势预测方法。



背景技术:

对传染病疫情的预测,近年来随着机器学习的发展,预测方法可分为未使用机器学习方法的传统方法和使用了机器学习的方法,传统方法使用传统的静态传染病数学模型(如:sir模型、seir模型等)对疫情传播情况进行建模和预测。

在传统的传染病疫情趋势预测方法中,预测模型中的参数无法自适应,从而无法实现动态预测,且模型参数凭借经验设置,人工干预的影响较大;在使用了机器学习的方法中,或是没有考虑到数据中的时序信息,或是没有对疫情中的各类人群进行总体把握,难以对疫情趋势情况进行全面预测。



技术实现要素:

基于以上问题,本发明提供了一种基于神经网络与seir模型的传染病趋势预测方法,该方法可使用较少的训练数据,对传染病疫情趋势进行有效的自动动态实时预测,且预测过程无需人为干预。

为解决以上技术问题,本发明采用的技术方案如下:

一种基于神经网络与seir模型的传染病趋势预测方法,包括如下步骤:

步骤1、获取数据集;

步骤2、数据预处理;

步骤3、构建由病毒传染率预测模块和疫情趋势预测模块构成的疫情趋势预测模型;

步骤4、使用步骤2预处理的数据对疫情趋势预测模型进行训练,同时设置疫情趋势预测模型的损失函数和模型参数更新方式;

步骤5、利用步骤1~步骤4训练好的疫情趋势预测模型对疫情趋势进行预测。

进一步,所述步骤3中,预处理后的数据输入病毒传染率预测模块,并先后经过一个lstm层、一个全连接层和一个非线性变换层,lstm层将含有时序信息的特征输出,随后全连接层对特征进行整合,使用softplus作为激活函数,最后输出预测某时刻确诊患者和潜伏期患者的病毒传染率。

进一步,所述使用softplus作为激活函数的公式为:,其中exp为非线性函数。

进一步,所述步骤3中,预测某时刻确诊患者和潜伏期患者的病毒传染率的公式为:

其中,表示确诊患者的病毒传染率,表示潜伏期患者的病毒传染率,表示时刻确诊患者的病毒传染率,表示时刻潜伏期患者的病毒传染率,表示时刻病毒传染率的缩放比例,表示时刻疫情防控措施的强度,表示时刻潜伏期患者的病毒传染率相较于确诊患者的病毒传染率的倍数。

进一步,所述步骤3中,将病毒传染率预测模块的输出结果输入疫情趋势预测模块,并经过一个seir模型层,输出对疫情趋势的预测。

进一步,所述步骤3中,疫情趋势的预测公式如下:

其中,表示未被感染的人数,表示潜伏期患者人数,表示确诊患者人数,表示病毒移除者人数,表示在时刻时未被感染的人数,表示在时刻时潜伏期患者人数,表示在时刻时确诊患者人数,表示在时刻时病毒移除者人数,表示确诊患者的病毒传染率,表示潜伏期患者的病毒传染率,表示潜伏期患者转化为确诊患者的概率,表示确诊患者转化为病毒移除者的概率,分别表示时刻的预测值,,表示人口总数。

进一步,所述步骤4中,选择平均平方误差作为训练时的损失函数。

进一步,所述步骤4中,模型参数更新方式设置为学习率为0.005,一个完整的训练集为一个学习批次,学习迭代总次数为5000,网络训练过程针对每一个学习批次进行一次参数更新,根据疫情趋势预测模块输出与真实标签计算学习误差,并采用bp算法利用误差对网络参数进行更新,每一次迭代学习完成后,疫情趋势预测模型都会计算当前的预测误差并与历史最小误差作比较,若当前预测误差小于历史最小误差,则保存当前疫情趋势预测模型,并将历史最小误差更新为当前误差,之后继续训练,直到达到学习迭代总次数。

与现有技术相比,本发明的有益效果是:

1.本发明对传染病病毒的传染率及疫情的趋势发展可实现自动动态预测,减少了人为操作,降低人工干预带来的影响;

2.本发明使用了疫情数据中的时序信息,结合历史信息与当前信息综合预测;

3.对疫情中的各类人群进行预测,把握疫情总体发展趋势。

附图说明

图1为本实施例的流程图;

图2为本实施例中疫情趋势预测模型的框架图。

具体实施方式

下面结合附图对本发明作进一步的说明。本发明的实施方式包括但不限于下列实施例。

如图1所示的一种基于神经网络与seir模型的传染病趋势预测方法,包括如下步骤:

步骤1、获取数据集;

步骤2、数据预处理;

步骤3、如图2所示,构建由病毒传染率预测模块和疫情趋势预测模块构成的疫情趋势预测模型;

步骤4、使用步骤2预处理的数据对疫情趋势预测模型进行训练,同时设置疫情趋势预测模型的损失函数和模型参数更新方式;

步骤5、利用步骤1~步骤4训练好的疫情趋势预测模型对疫情趋势进行预测。

进一步的是,步骤1中,数据集包括疑似病例数据、确诊病例数据和移除病例数据。

进一步的是,步骤2中,将第+2天的疑似病例数据、现存确诊病例数据、移除病例数据作为输入,第天的疑似病例数据、现存确诊病例数据、移除病例数据作为对应标签来进行数据整理,共得到62份数据,然后将这62份数据按训练集规模进一步整理出4个数据集:data_10、data_20、data_30、data_40;其中data_10划分规则为:前10份数据为训练集,第11份输入数据为测试集的初始输入数据,后52份数据的标签为测试集的标签;data_20、data_30、data_40划分规则同理。

进一步的是,病毒传染率预测模块构建原理如下:

本实施例中,对确诊患者和潜伏期患者各创建了病毒传染率,同时,病毒传染率后期的变化情况与疫情前期的防控措施和诊治手段息息相关,预测病毒传染率需要根据历史信息与当前信息共同分析,因此病毒传染率的预测是一类时序预测问题,深度循环神经网络中的lstm具有优秀的时序学习能力,能存储过往数据中的信息并将其与当前数据中的信息结合,因此基于lstm与的数学模型设计了病毒传染率预测模块;

本实施例中,病毒传染率预测模块包括一个lstm层、一个全连接层和一个非线性变换层,预处理后的数据输入病毒传染率预测模块后,lstm层将含有时序信息的特征输出,随后全连接层对特征进行整合,使用softplus作为激活函数,公式为,其中exp为非线性函数。以此增强网络的非线性表达能力,最后输出预测某时刻确诊患者和潜伏期患者的病毒传染率;

本实施例中,预测某时刻确诊患者和潜伏期患者的病毒传染率的公式为:

其中,表示确诊患者的病毒传染率,表示潜伏期患者的病毒传染率,表示时刻确诊患者的病毒传染率,表示时刻潜伏期患者的病毒传染率,表示时刻病毒传染率的缩放比例,表示时刻疫情防控措施的强度,表示时刻潜伏期患者的病毒传染率相较于确诊患者的病毒传染率的倍数。

进一步的是,疫情趋势预测模块构建原理如下:

将病毒传染率预测模块的输出结果输入疫情趋势预测模块,并经过一个seir模型层,输出对疫情趋势的预测。

本实施例中,疫情趋势的预测公式如下:

其中,表示未被感染的人数,表示潜伏期患者人数,表示确诊患者人数,表示病毒移除者人数,表示在时刻时未被感染的人数,表示在时刻时潜伏期患者人数,表示在时刻时确诊患者人数,表示在时刻时病毒移除者人数,表示确诊患者的病毒传染率,表示潜伏期患者的病毒传染率,表示潜伏期患者转化为确诊患者的概率,表示确诊患者转化为病毒移除者的概率,分别表示时刻的预测值,,表示人口总数。

进一步的是,所述步骤4中,损失函数用于衡量预测结果与真实情况的差异水平,因此,选择结果直接对模型训练的效果产生影响,本实施例中,选择平均平方误差作为训练时的损失函数,同时考虑到现实中各类数据收集的难易性、准确性以及重要性,对数据分别计算mse,并将这三类mse进行加权和作为网络的整体学习误差,网络的整体学习误差如下:

其中,分别由数据计算出的mse,mse的计算方法如下:

其中,时刻的真实值,时刻的预测值,为总时长。

进一步的是,步骤4中,网络设置,模型参数更新方式设置为学习率为0.005,一个完整的训练集为一个学习批次,学习迭代总次数为5000,网络训练过程针对每一个学习批次进行一次参数更新,根据疫情趋势预测模块输出与真实标签计算学习误差,并采用bp算法利用误差对网络参数进行更新,每一次迭代学习完成后,疫情趋势预测模型都会计算当前的预测误差并与历史最小误差作比较,若当前预测误差小于历史最小误差,则保存当前疫情趋势预测模型,并将历史最小误差更新为当前误差,之后继续训练,直到达到学习迭代总次数。

进一步的是,步骤5中,由于预测是对未来一段时间内的疫情趋势进行预测,所以当前没有任何未来的疫情数据,因而预测时输入疫情趋势预测模型的只有一组初始数据,其包含了连续三天的数据,一天为一个预测周期,疫情趋势预测模型对每一组输入预测出下一天的数据,并将预测结果与输入数据中的后两天数据结合,组成新的输入数据,以此继续预测后一天的疫情情况,直至达到预测的总周期。

如上即为本发明的实施例。上述实施例以及实施例中的具体参数仅是为了清楚表述发明人的发明验证过程,并非用以限制本发明的专利保护范围,本发明的专利保护范围仍然以其权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1