疾病预测方法及装置、计算机装置及可读存储介质与流程

文档序号:15643442发布日期:2018-10-12 22:18阅读:227来源:国知局

本发明涉及预测技术领域,具体涉及一种疾病预测方法及装置、计算机装置和计算机可读存储介质。



背景技术:

随着全球经济一体化进程的加快,经济与交流活动增加,人群流动日益频繁,为疾病的传播与爆发提供了有利环境,公共卫生健康问题越来越严峻。同时,社会与自然环境也发生着变化,环境污染、自然灾害等影响公众健康事件的增多也增加了突发公共卫生事件爆发的可能性。

如何能早期识别到疾病突发公共卫生事件,及时发出预警,尽早采取相应的控制措施,将突发公共卫生事件造成的损失降到最低,是公共卫生领域长期以来关注的焦点,也是卫生应急工作的重要内容。突发公共卫生事件预警,是通过对有关数据的收集,整理、分析和整合,运用计算机、网络、通讯等现代先进的技术,对事件的征兆进行监测、识别、诊断与评价,及时报警,告知有关部门和公众做好相关的应对和准备工作,及时采取有效的防控措施,尽可能阻止或减缓突发事件的发生或减少事件的危害。

突发公共卫生事件预警中的一个重要工作是疾病预测,即根据历史的疾病监测数据(即病患数据)预测未来的疾病监测数据。随着机器学习技术的发展,越来越多的机器学习方法应用在疾病预测上。然而,应用于疾病预测的传统的机器学习往往需要人为去定义特征集,然后从定义好的特征集中搜寻最好的特征组合,且效果往往都不够好,从而影响了疾病预测的准确率。



技术实现要素:

鉴于以上内容,有必要提出一种疾病预测方法及装置、计算机装置和计算机可读存储介质,其可以实现高准确率的疾病预测。

本申请的第一方面提供一种疾病预测方法,所述方法包括:

获取疾病监测数据,所述疾病监测数据是时间序列数据;

获取所述疾病监测数据相关的天气数据,所述天气数据是与所述疾病监测数据对应的时间序列数据;

获取所述疾病监测数据相关的舆情数据,所述舆情数据是与所述疾病监测数据对应的时间序列数据;

对所述疾病监测数据、天气数据和舆情数据进行预处理;

构建多层长短时记忆递归神经网络模型,即多层lstm模型;

从预处理后的所述疾病监测数据、天气数据和舆情数据中获取训练数据和验证数据,利用所述训练数据和所述验证数据对所述多层lstm模型进行训练和性能验证,得到优化后的多层lstm模型;

从预处理后的所述疾病监测数据、天气数据和舆情数据中获取预测时间点之前的疾病监测数据、天气数据和舆情数据,将所述预测时间点之前的疾病监测数据、天气数据和舆情数据输入所述优化后的多层lstm模型,得到所述预测时间点的疾病预测结果。

另一种可能的实现方式中,所述从网页中抓取天气数据包括:

生成面向天气信息网站的api接口的种子url以及后续的url;

向所述天气信息网站的api接口发送http请求,请求访问所述api接口;

对所述天气信息网站提供的数据内容进行分析和识别,以查看所述数据内容;

判断所述数据内容是否为预定信息内容;

若所述数据内容为预定信息内容,则抓取所述数据内容;

将抓取的数据内容作为所述天气数据保存到本地。

另一种可能的实现方式中,所述舆情数据包括:

特定词的搜索次数;或者

特定舆情网站包含特定词的舆情信息的数量。

另一种可能的实现方式中,所述对所述疾病监测数据、天气数据和舆情数据进行预处理包括:

填补所述疾病监测数据、天气数据和舆情数据中的缺失值;

修正对所述疾病监测数据、天气数据和舆情数据中的异常值;

对所述疾病监测数据、天气数据和舆情数据进行数据格式转换。

另一种可能的实现方式中,所述天气数据包括湿度、气温、气压、降水量、水汽压、风速、风向、日照时数。

另一种可能的实现方式中,所述多层lstm模型包括两层lstm单元层和一层全连接层,第一层lstm单元层用于对输入数据构造特征,得到第一隐藏层单元,第二层lstm单元层用于对所述第一隐藏层单元进行组合,得到第二隐藏层单元,所述全连接层用于根据所述第二隐藏层单元得到预测结果,每个lstm单元层包括遗忘门、输入门、输出门,所述遗忘门、输入门、输出门控制所述lstm单元层的记忆状态。

另一种可能的实现方式中,所述多层lstm模型训练过程中使用的损失函数为均方差,使用的算法为rmsprop算法。

本申请的第二方面提供一种疾病预测装置,所述装置包括:

第一获取单元,用于获取疾病监测数据,所述疾病监测数据是时间序列数据;

第二获取单元,用于获取所述疾病监测数据相关的天气数据,所述天气数据是与所述疾病监测数据对应的时间序列数据;

第三获取单元,用于获取所述疾病监测数据相关的舆情数据,所述舆情数据是与所述疾病监测数据对应的时间序列数据;

预处理单元,用于对所述疾病监测数据、天气数据和舆情数据进行预处理;

构建单元,用于构建多层长短时记忆递归神经网络模型,即多层lstm模型;

优化单元,用于从预处理后的所述疾病监测数据、天气数据和舆情数据中获取训练数据和验证数据,利用所述训练数据和所述验证数据对所述多层lstm模型进行训练和性能验证,得到优化后的多层lstm模型;

预测单元,用于从预处理后的所述疾病监测数据、天气数据和舆情数据中获取预测时间点之前的疾病监测数据、天气数据和舆情数据,将所述预测时间点之前的疾病监测数据、天气数据和舆情数据输入所述优化后的多层lstm模型,得到所述预测时间点的疾病预测结果。

本申请的第三方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述疾病预测方法。

本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述疾病预测方法。

本发明获取疾病监测数据,所述疾病监测数据是时间序列数据;获取所述疾病监测数据相关的天气数据,所述天气数据是与所述疾病监测数据对应的时间序列数据;获取所述疾病监测数据相关的舆情数据,所述舆情数据是与所述疾病监测数据对应的时间序列数据;对所述疾病监测数据、天气数据和舆情数据进行预处理;构建多层长短时记忆递归神经网络模型,即多层lstm模型;从预处理后的所述疾病监测数据、天气数据和舆情数据中获取训练数据和验证数据,利用所述训练数据和所述验证数据对所述多层lstm模型进行训练和性能验证,得到优化后的多层lstm模型;从预处理后的所述疾病监测数据、天气数据和舆情数据中获取预测时间点之前的疾病监测数据、天气数据和舆情数据,将所述预测时间点之前的疾病监测数据、天气数据和舆情数据输入所述优化后的多层lstm模型,得到所述预测时间点的疾病预测结果。

本发明通过多层lstm模型对患病数据进行预测。lstm模型可以从数据中直接去提取知识,构造出有利于预测的特征向量,提高了预测精度。同时,与传统的rnn(recurrentneuralnetworks,循环神经网络)模型相比,lstm模型解决了在时序数据量过大情况下引起的长期依赖时梯度消失的问题。并且,本发明将天气数据、舆情数据作为影响因素在加入到疾病预测中,提高了疾病预测的准确性。因此,本发明实现了高准确率的疾病预测。

附图说明

图1是本发明实施例一提供的疾病预测方法的流程图。

图2是本发明实施例二提供的疾病预测方法中获取疾病监测数据相关的天气数据的细化流程图。

图3是本发明实施例三提供的疾病预测装置的结构图。

图4是本发明实施例四提供的疾病预测装置中第二获取单元的细化结构图。

图5是本发明实施例五提供的计算机装置的示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

优选地,本发明的疾病预测方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述计算机装置可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机装置可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

实施例一

图1是本发明实施例一提供的疾病预测方法的流程图。所述疾病预测方法应用于计算机装置。所述疾病预测方法利用长短时记忆递归神经网络模型对疾病监测数据进行预测,获得高准确率的疾病预测结果。

如图1所示,所述疾病预测方法具体包括以下步骤:

步骤101,获取疾病监测数据,所述疾病监测数据是时间序列数据。

所述疾病监测数据可以包括流感、手足口病、麻疹、流行性腮腺炎等疾病的患病数据。

可以在预设区域(例如省市、地区)建立由多个监测点组成的疾病监测网络,从所述监测点获取疾病监测数据,由所述疾病监测数据构成疾病监测的时间序列数据。可以选择医疗机构、学校和幼托机构、药店等作为监测点,分别对相应的目标人群进行疾病监测及数据采集。可以选择满足预设条件的场所作为监测点。所述预设条件可以包括人数、规模等。例如,选择学生人数达到预设数量的学校和幼托机构作为监控点。又如,选择规模(例如以日营业额统计)达到预设规模的药店作为监控点。再如,选择规模(例如以日就医人数统计)达到预设规模的医院作为监控点。

不同时间的疾病监测数据构成疾病监测的时间序列数据。例如,可以将以日为单位采集到的疾病监测数据构成疾病监测的时间序列数据。或者,可以将以周为单位采集到的疾病监测数据构成疾病监测的时间序列数据。

医疗机构(主要包括医院)是最能捕捉疾病早期暴发预兆的场所,是开展疾病监测的首选。可以根据病人就诊情况,获取疾病监测数据。

一部分疾病人会自行去药店购药来缓解早期症状,因此,可以根据药店的药品销售情况,获取疾病监测数据。

儿童和青少年是疾病的高危人群以及疾病传播过程中的重要环节,也应该加强对该人群的监测。学校和幼托机构是监测儿童和青少年疾病发病情况的较佳场所。可以根据学校和幼托机构的儿童和青少年的请假情况,获得疾病监测数据。

因此,本发明中主要选择医疗机构、学校和幼托机构、药店这三类场所进行疾病监测数据的采集。当然,上述对数据源的选择,并不能限制在另外的实施方案中增加或替换其他重点关注人群或场所作为监测的数据源。例如,可以将宾馆纳入疾病监测范围,获取宾馆入住人员的疾病监测数据。

根据需要,可以取任意一类监控点(例如医疗机构)采集的疾病监测数据构成疾病监测的时间序列数据。例如,可以取医院采集的疾病监测数据构成疾病监测的时间序列数据。或者,可以结合多类监控点采集的疾病监测数据构成疾病监测的时间序列数据。例如,可以以医院采集的疾病监测数据为主,以药店参加的疾病监测数据作为补充,构成疾病监测的时间序列数据。

疾病监测数据可以包括疾病的就诊数、就诊率、发病数、发病率等患病数据。例如,可以从医疗机构(例如医院)获取疾病(例如流感)的每日就诊数,将疾病(例如流感)的每日就诊数作为疾病监测数据。又如,可以从学校获取学生的疾病(例如流感)的每日发病数,将疾病(例如流感)的每日发病数作为疾病监测数据。

步骤102,获取所述疾病监测数据相关的天气数据,所述天气数据是与所述疾病监测数据对应的时间序列数据。

疾病监测数据相关的天气数据是指对疾病监测数据(即疾病的患病数据)有影响的天气数据。可以预先分析不同天气数据对所述疾病监测数据的影响,根据分析结果确定对所述疾病监测数据有影响或影响较大的天气数据。

所述天气数据可以包括湿度、气温、气压、降水量、水汽压、风速、风向、日照时数。在一具体实施例中,所述天气数据可以包括每日的平均气温、平均气压、最高气温、最低气温、平均相对湿度、最小相对湿度、降水量、平均风速、日照时数、平均水汽压。

所述天气数据与所述疾病监测数据对应的时间段相同,并且,所述天气数据与所述疾病监测数据的统计周期(例如每日、每周)相同。例如,所述疾病监测数据为2018年1-2月的每日就诊数,所述天气数据为2018年1-2月的每日天气数据。又如,所述疾病监测数据为2017年1-12月的每周就诊数,所述天气数据为2017年1-12月的每周天气数据(例如周平均气温)。

可以从天气信息网站(例如中国天气网、新浪天气、搜狐天气等)抓取所述天气数据,以提高天气数据的可靠性。可以理解,可以从任意网页中抓取所述天气数据。

可以抓取预定区域的天气数据。所述预定区域可以包括省、市、地区等。例如,抓取深圳市的天气数据。

可以抓取预定时间的天气数据。所述预定时间可以包括年、月、日等。例如,抓取2018年1-2月的每日天气数据。

可以通过网络爬虫抓取所述天气数据。网络爬虫是一个可以自动提取网页数据信息内容的应用程序。网络爬虫通常是从一个或者是若干个初始网页的url(也称种子url)开始,获取初始网页的url,依照特定的算法和策略(例如深度优先搜索策略),在对网页进行抓取的过程中,不断地从当前的网页中抽取新的url放入到相应的队列中,直到满足停止条件为止。url为uniformresourcelocator的缩写,即统一资源定位符。

可以利用天气信息网站开放的api接口(例如中国天气网开放的api接口)抓取所述天气数据。api是应用程序接口(applicationinterface)的缩写,通过api接口可以实现计算机软件之间的相互通信。天气信息网站开放的api接口可以返回json格式或者xml格式的数据。

在一具体实施例中,可以利用天气信息网站开放的api接口,通过网络爬虫抓取所述天气数据。利用天气信息网站开放的api接口,通过网络爬虫抓取所述天气数据的具体过程参见图2。

步骤103,获取所述疾病监测数据相关的舆情数据,所述舆情数据是与所述疾病监测数据对应的时间序列数据。

疾病监测数据相关的舆情数据是指体现所述疾病监测数据的舆情数据。举例来说,当疾病(例如流感)进入流行期时,随着患病人数增多,很多人会上网搜索疾病相关的词语(例如流感、达菲、高烧等特定词),这些词语的搜索量大大增加。又如,当疾病(例如流感)进入流行期时,随着患病人数增多,新闻、论坛、博客、贴吧等舆情网站上发布的疾病相关内容(例如患病信息、治疗信息等)增多。因此,可以利用疾病监测数据相关的舆情数据辅助进行疾病预测。

所述舆情数据可以包括特定词的搜索次数。例如,可以统计预设搜索引擎对特定词的搜索次数(例如特定地区预设定搜索引擎对特定词的每日搜索次数)。

所述舆情数据还可以包括特定舆情网站(例如新闻、论坛、博客、贴吧等)包含特定词的舆情信息的数量。

所述特定词是与预测的疾病相关的词语,例如,所述特定词是疾病症状相关的词语,当预测的疾病为流感时,所述特定词可以包括:发病突然、高烧、畏寒、头痛、无力、喉咙发炎、肌肉酸痛、干咳等。再如,当预测的疾病为手足口时,所述特定词可以包括:口痛、厌食、低热、手部小疱疹、口部小溃疡等。

所述舆情数据与所述疾病监测数据对应的时间段相同,并且,所述舆情数据与所述疾病监测的统计周期(例如每日、每周)相同。例如,所述疾病监测数据为2018年1-2月的每日就诊数,则所述舆情数据为2018年1-2月的每日舆情数据(例如特定词日搜索次数)。又如,所述疾病监测数据为2017年1-12月的每周就诊数,则所述舆情数据为2017年1-12月的每周舆情数据(例如特定词周搜索次数)。

可以理解,步骤101-103可以以任意顺序执行,也可以并行执行。

步骤104,对所述疾病监测数据、天气数据和舆情数据进行预处理。

疾病监测数据、天气数据和舆情数据的预处理可以包括异常数据处理。对疾病监测数据、天气数据和舆情数据进行异常数据处理,是为了修正所述疾病监测数据、天气数据和舆情数据中的异常数据,提高疾病预测的可靠性和准确性。

所述异常数据处理可以包括填补所述疾病监测数据、天气数据和舆情数据中的缺失值。可以通过缺失值前后数据的平均值或中值来对缺失值进行填充,或者,可以通过回归拟合的方法对缺失值进行填充。

所述异常数据处理还可以包括修正所述疾病监测数据、天气数据和舆情数据中的异常值。所述异常值是明显偏离其他数据的数值。可以采用插值法修正所述异常值。

疾病监测数据、天气数据和舆情数据的预处理还可以包括对所述疾病监测数据、天气数据和舆情数据进行数据格式转换。例如,对疾病监测数据、天气数据和舆情数据进行标准化处理,使得疾病监测数据、天气数据和舆情数据具有一致性的标准格式,以适合作为lstm模型的输入数据。

步骤105,构建多层长短时记忆递归神经网络(longshort-termmemoryrecurrentneuralnetwork)模型,即多层lstm模型。所述多层lstm模型包括两层lstm单元层和一层全连接层,第一层lstm单元层用于对输入数据(例如所述疾病监测数据、天气数据和舆情数据构成的输入数据)构造特征,得到第一隐藏层单元,所述第二层lstm单元层用于对所述第一隐藏层单元进行组合,得到第二隐藏层单元,所述全连接层用于根据所述第二隐藏层单元得到预测结果(例如疾病预测结果),每个lstm单元层包括遗忘门、输入门、输出门,所述遗忘门、输入门、输出门控制所述lstm单元层的记忆状态。

lstm模型是一种时间递归神经网络模型。相对于传统的循环神经网络(recurrentneuralnetwork,rnn)模型,lstm模型通过在lstm单元层构建一些门来存储信息,因此其在模型训练的过程中,梯度不会很快消失。

本方法使用的多层lstm模型包括两层lstm单元层和一层全连接层,第一层lstm单元层用于对输入数据(例如疾病监测数据、天气数据和舆情数据构成的输入数据)构造特征,得到第一隐藏层单元,所述第二层lstm单元层用于对所述第一隐藏层单元进行组合,得到第二隐藏层单元。所述全连接层根据所述第二隐藏层单元得到预测值。所述第一隐藏层单元为局部特征,所述第二隐藏层单元为全局特征。也就是说,第一层lstm单元层用于提取局部信息,第二层lstm单元层用于结合局部特征得到全局特征,所述全连接层用于根据全局特征得到预测结果(例如疾病预测结果)。

lstm单元层包括遗忘门、输入门、输出门,所述遗忘门、输入门、输出门控制lstm单元层的记忆状态。输入门决定是否接收当前时刻的输入。输出门决定是否是否输出记忆状态。

在一实施例中,lstm单元层的遗忘门ft,输入门it、输出门ot、记忆状态ct和隐藏层单元ht可以计算如下:

ft=σ(wfxt+ufht-1+bf);

it=σ(wixt+uiht-1+bi);

ot=σ(woxt+uoht-1+bo);

其中,wf、uf、bf为遗忘门的参数,wi、ui、bi为输入门的参数,wo、uo、bo为输出门的参数,wc、uc、bc为记忆单元的参数。

在另一实施例中,lstm单元层的遗忘门ft,输入门it、输出门ot、记忆状态ct和隐藏层单元ht可以计算如下:

ft=σ(wfxt+ufct-1+bf);

it=σ(wixt+uict-1+bi);

ot=σ(woxt+uoct-1+bo);

步骤106,从预处理后的所述疾病监测数据、天气数据和舆情数据中获取训练数据和验证数据,利用所述训练数据和所述验证数据对所述多层lstm模型进行训练和性能验证,得到优化后的多层lstm模型。

可以从预处理后的所述疾病监测数据、天气数据和舆情数据中截取时间序列数据,构成所述训练数据和所述验证数据。

所述多层lstm模型的输入数据是一个预设维度(例如1000维)的向量。可以从截取的时间序列数据中将每个时间点对应的预处理后的疾病监测数据、天气数据和舆情数据构造一个预设维度的向量,按照时间顺序,将各个时间点对应的向量依次输入所述多层lstm模型,用来对所述多层lstm模型进行训练或验证。

例如,从预处理后的所述疾病监测数据、天气数据和舆情数据中截取用于训练所述多层lstm模型的第一时间序列数据;从截取的第一时间序列数据中将每个时间点对应的预处理后的疾病监测数据、天气数据和舆情数据构造一个预设维度的第一向量,按照时间顺序,将各个时间点对应的第一向量依次输入所述多层lstm模型,用于对所述多层lstm模型进行训练。从预处理后的所述疾病监测数据、天气数据和舆情数据中截取用于验证所述多层lstm模型的第二时间序列数据;从截取的第二时间序列数据中将每个时间点对应的预处理后的疾病监测数据、天气数据和舆情数据构造一个预设维度的第二向量,按照时间顺序,将各个时间点对应的第二向量依次输入所述多层lstm模型,用于对所述多层lstm模型进行验证。

在对所述多层lstm模型进行训练时,所述多层lstm模型的损失函数可以定义为均方差,调整所述多层lstm模型的参数,使所述均方差取得最小值。训练的过程可以采用rmsprop算法。rmsprop是一种改进的随机梯度下降算法。均方差与rmsprop算法是现有技术,此处不再赘述。

步骤107,从预处理后的所述疾病监测数据、天气数据和舆情数据中获取预测时间点之前的疾病监测数据、天气数据和舆情数据,将所述预测时间点之前的疾病监测数据、天气数据和舆情数据输入所述优化后的多层lstm模型,得到所述预测时间点的疾病预测结果。

获取的预测时间点之前的疾病监测数据、天气数据和舆情数据为时间序列数据。可以从获取的预测时间点之前的疾病监测数据、天气数据和舆情数据中,将每个时间点对应的预处理后的疾病监测数据、天气数据和舆情数据构造一个预设维度的第三向量,按照时间顺序,将各个时间点对应的第三向量依次输入所述多层lstm模型,以对预测时间点进行疾病预测。

在进行疾病预测时,从初始时间点开始,优化后的多层lstm模型通过当前时间点的输入数据及前一时间点的隐藏层单元逐层组合得到当前时间点的各隐藏层单元,根据当前时间点的隐藏层单元得到当前时间点的预测值,并根据时间顺序,不断递归获取下一时间点的隐藏层单元以及预测值,直到得到所述给定时间点的预测值。

实施例一通过多层lstm模型对患病数据进行预测。lstm模型可以从数据中直接去提取知识,构造出有利于预测的特征向量,提高了预测精度。同时,与传统的rnn模型相比,lstm模型解决了在时序数据量过大情况下引起的长期依赖时梯度消失的问题。并且,实施例一将天气数据、舆情数据作为影响因素在加入到疾病预测中,提高了疾病预测的准确性。

实施例二

图2是本发明实施例二提供的疾病预测方法中获取疾病监测数据相关的天气数据(即图1中步骤102)的细化流程图。

可以利用天气信息网站开放的api接口,通过网络爬虫抓取所述天气数据。参阅图2所示,具体可以包括以下步骤:

步骤201,生成面向所述天气信息网站的api接口的种子url以及后续的url。

种子url是网络爬虫进行一切工作的基础和前提。种子url可以是一个也可以是多个。

可以对天气信息网站的url的结构特点进行分析,根据url的结构特点得到后续的url。

步骤202,向所述天气信息网站的api接口发送http请求,请求访问所述api接口。

可以以get方式向所述天气信息网站的api接口发送http请求。当天气信息网站同意获取其提供的天气数据时,返回http响应,以告知可以进行获取天气数据的操作。

步骤203,对所述天气信息网站提供的数据内容进行分析和识别,以查看所述数据内容。

天气信息网站提供特定格式的数据内容,需要对天气信息网站提供的特定格式的数据内容进行分析和识别,来查看所述数据内容。例如,所述天气信息网站的api接口提供的数据格式为json格式。json是一种数据交换格式,使用了类似于c语言的语法习惯。对该json格式的数据内容进行分析和识别,来查看所述数据内容。

步骤204,判断所述数据内容是否为预定信息内容。

为了得到特定的天气数据,需要判断所述数据内容是否为预定信息内容。若所述数据内容是否不是预定信息内容,则舍弃该数据内容,否则执行下一步骤。

步骤205,若所述数据内容为预定信息内容,则抓取所述数据内容。

数据抓取的最终目的是将网络数据内容抓取到本地。对于json格式的数据内容,在抓取所述数据内容时可以采用深度优先搜索策略进行状态空间搜索。

步骤206,将抓取的数据内容作为所述天气数据保存到本地。

可以在计算设备上创建数据库,将所述天气数据保存到所述数据库中。

传统的网络爬虫都是首先设定一个或者多个入口url,在抓取网页的过程中,按照抓取的策略,从当前网页上提取出新的url放入队列,以便获取url对应的网页内容,将网页内容保存到本地,然后,再提取有效地址作为下一次的入口url,直到爬行完毕。随着网页数量的剧增,传统的网络爬虫会下载大量的无关网页。利用天气信息网站开放的api接口,通过网络爬虫抓取所述天气数据,可以避免下载无关网页,高效地获取天气数据,从而提高疾病预测的效率。

实施例三

图3为本发明实施例三提供的疾病预测装置的结构图。如图3所示,所述疾病预测装置10可以包括:第一获取单元301、第二获取单元302、第三获取单元303、预处理单元304、构建单元305、优化单元306、预测单元307。

第一获取单元301,用于获取疾病监测数据,所述疾病监测数据是时间序列数据。

所述疾病监测数据可以包括流感、手足口病、麻疹、流行性腮腺炎等疾病的患病数据。

可以在预设区域(例如省市、地区)建立由多个监测点组成的疾病监测网络,从所述监测点获取疾病监测数据,由所述疾病监测数据构成构成疾病监测的时间序列数据。可以选择医疗机构、学校和幼托机构、药店等作为监测点,分别对相应的目标人群进行疾病监测及数据采集。可以选择满足预设条件的场所作为监测点。所述预设条件可以包括人数、规模等。例如,选择学生人数达到预设数量的学校和幼托机构作为监控点。又如,选择规模(例如以日营业额统计)达到预设规模的药店作为监控点。再如,选择规模(例如以日就医人数统计)达到预设规模的医院作为监控点。

不同时间的疾病监测数据构成疾病监测的时间序列数据。例如,可以将以日为单位采集到的疾病监测数据构成疾病监测的时间序列数据。或者,可以将以周为单位采集到的疾病监测数据构成疾病监测的时间序列数据。

医疗机构(主要包括医院)是最能捕捉疾病早期暴发预兆的场所,是开展疾病监测的首选。可以根据病人就诊情况,获取疾病监测数据。

一部分疾病人会自行去药店购药来缓解早期症状,因此,可以根据药店的药品销售情况,获取疾病监测数据。

儿童和青少年是疾病的高危人群以及疾病传播过程中的重要环节,也应该加强对该人群的监测。学校和幼托机构是监测儿童和青少年疾病发病情况的较佳场所。可以根据学校和幼托机构的儿童和青少年的请假情况,获得疾病监测数据。

因此,本发明中主要选择医疗机构、学校和幼托机构、药店这三类场所进行疾病监测数据的采集。当然,上述对数据源的选择,并不能限制在另外的实施方案中增加或替换其他重点关注人群或场所作为监测的数据源。例如,可以将宾馆纳入疾病监测范围,获取宾馆入住人员的疾病监测数据。

根据需要,可以取任意一类监控点(例如医疗机构)采集的疾病监测数据构成疾病监测的时间序列数据。例如,可以取医院采集的疾病监测数据构成疾病监测的时间序列数据。或者,可以结合多类监控点采集的疾病监测数据构成疾病监测的时间序列数据。例如,可以以医院采集的疾病监测数据为主,以药店参加的疾病监测数据作为补充,构成疾病监测的时间序列数据。

疾病监测数据可以包括疾病的就诊数、就诊率、发病数、发病率等患病数据。例如,可以从医疗机构(例如医院)获取疾病(例如流感)的每日就诊数,将疾病(例如流感)的每日就诊数作为疾病监测数据。又如,可以从学校获取学生的疾病(例如流感)的每日发病数,将疾病(例如流感)的每日发病数作为疾病监测数据。

第二获取单元302,用于获取所述疾病监测数据相关的天气数据,所述天气数据是与所述疾病监测数据对应的时间序列数据。

疾病监测数据相关的天气数据是指对疾病监测数据(即疾病的患病数据)有影响的天气数据。可以预先分析不同天气数据对所述疾病监测数据的影响,根据分析结果确定对所述疾病监测数据有影响或影响较大的天气数据。

所述天气数据可以包括湿度、气温、气压、降水量、水汽压、风速、风向、日照时数。在一具体实施例中,所述天气数据可以包括每日的平均气温、平均气压、最高气温、最低气温、平均相对湿度、最小相对湿度、降水量、平均风速、日照时数、平均水汽压。

所述天气数据与所述疾病监测数据对应的时间段相同,并且,所述天气数据与所述疾病监测数据的统计周期(例如每日、每周)相同。例如,所述疾病监测数据为2018年1-2月的每日就诊数,所述天气数据为2018年1-2月的每日天气数据。又如,所述疾病监测数据为2017年1-12月的每周就诊数,所述天气数据为2017年1-12月的每周天气数据(例如周平均气温)。

可以从天气信息网站(例如中国天气网、新浪天气、搜狐天气等)抓取所述天气数据,以提高天气数据的可靠性。可以理解,可以从任意网页中抓取所述天气数据。

可以抓取预定区域的天气数据。所述预定区域可以包括省、市、地区等。例如,抓取深圳市的天气数据。

可以抓取预定时间的天气数据。所述预定时间可以包括年、月、日等。例如,抓取2018年1-2月的每日天气数据。

可以通过网络爬虫抓取所述天气数据。网络爬虫是一个可以自动提取网页数据信息内容的应用程序。网络爬虫通常是从一个或者是若干个初始网页的url(也称种子url)开始,获取初始网页的url,依照特定的算法和策略(例如深度优先搜索策略),在对网页进行抓取的过程中,不断地从当前的网页中抽取新的url放入到相应的队列中,直到满足停止条件为止。url为uniformresourcelocator的缩写,即统一资源定位符。

可以利用天气信息网站开放的api接口(例如中国天气网开放的api接口)抓取所述天气数据。api是应用程序接口(applicationinterface)的缩写,通过api接口可以实现计算机软件之间的相互通信。天气信息网站开放的api接口可以返回json格式或者xml格式的数据。

在一具体实施例中,可以利用天气信息网站开放的api接口,通过网络爬虫抓取所述天气数据。利用天气信息网站开放的api接口,通过网络爬虫抓取所述天气数据的具体过程参见图2。

第三获取单元303,用于获取所述疾病监测数据相关的舆情数据,所述舆情数据是与所述疾病监测数据对应的时间序列数据。

疾病监测数据相关的舆情数据是指体现所述疾病监测数据的舆情数据。举例来说,当疾病(例如流感)进入流行期时,随着患病人数增多,很多人会上网搜索疾病相关的词语(例如流感、达菲、高烧等特定词),这些词语的搜索量大大增加。又如,当疾病(例如流感)进入流行期时,随着患病人数增多,新闻、论坛、博客、贴吧等舆情网站上发布的疾病相关内容(例如患病信息、治疗信息等)增多。因此,可以利用疾病监测数据相关的舆情数据辅助进行疾病预测。

所述舆情数据可以包括特定词的搜索次数。例如,可以统计预设搜索引擎对特定词的搜索次数(例如特定地区预设定搜索引擎对特定词的每日搜索次数)。

所述舆情数据还可以包括特定舆情网站(例如新闻、论坛、博客、贴吧等)包含特定词的舆情信息的数量。

所述特定词是与预测的疾病相关的词语,例如,所述特定词是疾病症状相关的词语,当预测的疾病为流感时,所述特定词可以包括:发病突然、高烧、畏寒、头痛、无力、喉咙发炎、肌肉酸痛、干咳等。再如,当预测的疾病为手足口时,所述特定词可以包括:口痛、厌食、低热、手部小疱疹、口部小溃疡等。

所述舆情数据与所述疾病监测数据对应的时间段相同,并且,所述舆情数据与所述疾病监测的统计周期(例如每日、每周)相同。例如,所述疾病监测数据为2018年1-2月的每日就诊数,则所述舆情数据为2018年1-2月的每日舆情数据(例如特定词日搜索次数)。又如,所述疾病监测数据为2017年1-12月的每周就诊数,则所述舆情数据为2017年1-12月的每周舆情数据(例如特定词周搜索次数)。

预处理单元304,用于对所述疾病监测数据、天气数据和舆情数据进行预处理。

疾病监测数据、天气数据和舆情数据的预处理可以包括异常数据处理。对疾病监测数据、天气数据和舆情数据进行异常数据处理,是为了修正所述疾病监测数据、天气数据和舆情数据中的异常数据,提高疾病预测的可靠性和准确性。

所述异常数据处理可以包括填补所述疾病监测数据、天气数据和舆情数据中的缺失值。可以通过缺失值前后数据的平均值或中值来对缺失值进行填充,或者,可以通过回归拟合的方法对缺失值进行填充。

所述异常数据处理还可以包括修正所述疾病监测数据、天气数据和舆情数据中的异常值。所述异常值是明显偏离其他数据的数值。可以采用插值法修正所述异常值。

疾病监测数据、天气数据和舆情数据的预处理还可以包括对所述疾病监测数据、天气数据和舆情数据进行数据格式转换。例如,对疾病监测数据、天气数据和舆情数据进行标准化处理,使得疾病监测数据、天气数据和舆情数据具有一致性的标准格式,以适合作为lstm模型的输入数据。

构建单元305,用于构建多层长短时记忆递归神经网络(longshort-termmemoryrecurrentneuralnetwork)模型,即多层lstm模型。所述多层lstm模型包括两层lstm单元层和一层全连接层,第一层lstm单元层用于对输入数据(例如所述疾病监测数据、天气数据和舆情数据构成的输入数据)构造特征,得到第一隐藏层单元,所述第二层lstm单元层用于对所述第一隐藏层单元进行组合,得到第二隐藏层单元,所述全连接层用于根据所述第二隐藏层单元得到预测结果(例如疾病预测结果),每个lstm单元层包括遗忘门、输入门、输出门,所述遗忘门、输入门、输出门控制所述lstm单元层的记忆状态。

lstm模型是一种时间递归神经网络模型。相对于传统的循环神经网络(recurrentneuralnetwork,rnn)模型,lstm模型通过在lstm单元层构建一些门来存储信息,因此其在模型训练的过程中,梯度不会很快消失。

本方法使用的多层lstm模型包括两层lstm单元层和一层全连接层,第一层lstm单元层用于对输入数据(例如疾病监测数据、天气数据和舆情数据构成的输入数据)构造特征,得到第一隐藏层单元,所述第二层lstm单元层用于对所述第一隐藏层单元进行组合,得到第二隐藏层单元。所述全连接层根据所述第二隐藏层单元得到预测值。所述第一隐藏层单元为局部特征,所述第二隐藏层单元为全局特征。也就是说,第一层lstm单元层用于提取局部信息,第二层lstm单元层用于结合局部特征得到全局特征,所述全连接层用于根据全局特征得到预测结果(例如疾病预测结果)。

lstm单元层包括遗忘门、输入门、输出门,所述遗忘门、输入门、输出门控制lstm单元层的记忆状态。输入门决定是否接收当前时刻的输入。输出门决定是否是否输出记忆状态。

在一实施例中,lstm单元层的遗忘门ft,输入门it、输出门ot、记忆状态ct和隐藏层单元ht可以计算如下:

ft=σ(wfxt+ufht-1+bf);

it=σ(wixt+uiht-1+bi);

ot=σ(woxt+uoht-1+bo);

其中,wf、uf、bf为遗忘门的参数,wi、ui、bi为输入门的参数,wo、uo、bo为输出门的参数,wc、uc、bc为记忆单元的参数。

在另一实施例中,lstm单元层的遗忘门ft,输入门it、输出门ot、记忆状态ct和隐藏层单元ht可以计算如下:

ft=σ(wfxt+ufct-1+bf);

it=σ(wixt+uict-1+bi);

ot=σ(woxt+uoct-1+bo);

优化单元306,用于从预处理后的所述疾病监测数据、天气数据和舆情数据中获取训练数据和验证数据,利用所述训练数据和所述验证数据对所述多层lstm模型进行训练和性能验证,得到优化后的多层lstm模型。

可以从预处理后的所述疾病监测数据、天气数据和舆情数据中截取时间序列数据,构成所述训练数据和所述验证数据。

所述多层lstm模型的输入数据是一个预设维度(例如1000维)的向量。可以从截取的时间序列数据中将每个时间点对应的预处理后的疾病监测数据、天气数据和舆情数据构造一个预设维度的向量,按照时间顺序,将各个时间点对应的向量依次输入所述多层lstm模型,用来对所述多层lstm模型进行训练或验证。

例如,从预处理后的所述疾病监测数据、天气数据和舆情数据中截取用于训练所述多层lstm模型的第一时间序列数据;从截取的第一时间序列数据中将每个时间点对应的预处理后的疾病监测数据、天气数据和舆情数据构造一个预设维度的第一向量,按照时间顺序,将各个时间点对应的第一向量依次输入所述多层lstm模型,用于对所述多层lstm模型进行训练。从预处理后的所述疾病监测数据、天气数据和舆情数据中截取用于验证所述多层lstm模型的第二时间序列数据;从截取的第二时间序列数据中将每个时间点对应的预处理后的疾病监测数据、天气数据和舆情数据构造一个预设维度的第二向量,按照时间顺序,将各个时间点对应的第二向量依次输入所述多层lstm模型,用于对所述多层lstm模型进行验证。

在对所述多层lstm模型进行训练时,所述多层lstm模型的损失函数可以定义为均方差,调整所述多层lstm模型的参数,使所述均方值取得最小值。训练的过程可以采用rmsprop算法。rmsprop是一种改进的随机梯度下降算法。均方差与rmsprop算法是现有技术,此处不再赘述。

预测单元307,用于从预处理后的所述疾病监测数据、天气数据和舆情数据中获取预测时间点之前的疾病监测数据、天气数据和舆情数据,将所述预测时间点之前的疾病监测数据、天气数据和舆情数据输入所述优化后的多层lstm模型,得到所述预测时间点的疾病预测结果。

获取的预测时间点之前的疾病监测数据、天气数据和舆情数据为时间序列数据。可以从获取的预测时间点之前的疾病监测数据、天气数据和舆情数据中,将每个时间点对应的预处理后的疾病监测数据、天气数据和舆情数据构造一个预设维度的第三向量,按照时间顺序,将各个时间点对应的第三向量依次输入所述多层lstm模型,以对预测时间点进行疾病预测。

在进行疾病预测时,从初始时间点开始,优化后的多层lstm模型通过当前时间点的输入数据及前一时间点的隐藏层单元逐层组合得到当前时间点的各隐藏层单元,根据当前时间点的隐藏层单元得到当前时间点的预测值,并根据时间顺序,不断递归获取下一时间点的隐藏层单元以及预测值,直到得到所述给定时间点的预测值。

实施例三通过多层lstm模型对患病数据进行预测。lstm模型可以从数据中直接去提取知识,构造出有利于预测的特征向量,提高了预测精度。同时,与传统的rnn模型相比,lstm模型解决了在时序数据量过大情况下引起的长期依赖时梯度消失的问题。并且,实施例三将天气数据、舆情数据作为影响因素在加入到疾病预测中,提高了疾病预测的准确性。

实施例四

图4是本发明实施例四提供的疾病预测装置中第二获取单元(即图3中302)的细化结构图。

第二获取单元302可以利用天气信息网站开放的api接口,通过网络爬虫抓取所述天气数据。参阅图4所示,第二获取单元302可以包括:生成子单元3021、请求子单元3022、分析子单元3023、判断子单元3024、抓取子单元3025、存储子单元3026。

生成子单元3021,用于生成面向所述天气信息网站的api接口的种子url以及后续的url。

种子url是网络爬虫进行一切工作的基础和前提。种子url可以是一个也可以是多个。

可以对天气信息网站的url的结构特点进行分析,根据url的结构特点得到后续的url。

请求子单元3022,用于向所述天气信息网站的api接口发送http请求,请求访问所述api接口。

可以以get方式向所述天气信息网站的api接口发送http请求。当天气信息网站同意获取其提供的天气数据时,返回http响应,以告知可以进行获取天气数据的操作。

分析子单元3023,用于对所述天气信息网站提供的数据内容进行分析和识别,以查看所述数据内容。

天气信息网站提供特定格式的数据内容,需要对天气信息网站提供的特定格式的数据内容进行分析和识别,来查看所述数据内容。例如,所述天气信息网站的api接口提供的数据格式为json格式。json是一种数据交换格式,使用了类似于c语言的语法习惯。对该json格式的数据内容进行分析和识别,来查看所述数据内容。

判断子单元3024,用于判断所述数据内容是否为预定信息内容。

为了得到特定的天气数据,需要判断所述数据内容是否为预定信息内容。若所述数据内容是否不是预定信息内容,则舍弃该数据内容,否则执行下一步骤。

抓取子单元3025,用于若所述数据内容为预定信息内容,则抓取所述数据内容。

数据抓取的最终目的是将网络数据内容抓取到本地。对于json格式的数据内容,在抓取所述数据内容时可以采用深度优先搜索策略进行状态空间搜索。

存储子单元3026,用于将抓取的数据内容作为所述天气数据保存到本地。

可以在计算设备上创建数据库,将所述天气数据保存到所述数据库中。

传统的网络爬虫都是首先设定一个或者多个入口url,在抓取网页的过程中,按照抓取的策略,从当前网页上提取出新的url放入队列,以便获取url对应的网页内容,将网页内容保存到本地,然后,再提取有效地址作为下一次的入口url,直到爬行完毕。随着网页数量的剧增,传统的网络爬虫会下载大量的无关网页。第二获取单元302利用天气信息网站开放的api接口,通过网络爬虫抓取所述天气数据,可以避免下载无关网页,高效地获取天气数据,从而提高疾病预测的效率。

实施例五

图5为本发明实施例五提供的计算机装置的示意图。所述计算机装置1包括存储器20、处理器30以及存储在所述存储器20中并可在所述处理器30上运行的计算机程序40,例如疾病预测程序。所述处理器30执行所述计算机程序40时实现上述疾病预测方法实施例中的步骤,例如图1所示的步骤101-107。或者,所述处理器30执行所述计算机程序40时实现上述装置实施例中各模块/单元的功能,例如图3中的单元301-307。

示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序40在所述计算机装置1中的执行过程。例如,所述计算机程序40可以被分割成图3中的第一获取单元301、第二获取单元302、第三获取单元303、预处理单元304、构建单元305、优化单元306、预测单元307,各单元具体功能参见实施例三。

所述计算机装置1可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。本领域技术人员可以理解,所述示意图5仅仅是计算机装置1的示例,并不构成对计算机装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置1还可以包括输入输出设备、网络接入设备、总线等。

所称处理器30可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器30也可以是任何常规的处理器等,所述处理器30是所述计算机装置1的控制中心,利用各种接口和线路连接整个计算机装置1的各个部分。

所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述计算机装置1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所述计算机装置1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

在本发明所提供的几个实施例中,应该理解到,所揭露的计算机装置和方法,可以通过其它的方式实现。例如,以上所描述的计算机装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。计算机装置权利要求中陈述的多个单元或计算机装置也可以由同一个单元或计算机装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

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