FlyAI直播回放:新冠肺炎疫情趋势预测浅谈
自然语言处理 文本分类
最后更新 2020-04-09 13:17 阅读 10934
最后更新 2020-04-09 13:17
阅读 10934
自然语言处理 文本分类
主要内容
- 数据分析
- 模型选择
- 策略选择
一、数据分析
背景:
新冠肺炎疫情传播在全社会范围内对企业、经济、人民生活造成了巨大影响。随着疫情的持续发展,国家政府鼓励运用大数据、人工智能等技术,在疫情监测分析方面发挥支撑作用。
本赛题为FlyAI抗疫特别赛—新冠肺炎疫情预测,每天上午10点和下午18点将实时更新来自国家各地卫健委及国际官方机构公布的最新疫情数据;预测字段为:中国、中国湖北、韩国、日本、意大利。研究人员可每天提交最新预测模型,对未来30天内的国际疫情趋势进行预测。
数据来源:
国家各地卫健委、国际官方机构
竞赛目的:
预测新冠肺炎疫情的趋势,具体来讲是预测中国、中国湖北、韩国、日本、意大利这五个国家/地区未来30天的疫情趋势,这里具体化为确诊人数。
到这里我们知道了竞赛的目的,接下来就要对竞赛数据进行分析,然后根据数据的特征和分布等去选择合适的模型来拟合数据的特征,最后根据模型学到的规律来预测最终的结果。
竞赛数据:
在这里我们需要先对数据进行分析,后面的模型选择做准备。
首先打开数据集【 COVID_ALL.csv 】查看数据并对数据进行分析。
数据描述:
* `COVID_ALL.csv` 为中文版数据,包含日期、确诊人数、疑似病例、死亡人数、治愈人数等
* 包括所有城市级数据。天津、重庆、上海、北京、香港、台湾、澳门数据为省级,而不是市级
* 包括其他国家数据
* 数据来源:发表的论文、头条、丁香园、中央纪检委官方报告等。
* `省级总和`是当`city`为none的时候
* `国家总和`是当`province` 为none的时候, 建议使用2020-01-14之后的数据建模
* 省级总和的数据可能不等于所有市加和。如果这样的话,以省级数据为准。错误原因可能是时间延迟或未知区域的数据报出
* 确诊人数`confirmed cases` 是累计总和,包括了死亡和治愈病例。所以这个数字不应该下降
* 但是数据结果里的确有一些市或省确诊人数在个别时间点有下降,但是变化不是很大
通过上述对数据的分析,那么这次竞赛可以量化成什么问题呢?
拿我们这次比赛的目的进行分析,从目前的要预测的国家/地区确诊数据的分布来看是不停的增长的,以我们国家为例,全国疫情累计趋势图如下:
看到这副图我们脑海中是不是想到了什么?
有没有感觉特别像一条回归曲线?那么我们是不是可以把任务量化成一个回归问题?
二、模型选择
几种常见的预测模型:
1. 趋势外推预测方法
趋势外推预测方法是根据事物的历史和现实数据,寻求事物随时间推移而发展变化的规律,从而推测其未来状况的一种常用的预测方法。 趋势外推法的假设条件是:
1) 假设事物发展过程没有跳跃式变化,即事物的发展变化是渐进型的。
2) 假设所研究系统的结构、功能等基本保持不变,即假定根据过去资料建立的趋势外推模型能适合未来,能代表未来趋势变化的情况。
由以上两个假设条件可知,趋势外推预测法是事物发展渐进过程的一种统计预测方法。简言之,就是运用一个数学模型,拟合一条趋势线,然后用这个模型外推预测未来时期事物的发展。
趋势外推预测法主要利用描绘散点图的方法(图形识别)和差分法计算进行模型选择。
主要优点是:可以揭示事物发展的未来,并定量地评估其功能特性。
2. 回归预测方法
回归预测方法是根据自变量和因变量之间的相关关系进行预测的。自变量的个数可以一个或多个,根据自变量的个数可分为一元回归预测和多元回归预测。同时根据自变量和因变量的相关关系,分为线性回归预测方法和非线性回归方法。回归问题的学习等价于函数拟合:选择一条函数曲线使其很好的拟合已知数据且能很好的预测未知数据。
3. 组合预测模型
组合预测法是对同一个问题,采用多种预测方法。组合的主要目的是综合利用各种方法所提供的信息,尽可能地提高预测精度。组合预测有 2 种基本形式,一是等权组合, 即各预测方法的预测值按相同的权数组合成新的预测值;二是不等权组合,即赋予不同预测方法的预测值不同的权数。 这 2 种形式的原理和运用方法完全相同,只是权数的取定有所区别。 根据经验,采用不等权组合的组合预测法结果较为准确。
4. BP神经网络预测模型
BP网络(Back-ProPagation Network)又称反向传播神经网络, 通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的神经网络模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。
由于时间关系就不一一进行解读了,大家有时间可以找一些简单数据集进行尝试。
我们FlyAI平台上已经提供了一个样例(https://www.flyai.com/o/COVID-19),大家可以下载样例然后本地运行看下效果。 样例中使用的模型是SEIR模型可以理解为传染病模型
论文地址:https://www.sciencedirect.com/science/article/pii/S0140673620302609
序列区间估计是基于先前对严重急性期的研究呼吸综合征冠状病毒(SARS-CoV)。一个易感暴露感染恢复的融合模型(SEIR)用于模拟各地的流行病。使用马尔可夫链蒙特卡罗方法估计基本的传染数量R0,并用所得的后验平均值和95%可信区间表示间隔。基于由后验分布得到的R0,我们可以使用相同的SEIR模型来估计地区相应暴发规模及发生概率的病例数。
马尔可夫链蒙特卡洛算法,英文名Markov chain Monte Carlo (MCMC) algorithm, 是一个抽样算法,用来从给定的概率分布f(x)中抽样。 f(x)一定要是已知的,即给定一个x , f(x)可以求出。通过构造一个收敛到目标分布函数的马尔可夫链来实现从目标函数中抽样的。
其中S(t)、E(t)、I(t)和R(t)是易感、潜伏、传染和个体迁移时间t;DE和DI是平均潜伏期(假设与潜伏期相同)和感染期(等于序列间隔减去平均潜伏期);R0是基本传染数;z(t)为人畜共患病。
在基线版本中估计初始2019-nCoV的基本传播数量为2.9,首先假设武汉的初始阶段具有相似的传播率(即很少或没有缓解措施)。使用相同的SEIR模型来估计相应地区的疫情暴发规模及发生概率的病例数。
模型中使用了几个假设:
1. 假设潜伏期未发病的人数是疑似病例的4~5倍;
2. 假设疫情的死亡率为2~3%;
3. 假设平均恢复期或平均潜伏期为14天,和非典类似
4. 另外在SEIR模型中,潜伏期的人前期不具有传染性。然而新型冠状肺炎在初期就有较高的传染率。所以后期优化可以考虑这点。
三、策略选择
预测未来疫情走势困难的主要原因:
1. 我们目前对2019-nCoV的了解还有许多未知
- 比如,我们不能正确地检测出所有感染患者:约17% 的病患不会表现出明显症状,但是依旧可以传染病毒给他人
2. 我们无法得到真实的历史数据, 中国官方的数据是低于实际情况的,尤其是武汉市
- 比如说,封城的时候到底检测出了多少病患,我们无从知晓
3. 官方不断颁布的新政策对病情走势影响很大
- 比如,交通限制,强制居家隔离(反而造成大量家庭内部感染),2月5号之后武汉新建立的三所医院开始接受大量病患
- 这些随着时间发展快速变化的正常都对病情控制有很大的影响。而当我们用模型预测未来时,我们的重要前提假设是未来不会有新的政策发生。
模型优化tricks:
1. 参数调整是非常重要的部分
2. 在训练过程中,可以采用各种优化器去优化模型。
3. 可以考虑添加更多的特征数据,或者使用模型融合的方法等,各种方式都可以去进行尝试。
4. 最后就是模型更换,刚开始最好不要尝试差别较大的模型,确定一个基础模型,然后在其基础上进行更改。