当前位置: 首页 > news >正文

竞赛 深度学习LSTM新冠数据预测

文章目录

  • 0 前言
  • 1 课题简介
  • 2 预测算法
    • 2.1 Logistic回归模型
    • 2.2 基于动力学SEIR模型改进的SEITR模型
    • 2.3 LSTM神经网络模型
  • 3 预测效果
    • 3.1 Logistic回归模型
    • 3.2 SEITR模型
    • 3.3 LSTM神经网络模型
  • 4 结论
  • 5 最后

0 前言

🔥 优质竞赛项目系列,今天要分享的是

🚩 基于深度学习的新冠疫情预测算法研究与实现

该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:4分
  • 工作量:4分
  • 创新点:3分

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate


1 课题简介

新型冠状病毒肺炎(COVID-19,简称“新冠肺炎”)疫情肆虐全球多个国家,本文采用新冠肺炎的时序历史数据,尝试利用Logistic回归模型、SEITR动力学模型、LSTM神经网络等数学模型预测疫情发展趋势与关键节点,对疫情的规模进行定量分析,对疫情原始基数和有效传播率进行科学和可靠的区间估算并进行不同算法的对比分析,为疫情防控中的分析、指挥和决策提供有效依据和指南。

2 预测算法

学长采用了三种算法对于疫情时序数据进行拟合:

  • Logistic回归模型、
  • SEITR动力学模型、
  • LSTM神经网络。

2.1 Logistic回归模型

Logistic函数或Logistic曲线是一种常见的S形函数,它是皮埃尔·弗朗索瓦·韦吕勒在1844或1845年在研究它与人口增长的关系时命名的。该模型广泛应用于生物繁殖和生长过程、人口增长过程模拟,因此也可以在一定程度上对病毒传播和确诊人数增长过程进行拟合。该函数常用的公式如下:

在这里插入图片描述

其中,a、b、K为皮尔模型的参数,估算这三个参数的方法有两类:一类是先估算出a和K,然后推算b值,如Fisher法;另一类是同时估算出参数a、b、K,如倒数总和法。结合疫情发生的实际场景,y为累计病例人数(例/天);t为时间(天);K、a、b为模型参数。从模型可知K为疫情规模,即累计病例最大值;a、b为控制传染速度的参数。

在这里插入图片描述

Logistic回归模型其算法思想来源于,当一个物种迁入到一个新生态系统中后,其数量会发生变化。假设该物种的起始数量小于环境的最大容纳量,则数量会增长。该物种在此生态系统中有天敌、食物、空间等资源也不足(非理想环境),则增长函数满足逻辑斯谛方程,图像呈S形,此方程是描述在资源有限的条件下种群增长规律的一个最佳数学模型。

其求参过程如下:根据实际统计的数据
y0,设定初始值K,计算y;用y’和t进行线性回归,得到参数a,b;根据K、a、b按上面的公式计算不同时间的预测值,并同步计算预测值与实际值之间的误差平方和;K值由原值加上步长重复计算,直到误差平方和到达最小,即最小二乘法寻优。此时的K值就是要找的最优K值。

2.2 基于动力学SEIR模型改进的SEITR模型

SEIR模型是一种动力学模型,是传染病预测最为常用的模型之一,所研究的传染病有一定的潜伏期,与病人接触过的健康人并不马上患病,而是成为病原体的携带者。与SIR模型相比,SEIR模型进一步考虑了与患者接触过的人中仅一部分具有传染性的因素,使疾病的传播周期更长。该模型将人口样本分为四类,分别为:易感者(S)、潜伏者(E)、传染者(I)和康复者(R),四类人群依次以一定比率进行转化或死亡,之间关系如下图所示:

在这里插入图片描述

其中四类人群具体如下:
1、S 类人群,易感者 (Susceptible),指未得病者,但缺乏免疫能力,与感染者接触后容易受到感染;
2、E 类人群,暴露者 (Exposed),指接触过感染者,但暂无能力传染给其他人的人,对潜伏期长的传染病适用;
3、I 类人群,感病者 (Infectious),指染上传染病的人,可以传播给 S 类成员,将其变为 E 类或 I 类成员;
4、R 类人群,康复者 (Recovered),指被隔离或因病愈而具有免疫力的人。如免疫期有限,R 类成员可以重新变为 S 类。
据此:可以得出SEIR模型的传染病动力学微分方程:

在这里插入图片描述

其中,ρ代表传染者单位时间接触易感者数量;β代表每名传染者与易感者接触传染病毒概率;μ代表单位时间死亡几率;ε代表单位时间潜伏者转变为传染者的几率;γ代表单位时间传染者痊愈的几率。

SEITR是基于SEIR模型改进的模型,在原有模型的基础上增加了修正的参数:
“T”:已被感染且正处于接受治疗时期的人群,主要特征表现为已被感染,已过潜伏期,但不会进行传染,且正在被治疗。
同时也将I人群严格定义为被感染,已过潜伏期但未被医院收治无法接受治疗的人群。
δ,表示I变为T的速率,主要受医院接诊速率及收治能力影响,也受发病后及时就医的时间影响。本文采用SEITR模型进行分析;

2.3 LSTM神经网络模型

长短期记忆人工神经网络(Long-Short Term Memory,
LSTM)是一种时间递归神经网络(RNN),由于独特的设计结构,LSTM适合于处理和预测时间序列中间隔和延迟非常长的重要事件。LSTM的拓扑图:

在这里插入图片描述

其公式如下:

在这里插入图片描述

3 预测效果

3.1 Logistic回归模型

定义logistic回归函数:def logistic_increase_function(t,K,P0,r):t0=11#r 0.05/0.55/0.65r = 0.45# t:time   t0:initial time    P0:initial_value    K:capacity  r:increase_rateexp_value=np.exp(r*(t-t0))return (K*exp_value*P0)/(K+(exp_value-1)*P0)

采用国内1月11日到1月27日的累计确诊病例数据作为原始数据,采用最小二乘法拟合逻辑斯蒂曲线,最后经过对逻辑斯蒂模型中R值(增长速率,到达K值的速度)的拟合调整,发现在0.45附近得到的曲线比较贴合我国1月至2月疫情实际情况。
预测参数:

K:capacity P0:initial_value r:increase_rate t:time[4.63653383e+04 3.69197450e+00 1.00000000e+00]

拟合图像:

在这里插入图片描述

将拟合结果进行推广预测,得到2月9日的预测值在4万左右,与实际情况十分贴近,也证明了模型的一定可靠性;将本模型推广,进行全球范围内典型新冠肺炎爆发国家的疫情拟合与未来疫情预测,同时通过R值的大小,可以反应出该国疫情应对的有效程度。

对美国的当前确诊数据进行拟合:设置t0 = 11,r = 0.05

预测参数:

K:capacity P0:initial_value r:increase_rate t:time  
[2.81881286e+06 7.54187927e+03 1.00000000e+00]

预测结果图像:

在这里插入图片描述

对德国的当前确诊数据进行拟合:设置t0 = 11,r = 0.094

预测参数:

K:capacity P0:initial_value r:increase_rate t:time  
[1.80914161e+05 1.64581650e+02 1.00000000e+00]

预测结果图像:

在这里插入图片描述

3.2 SEITR模型

以下雪学长使用SEITR模型对美国疫情基本得到控制的时间进行预测:

定义SEIR函数:
def funcSEIR(inivalue,_):Y = np.zeros(5)X = inivalueY[0] = - (beta * X[0] *( X[2]+X[1])) / N				# 易感个体变化Y[1] = (beta * X[0] *( X[2]+X[1])) / N - X[1] / Te 	# 潜伏个体变化Y[2] = X[1] / Te - δ * X[2]								# 感染未住院Y[3] = gamma * X[4]										# 治愈个体变化Y[4] = δ* X[2] - gamma* X[4]								#治疗中个体变化
return Y

根据当前数值预估,可设置初始参数如下:

  • N =330000000 # N为人群总数(美国人口大致为3.3亿)
  • beta = 0.19 # β为传染率系数(美国实际应该略高)
  • gamma = 0.15 # gamma为恢复率系数
  • δ = 0.3 #δ为受到治疗系数(收治率)
  • Te = 14 # Te为疾病潜伏期
  • I_0 = 1 # I_0为感染未住院的初始人数
  • E_0 = 0 # E_0为潜伏者的初始人数
  • R_0 = 0 # R_0为治愈者的初始人数
  • T_0 = 0 #T_0为治疗中的初始人数
  • S_0 = N - I_0 - E_0 - R_0 - T_0 # S_0为易感者的初始人数
  • T = 250 # T为传播时间

拟合结果:

在这里插入图片描述

本次预测得到的结果是今年秋季美国的疫情能够基本得到控制。

3.3 LSTM神经网络模型

这里采用了一个简单的LSTM模型,使用pytorch进行训练,对于世界疫情中确诊数据进行预测:model = Sequential()
model.add(LSTM(200, activation='relu', input_shape=(n_input, n_features)))
model.add(Dropout(0.15))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
model.fit_generator(generator_conf,epochs=150)

对后一日的结果进行预测并绘图:

在这里插入图片描述
在这里插入图片描述

4 结论

总体来说,三种模型都能对新冠肺炎的时序数据作出一定的拟合,Logistic模型对于疫情控制措施没有较大改变的区域,或者是疫情已经初步得到控制的区域拟合还是效果相对较好的,但对于改变了疫情控制措施的地区来说还是过于粗糙,会造成较大的偏移;

LSTM在短期拟合数据较好,长期来看会有较大的偏移产生;

和其他流行病传染模型相比,SEIR
模型所研究的传染病具有一定的潜伏期,即与感染者接触过的易染者并不马上患病,而是成为病原体的携带者,本身具有一定的传染概率,该传播模式和2019-nCOV
更为吻合。

另外,我们对模型的假设条件是,美国的0号病人出现在今年1月11日,但是目前的报告陆续显示早在2019年美国就有社区性传播,因此模型对于此类具有较大不确定性地区的的可靠性大大下降。由于具体的时间目前国际上无法追溯,所以进一步的研究很难继续进行。

在SEIR模型中,还有以下几点需要注意:

1)传染率系数与人与人之间的社交距离和社交频率息息相关,美国在疫情早期未及时向民众宣传保持社交距离和戴口罩、减少出行的建议,导致传染率系数会比参数设置的更高;

2)治疗系数与当地医疗水平、卫生设施数量、医疗物资等息息相关,疫情中期各州的医疗设备全面告急,医护人员感染率上升,同时中产阶级及以下家庭因为无法支付高昂医疗费选择在家隔离,错过最佳治疗期,使得治疗系数要低于已经有雷神山火神山的武汉对应时期的治疗系数;
另外,SEIR模型在尝试同时拟合现有病例(正在接受治疗人群)和治愈人数曲线时,发现无法做到相对同时拟合的比较贴合实际的结果。参数设置对拟合结果的影响非常大,而模型参数的选择需要结合美国实际疫情情况才能推算,目前使用的计算手段过于粗糙。

参考资料

[1] 蔡洁等,基于SEIR模型对武汉市新型冠状病毒肺炎疫情发展趋势预测,山东医药
[2] 金启轩,中国新冠肺炎疫情预测建模与理性评估, 统计与决策
[3] 应用数学:群体免疫与SEIR模型,http://www.dataguru.cn/article-15472-1.html

5 最后

🧿 更多资料, 项目分享:

https://gitee.com/dancheng-senior/postgraduate

相关文章:

竞赛 深度学习LSTM新冠数据预测

文章目录 0 前言1 课题简介2 预测算法2.1 Logistic回归模型2.2 基于动力学SEIR模型改进的SEITR模型2.3 LSTM神经网络模型 3 预测效果3.1 Logistic回归模型3.2 SEITR模型3.3 LSTM神经网络模型 4 结论5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 …...

Spark入门

目录 Spark入门: 概述历史概述SparkCore:RDDSparkSQL:SparkStreamingSpark内核调优 Spark概述 回顾: Hadoop HDFS存储 MR分析计算 YARN调度 Hadoop的MR计算中的shuffle需要落盘,速度不够快。 Spark是一种基于内存的分析计算引擎。 历史…...

react–antd 实现TreeSelect树形选择组件,实现点开一层调一次接口

效果图: 注意: 当选择“否”,开始调接口,不要把点击调接口写在TreeSelect组件上,这样会导致问题出现,没有层级了 部分代码:...

android 固定进度环形刷新效果

android 固定进度无限旋转的环形效果 效果图 效果视频: Record_2023-10-13-17-17-19[1] Activity 中使用 val rotation: ObjectAnimator ObjectAnimator.ofFloat(progressBar, "rotation", 0f, 360f) rotation.duration 000 // 旋转持续时间为2秒 rot…...

python jieba 词性标注 中文词性分类 nlp jieba.posseg

参考:https://blog.csdn.net/yellow_python/article/details/83991967 from jieba.posseg import dt dt.word_tag_tab[好看] >>> vflag_en2cn { ‘a’: ‘形容词’, ‘ad’: ‘副形词’, ‘ag’: ‘形语素’, ‘an’: ‘名形词’, ‘b’: ‘区别词’, ‘…...

LeetCode 每日一题 2023/10/9-2023/10/15

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 10/9 2578. 最小和分割10/10 2731. 移动机器人10/11 2512. 奖励最顶尖的 K 名学生10/12 2562. 找出数组的串联值10/13 1488. 避免洪水泛滥10/14 136. 只出现一次的数字10/1…...

相似性搜索:第 3 部分--混合倒排文件索引和产品量化

接续前文:相似性搜索:第 2 部分:产品量化 SImilarity 搜索是一个问题,给定一个查询的目标是在所有数据库文档中找到与其最相似的文档。 一、介绍 在数据科学中,相似性搜索经常出现在NLP领域,搜索引擎或推…...

小程序使用uni.createAnimation只执行一次的问题

思路&#xff1a; 在页面创建的时候&#xff0c;创建一个临时动画对象调用 step() 来表示一组动画完成通过动画实例的export方法导出动画数据传递给组件的animation属性还原动画页面卸载的时候&#xff0c;清除动画数据 <template><view class"content"&g…...

win10取消ie浏览器自动跳转edge浏览器

建议大家看完整篇文章再作操作 随着windows10 日渐更新&#xff0c;各种不同的操作&#xff0c;规避IE浏览器跳转Edge浏览器的问题 算了&#xff0c;找了台云机装的server 有自带的IE 1.&#xff08;失败&#xff09;思路 协助Edge浏览器 管理员身份打开 PowerShell 一般e…...

目录启示:使用 use 关键字为命名空间内的元素建立非限定名称

文章目录 参考环境三种名称非限定名称限定名称完全限定名称举个栗子 useuse 关键字use ... as .. 命名冲突真假美猴王两个世界 参考 项目描述搜索引擎Bing、GoogleAI 大模型文心一言、通义千问、讯飞星火认知大模型、ChatGPTPHP 官方PHP ManualPHP 官方language.namespaces.ra…...

Go语言介绍与安装

介绍与安装 本教程介绍了 Go&#xff0c;并讨论了选择 Go 相对于其他编程语言的优势。我们还将学习如何在Windows 中安装 Go。 介绍 Go也称为Golang&#xff0c;是由 Google 开发的一种开源、编译型、静态类型的编程语言。 Go创造背后的关键人物是Rob Pike、 Ken Thompson和…...

常用傅里叶变换表

傅里叶展开 傅里叶变换 傅里叶逆变换 时域信号 弧频域信号 线性变换 时域平移 频域平移 伸缩变换 微分性质 逆变换的微分性质 卷积定理 原函数变换结果 单位阶跃函数&#xff1a; 符号函数&#xff1a; 矩形函数&#xff1a; 辛格函数&#xff1a;...

生活中的视音频技术

生活中的视音频技术 平时我们打开电脑中自己存电影的目录的话&#xff0c;一般都会如下图所示&#xff0c;一大堆五花八门的电影。&#xff08;其实专业的影视爱好者一概会把影视文件分门别类的&#xff0c;但我比较懒&#xff0c;一股脑把电影放在了一起&#xff09; 因为下载…...

一种用于肽图分析的烷化剂,Desthiobiotin-Iodoacetamide

中文名&#xff1a;脱硫生物素-碘乙酰胺 英文名&#xff1a;Desthiobiotin-Iodoacetamide 化学式&#xff1a;C14H25IN4O3 分子量&#xff1a;424.28 外观&#xff1a;固体/粉末 规格&#xff1a;10mg、25mg、50mg等&#xff08;接受各种规格的定制服务&#xff0c;具体可…...

【(数据结构) —— 顺序表的应用-通讯录的实现】

&#xff08;数据结构&#xff09;—— 顺序表的应用-通讯录的实现 一.通讯录的功能介绍1.基于动态顺序表实现通讯录(1). 功能要求(2).重要思考 二. 通讯录的代码实现1.通讯录的底层结构(顺序表)(1)思路展示(2)底层代码实现(顺序表&#xff09; 2.通讯录上层代码实现(通讯录结构…...

macbook磁盘清理免费教程分享

笔记本电脑在是我们工作和生活中重要组成部分&#xff0c;磁盘清理是常有的事&#xff0c;而macbook作为其中的代表之一&#xff0c;也越来越受到人们的青睐。然而&#xff0c;如何进行macbook磁盘清理&#xff0c;也事许多人都会遇到的问题&#xff0c;特别是被提示“磁盘已满…...

cartographer_ros数据加载与处理

node_main.cc 坐标系的读取通过tf_bufferautonode类是cartographer_ros接收传感器数据&#xff0c;并传输到cartographer里&#xff0c;同时还会发布map&#xff0c;轨迹等node_options数据传给两个地方&#xff0c;一个是map_builder进行slam操作&#xff0c;一个是node做数据…...

设计模式-7种结构型模式

适配器模式&#xff1a; 将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同调用。 桥接模式&#xff1a; 将类的抽象部分和他的实现部分分离开来。是他们可以独立的变化。 它是用组合关系代替继承关系来实现&#xff0c;从而降低了抽象和实现这两…...

华为李鹏:加速5G商业正循环,拥抱更繁荣的5.5G(5G-A)

2023年10月10日&#xff0c;在华为主办的第十四届全球移动宽带论坛上&#xff0c;华为高级副总裁、运营商BG总裁李鹏面向来自全球的运营商和产业伙伴&#xff0c;提出抓住网络需求和趋势的力量——“面向后天的业务&#xff0c;积极规划明天的网络&#xff0c;加速5G商业正循环…...

Marin说PCB之CoilcraftBourns POC 电感的性能对比

十一小长假本来是一件美好事情。可是天有不测风云&#xff0c;小编我却有祸兮来了。本来是公司的硬件同事强哥要回以色列了&#xff0c;最近他们国家那边都在打仗&#xff0c;强哥本着舍身为国的精神回国抗战去了。小编我就想着在他回国之前搞了篮球比赛送别一下他呢&#xff0…...

聊聊Maven的依赖传递、依赖管理、依赖作用域

1. 依赖传递 在Maven中&#xff0c;依赖是会传递的&#xff0c;假如在业务项目中引入了spring-boot-starter-web依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>…...

centos6/7 SOCKS5 堆溢出漏洞修复(RPM方式)curl 8.4 CVE-2023-38545 CVE-2023-38546

引用 https://darkdark.top/update-curl.html centos6 rpm 升级包下载&#xff1a;https://download.csdn.net/download/sinat_24092079/88425840 yum update libcurl-8.4.0-1.el6.1.x86_64.rpm curl-8.4.0-1.el6.1.x86_64.rpmcentos7 rpm 升级包下载&#xff1a;https://down…...

C#,数值计算——数据建模Proposal的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Proposal { public Normaldev gau { get; set; } null; private double logstep { get; set; } public Proposal(int ranseed, double lstep) { this.gau…...

如何使用命令生成动态链接库.dll文件(保姆级教学)

如何使用命令生成动态链接库.dll文件 /*** file 如何使用命令生成动态链接库.dll文件* author jUicE_g2R(qq:3406291309)* * brief 教学演示* tool visual studio2022&#xff08;2019也适用&#xff09;* * copyright 2023.10* COPYR…...

Qt之模块介绍

Qt提供了很多功能模块&#xff0c;我们需要知道的是这些模块有些加入了标准库&#xff0c;有一些并没有加入到标准库。至于为什么没有加入到标准库通过chatgpt得到的答案如下&#xff1a; Qt 是一个强大的跨平台 C 框架&#xff0c;它包括了很多核心模块和功能&#xff0c;以支…...

Socks5代理和代理IP

在数字时代&#xff0c;网络工程师必须不断掌握新技术&#xff0c;以解决跨界电商、爬虫数据采集、出海业务扩展、网络安全保护以及游戏性能优化等各种技术挑战。本文将深入探讨Socks5代理和代理IP技术&#xff0c;它们在各个领域中的应用&#xff0c;如何为网络工程师提供了强…...

计算机指令、机器码

目录 背景 在软硬件接口中&#xff0c;CPU 帮我们做了什么事&#xff1f; 从编译到汇编&#xff0c;代码怎么变成机器码&#xff1f; 解析指令和机器码 总结延伸 背景 上大学的时候&#xff0c;我们系里教 C 语言程序设计的老师说&#xff0c;他们当年学写程序的时候&…...

MyLife - Docker安装Consul

Docker安装Consul 个人觉得像consul之类的基础设施在线上环境直接物理机安装使用可能会好些。但是在开发测试环境用docker容器还是比较方便的。这里学习下docker安装consul使用。 1. Consul 镜像库地址 Consul 镜像库地址&#xff1a;https://hub.docker.com/r/hashicorp/consu…...

Leetcode刷题笔记--Hot61-70

1--课程表&#xff08;207&#xff09; 主要思路&#xff1a; 用 in 记录每一门课程剩余的先修课程个数&#xff0c;当剩余先修课程个数为0时&#xff0c;将该课程加入到队列q中。 每修队列q中的课程&#xff0c;以该课程作为先修课程的所有课程&#xff0c;其剩余先修课程个数…...

python特别篇—github基本操作手册

一、开始使用 1.1 “Hello world” 1.1.1 github介绍 GitHub是一个基于Git版本控制系统的代码托管平台。它提供了一个在线的代码仓库&#xff0c;使开发者可以将自己的代码存储在云端&#xff0c;并与其他开发者进行协作。GitHub不仅仅是一个代码托管平台&#xff0c;还提供了…...