CN116230250B - 一种基于大数据的疾病预测方法及系统 - Google Patents
一种基于大数据的疾病预测方法及系统 Download PDFInfo
- Publication number
- CN116230250B CN116230250B CN202310049958.9A CN202310049958A CN116230250B CN 116230250 B CN116230250 B CN 116230250B CN 202310049958 A CN202310049958 A CN 202310049958A CN 116230250 B CN116230250 B CN 116230250B
- Authority
- CN
- China
- Prior art keywords
- data
- task
- processed
- disease
- idle memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/80—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for detecting, monitoring or modelling epidemics or pandemics, e.g. flu
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/70—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for mining of medical data, e.g. analysing previous cases of other patients
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02A—TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
- Y02A90/00—Technologies having an indirect contribution to adaptation to climate change
- Y02A90/10—Information and communication technologies [ICT] supporting adaptation to climate change, e.g. for weather forecasting or climate simulation
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Public Health (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Pathology (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Measuring And Recording Apparatus For Diagnosis (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本发明提供了一种基于大数据的疾病预测方法及系统,根据疾病的名称对疾病进行扩展得到与疾病对应的相关术语集合;利用Spark的算子根据所述相关术语集合的第一子集对HDFS中存储的健康医疗大数据进行过滤,得到待处理数据;根据相关术语集合计算每条所述待处理数据的权重;在Driver端的内存中设置映射表,所述映射表记录每条所述待处理数据所属的Block、权重;步骤3,在Driver端根据所述映射表中每条所述待处理数据所属的Block、权重得到每个Block的得分,建立Block和Task的对应关系,将Task分配给Executor,获得不同置信度的疾病预测结果。本发明有效提高了利用Spark进行疾病预测的效率,而且准确度也有了大幅提升。
Description
技术领域
本发明涉及大数据领域,尤其涉及基于大数据的疾病预测方法及系统。
背景技术
2009年,在H1N1流感爆发前,谷歌利用用户搜索的数据成功预测了H1N1流感在美国的传播,使得大数据一战成名。作为全球最大的搜索引擎,谷歌拥有海量的用户搜索数据,谷歌正是借助于这些海量的数据完成H1N1流感的预测。海量的数据中蕴含着重要信息,但是对于海量的数据(大数据)的处理不同于平常的数据处理,普通计算机的内存以及磁盘无法存储这些海量数据,这就需要借助于大数据技术,大数据技术可以处理上百G甚至几个T的数据,如果使用单台计算机,这些数据的处理时间是不可忍受的,然而大数据技术确可以在很短时间内完成。虽然谷歌预测H1N1流感后,对于其他流行性疾病的预测的偏差较大,但是这显现除了大数据的在疾病的预测上的重要作用。
在2016年和2018年我国发布了健康医疗大数据发展促进的相关指导意见以及健康医疗大数据的相关标准,健康医疗大数据作为国家重要基础性战略资源,融合了卫生机构的数据,而且很多企业和科研机构、高校建立了健康医疗大数据平台。相对于谷歌采用用户搜索日志作为数据基础,卫生机构等的健康医疗的数据更为准确,更具有针对性,不相关信息更少。这些数据无论是对个人疾病的预测还是公共疾病的预测都具有十分重要的意义。在使用现有的大数据引擎对健康医疗大数据进行疾病的分析、预测时,由于资源的限制,导致处理效率不高。面对海量的数据,如何能准确、高效以及根据用户的需要进行预测是疾病预测中重要的问题。
发明内容
为了能够准确、高效的根据海量数据对疾病进行预测或预警,本发明提供了一种基于大数据的疾病预测方法,所述方法包括以下步骤:
步骤1,获取需要预测的疾病的名称,根据疾病的名称对疾病进行扩展得到与疾病对应的相关术语集合;利用Spark的算子根据所述相关术语集合的第一子集对HDFS中存储的健康医疗大数据进行过滤,得到待处理数据;
步骤2,根据所述相关术语集合计算每条所述待处理数据的权重;在Driver端的内存中设置映射表,所述映射表记录每条所述待处理数据所属的Block、权重;
步骤3,在Driver端根据所述映射表中每条所述待处理数据所属的Block、权重得到每个Block的得分,建立Block和Task的对应关系,将Task分配给Executor,获得不同精度的疾病预测结果;
其中,所述相关术语集合分为多个子集,第一子集是对所述疾病名称的扩展。
优选地,所述根据所述相关术语集合计算每条所述待处理数据的权重,具体为:
对于每条所述待处理数据,获取该条所述待处理数据的字段,根据字段的名称确定字段与所述相关术语集合的子集对应关系;
不同的子集对应不同的系数,根据字段与所述相关术语集合的子集对应关系确定字段的系数;
计算每条所述待处理数据中与字段对应的内容中出现对应子集中术语的次数,根据所述次数、所述系数计算得到每条所述待处理数据的权重。
优选地,所述将Task分配给Executor,具体为:
获取各个Executor所在节点的空闲内存,以及Executor本身的Storage空闲内存和Execution空闲内存;
计算Task的分数,所述Task的分数为所述Task对应的Block的得分之和与所述Task对应的Block含有的待处理数据的条数的比值;所述Block的得分之和为所述Block含有的所有待处理数据的权重之和;
根据所述节点的空闲内存、所述Stroage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Executor。
优选地,所述根据所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Execution,具体为:
计算所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存的总和,根据所述总和从大到小的顺序对Executor排序;根据所述Task的分数按照从大到小的顺序对Task进行排序;
将Task按照排序顺序依次分配给排序后的Executor,所述Executor的数量大于Task的数量。
优选地,所述所述将Task分配给Executor,具体为:
获取第一值,所述第一值为Executor所在节点的CPU利用率和内存利用率之和;
计算所述Task对应的Block的得分之和,以及所述Task对应的Block中所包含的待处理数据的平均大小;所述Block的得分之和为所述Block含有的所有待处理数据的权重之和;
根据所述得分之和、所述平均大小对Task进行排序,依次分配给排序后的Executor。
优选地,所述获得不同置信度的疾病预测结果,具体为:
获取用户设置的预期置信度,根据所述置信度确定参与计算的Task,运行与所述参与计算的Task对应的Executor获得结果。
此外,本发明还提供了一种基于大数据的疾病预测系统,所述系统包括以下模块:
预处理模块,用于获取需要预测的疾病的名称,根据疾病的名称对疾病进行扩展得到与疾病对应的相关术语集合;利用Spark的算子根据所述相关术语集合的第一子集对HDFS中存储的健康医疗大数据进行过滤,得到待处理数据;
权重计算模块,用于根据所述相关术语集合计算每条所述待处理数据的权重;在Driver端的内存中设置映射表,所述映射表记录每条所述待处理数据所属的Block、权重;
预测模块,用于在Driver端根据所述映射表中每条所述待处理数据所属的Block、权重得到每个Block的得分,建立Block和Task的对应关系,将Task分配给Executor,获得不同精度的疾病预测结果;
其中,所述相关术语集合分为多个子集,第一子集是对所述疾病名称的扩展。
优选地,所述根据所述相关术语集合计算每条所述待处理数据的权重,具体为:
对于每条所述待处理数据,获取该条所述待处理数据的字段,根据字段的名称确定字段与所述相关术语集合的子集对应关系;
不同的子集对应不同的系数,根据字段与所述相关术语集合的子集对应关系确定字段的系数;
计算每条所述待处理数据中与字段对应的内容中出现对应子集中术语的次数,根据所述次数、所述系数计算得到每条所述待处理数据的权重。
优选地,所述将Task分配给Executor,具体为:
获取各个Executor所在节点的空闲内存,以及Executor本身的Storage空闲内存和Execution空闲内存;
计算Task的分数,所述Task的分数为所述Task对应的Block的得分之和与所述Task对应的Block含有的待处理数据的条数的比值;所述Block的得分之和为所述Block含有的所有待处理数据的权重之和。
根据所述节点的空闲内存、所述Stroage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Executor。
优选地,所述根据所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Executor,具体为:
计算所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存的总和,根据所述总和从大到小的顺序对Executor排序;根据所述Task的分数按照从大到小的顺序对Task进行排序;
将Task按照排序顺序依次分配给排序后的Executor,所述Executor的数量大于Task的数量。
优选地,所述所述将Task分配给Executor,具体为:
获取第一值,所述第一值为Executor所在节点的CPU利用率和内存利用率之和;
计算所述Task对应的Block的得分之和,以及所述Task对应的Block中所包含的待处理数据的平均大小;所述Block的得分之和为所述Block含有的所有待处理数据的权重之和;
根据所述得分之和、所述平均大小对Task进行排序,依次分配给排序后的Executor。
优选地,所述获得不同置信度的疾病预测结果,具体为:
获取用户设置的预期置信度,根据所述置信度确定参与计算的Task,运行与所述参与计算的Task对应的Executor获得结果。
最后,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上所述的方法。
本发明采用根据疾病的名称对疾病进行扩展得到与疾病对应的相关术语集合,根据所述相关术语集合计算每条所述待处理数据的权重,在Driver端根据所述映射表中每条所述待处理数据所属的Block、权重得到每个Block的得分,建立Block和Task的对应关系,将Task分配给Executor,获得不同精度的疾病预测结果。本发明根据待处理数据与待预测疾病的相关程度计算得到Block的得分,根据Block的得分将与Block对应的Task分配给Executor,有效地提高了参与疾病预测数据的准确性,而且用于可以设置置信度,根据置信度由系统确定参与大数据处理的Block,减少了无效运行以及不相干数据对疾病预测的影响。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例的流程图;
图2为Block、Task、Executor对应关系图;
图3为本发明一个具体实施例的流程图;
图4为本发明第二实施例的结构图。
具体实施方式
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
疾病的预测又可以称为疾病的预警或者提醒,是指在疾病发生或者社会面大规模传染前获得预警信息。面对海量的数据,如何能准确、高效的进行预测是十分重要的。为了能够对疾病进行预测,
本发明提供了一种基于大数据的疾病预测方法,如图1所示,所述方法包括以下步骤:
步骤1,获取需要预测的疾病的名称,根据疾病的名称对疾病进行扩展得到与疾病对应的相关术语集合;利用Spark的算子根据所述相关术语集合的第一子集对HDFS中存储的健康医疗大数据进行过滤,得到待处理数据;
健康医疗数据平台中融合了很多医疗机构甚至是科研院校的医疗数据,几乎包含了所有的疾病,不同的疾病的名称不同,而且很多疾病还有别名,除此之外,不同的疾病的症状不同,在进行疾病的预警或者预测中,首先需要构建疾病的相关术语集合,所述相关术语集合是与要预测或者预警的疾病相关的术语集合,包括但不限于疾病的名称、疾病的别名、疾病的相关症状术语。
在一个具体实施例中,相关术语集合分为多个子集,以包含两个子集为例,第一子集是与疾病的别名或者疾病的显著症状相关的内容,第二子集是与疾病的一般症状相关的内容,例如脑炎后遗症又称为脑膜炎后遗症,英文名又叫做Sequelae of encephalitis,这类术语属于相关术语集合的第一子集,而肢体功能丧失或者功能障碍作为相关术语集合的第二子集,这就组成了相关术语集合{{脑炎后遗症,脑膜炎后遗症,Sequelae ofencephalitis},{肢体功能丧失,功能障碍}}。具体相关术语集合的第一子集、第二子集的划分和疾病以及最后要求的精度相关,哪个作为第一子集、第二子集本发明对此不作具体限定。
Spark是大数据处理中的框架,其是利用算子对数据进行处理,健康医疗大数据中包括很多疾病的数据,如果直接对其进行处理将耗费很多资源,而且时间较长,本发明是先对健康医疗大数据进行过滤,得到待处理数据,待处理数据虽然可能也有与待预测疾病不相干的数据,但是不相干数据量显著下降,后续进一步处理时,将有效加快处理速度。
步骤2,根据所述相关术语集合计算每条所述待处理数据的权重;在Driver端的内存中设置映射表,所述映射表记录每条所述待处理数据所属的Block、权重;
待处理数据中包括多条数据,一个典型数据如下,但是需要注意本发明不局限于该典型数据。其中“ID”、“名词”、“症状”、“患者姓名”、“患者年龄”、“既往病史”、“主要诊断”、“其他诊断”为字段,字段对应的每条数据中的具体内容为字段的内容。
表1
不同的待处理数据和疾病的相关度不相同,例如高血压伴随头晕,如果待预测疾病为头晕,由于头晕可能是其他疾病引起,这条数据就没有名称为头晕的数据的价值高,权重反映了与疾病的相关程度,权重越高在该疾病的预测中的价值越高,反之亦然。以上的疾病只是为了示例性说明,本发明的疾病预测/预警方法还可以应用在流感或者传染病的预测中。
Spark中分为Driver端和Executor端,Driver端负责任务的生成,并将任务发送给Executor段执行,在Driver端的内存中设置映射表,映射表记录每条待处理数据所属的Block和权重,其中Block是将数据分块后,每块数据称为一个Block。在Driver端的内存中设置映射表有助于加快Driver的速度。
步骤3,在Driver端根据所述映射表中每条所述待处理数据所属的Block、权重得到每个Block的得分,建立Block和Task的对应关系,将Task分配给Executor,获得不同精度的疾病预测结果;
一个Block包括多条所述待处理数据,由于Spark是以Block为单位划分数据,这里进一步计算每个Block的得分,进一步可以得到与该Block相对应的Task的得分,也即得到Task的重要程度。Block与Task、Executor的关系如图2,图中Block、Task是一一对应,但是并不局限于此,在另外一个实施例中,多个Block对应一个Task;此外,Task和Executor也可以是多对一的关系。
在本发明的另外一个实施例中,一个Block和一个Task对应,一个Task和一个Executor对应,且一个节点中最多有一个Executor。
其中,所述相关术语集合分为多个子集,第一子集是对所述疾病名称的扩展。
不同的待处理数据对不同疾病的预测中所起的作用不同,而且不同字段的内容起到的作用也不同,例如第一条待处理数据的疾病名称和待预测疾病的名称相同,第二条待处理数据的疾病名称出现在其他症状中,显然第一条数据在疾病的预测中的重要性更高。
所述根据所述相关术语集合计算每条所述待处理数据的权重,具体为:
对于每条所述待处理数据,获取该条所述待处理数据的字段,根据字段的名称确定字段与所述相关术语集合的子集对应关系;
不同的子集对应不同的系数,根据字段与所述相关术语集合的子集对应关系确定字段的系数;
计算每条所述待处理数据中与字段对应的内容中出现对应子集中术语的次数,根据所述次数、所述系数计算得到每条所述待处理数据的权重。
仍以表1为例,“名称”是和要预测的疾病紧密相关的,并将“名称”这一字段与第一子集建立对应关系,而“症状”和第二子集对应。由于有些字段和疾病的相关性低,例如“姓名”,则“姓名”既不和第一子集建立对应关系,也不和第二子集建立对应关系。这些对应关系是根据待处理数据的字段和要预测的疾病由用户在编程代码中实现。
字段设置有不同的系数,系数反映了该字段对应的内容的重要程度,第一系数大于第二系数,优选地,第一系数为0.8,第二系数为0.3,其中第一系数为“名称”对应的系数,第二系数为“症状”对应的系数。
此外,如果一个字段对应为第一子集,则计算每条所述待处理数据中与字段对应的内容中出现第一子集术语的次数,脑炎后遗症在一条待处理数据的“名称”与第一子集对应,第一子集的内容为{脑炎后遗症,脑膜炎后遗症,Sequelae of encephalitis},“名称”字段对应的内容为“脑膜炎后遗症”,出现一次,则“名称”字段对应的次数为1。“症状”字段和第二子集对应,第二子集的内容为{肢体功能丧失,功能障碍},如果“症状”字段同时出现了“肢体功能丧失”、“功能障碍”,则“症状”字段对应的次数为2。以此类推,直到所有参与计算的字段都得到对应的次数。最后,在根据第一系数和第二系数以及字段对应的次数计算该待处理数据的权重。
由于“名称”与第一子集对应,“名称”对应第一系数0.8,且一条待处理数据中“名称”对应的内容出现1个第一子集中的术语,则次数为1,得到第一结果为0.8*1。“症状”与第二子集对应,“症状”对应第二系数0.3,且该条待处理数据中“症状”对应的内容出现2个第二子集中的术语,则次数为2,得到第二结果为0.3*2。该条待处理数据最后得到的权重为:0.8*1+0.3*2=1.4。
在Spark中,Executor用于执行任务Task,由于Spark是内存型大数据处理平台,内存对应Spark至关重要,内存充足可以减少写磁盘的次数,提高处理速度,尤其是数据量比较大时。所述将Task分配给Executor,如图3所示,具体为:
获取各个Executor所在节点的空闲内存,以及Executor本身的Storage空闲内存和Execution空闲内存;
计算Task的分数,所述Task的分数为所述Task对应的Block的得分之和与所述Task对应的Block含有的待处理数据的条数的比值;所述Block的得分之和为所述Block含有的所有待处理数据的权重之和;
根据所述节点的空闲内存、所述Stroage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Executor。
Block中包括多条待处理数据,如果一个Block中包括的待处理数据和待预测疾病很相关,这对于该Block有必要调度到空闲内存多的Executor中,这样不仅能保证数据及时处理,而且避免由于Executor所在的JVM的OOM。
Task的分数越高说明Task对应的Block中包含的待处理数据和待预测疾病的相关性越高,而节点的空闲内存、Stroage空闲内存、Execution空闲内存越多表明Executor执行的内存越多。在一个具体实施例中,所述根据所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Execution,具体为:
计算所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存的总和,根据所述总和从大到小的顺序对Execution排序;根据所述Task的分数按照从大到小的顺序对Task进行排序;
将Task按照排序顺序依次分配给排序后的Execution,所述Execution的数量大于Task的数量。
由于Spark的特性,内存对于Executor的执行至关重要,除此之外,CPU的执行效率也很重要,在一个具体实施例中,所述所述将Task分配给Executor,具体为:
获取第一值,所述第一值为Executor所在节点的CPU利用率和内存利用率之和;
计算所述Task对应的Block的得分之和,以及所述Task对应的Block中所包含的待处理数据的平均大小;所述Block的得分之和为所述Block含有的所有待处理数据的权重之和;
根据所述得分之和、所述平均大小对Task进行排序,依次分配给排序后的Executor。
在一个更为具体的实施例中,先判断是否有得分之和相同的Block,如果有,则进一步根据所述平均大小对得分之和相同的Block进行排序,假设Block 1和Block 2的得分相同,但是Block 1的待处理数据的平均大小小于Block 2,则排序顺序为Block 2、Block1。在本实施例中,对Executor的排序是根据CPU利用率和内存利用率之和,按照从小到大的顺序进行排序。
在实际应用中,一般有两个需求,一个是针对不同的疾病进行预测,另外一个是要求得到不同的置信度,所述获得不同置信度的疾病预测结果,具体为:
获取用户设置的预期置信度,根据所述置信度确定参与计算的Task,运行与所述参与计算的Task对应的Executor获得结果。
由于已经建立了Block与Task的对应关系,而Block的得分又反映了与待预测或者说待预警疾病的相关程度,进而不同的Task与待预测或者说待预警疾病的相关程度不同,如果对于疾病的预测要求苛刻,可以使用高相关的Task,反之,如果对于疾病的预测要求多样本,则可以使用相关度低的Task,然后将Task交给对应的Executor获取结果。
实施例二
本发明还提供了一种基于大数据的疾病预测系统,如图4所示,所述系统包括以下模块:
预处理模块,用于获取需要预测的疾病的名称,根据疾病的名称对疾病进行扩展得到与疾病对应的相关术语集合;利用Spark的算子根据所述相关术语集合的第一子集对HDFS中存储的健康医疗大数据进行过滤,得到待处理数据;
权重计算模块,用于根据所述相关术语集合计算每条所述待处理数据的权重;在Driver端的内存中设置映射表,所述映射表记录每条所述待处理数据所属的Block、权重;
预测模块,用于在Driver端根据所述映射表中每条所述待处理数据所属的Block、权重得到每个Block的得分,建立Block和Task的对应关系,将Task分配给Executor,获得不同精度的疾病预测结果;
其中,其中,所述相关术语集合分为多个子集,第一子集是对所述疾病名称的扩展。
优选地,所述根据所述相关术语集合计算每条所述待处理数据的权重,具体为:
对于每条所述待处理数据,获取该条所述待处理数据的字段,根据字段的名称确定字段与所述相关术语集合的子集对应关系;
不同的子集对应不同的系数,根据字段与所述相关术语集合的子集对应关系确定字段的系数;
计算每条所述待处理数据中与字段对应的内容中出现对应子集中术语的次数,根据所述次数、所述系数计算得到每条所述待处理数据的权重。
优选地,所述将Task分配给Executor,具体为:
获取各个Executor所在节点的空闲内存,以及Executor本身的Storage空闲内存和Execution空闲内存;
计算Task的分数,所述Task的分数为所述Task对应的Block的得分之和与所述Task对应的Block含有的待处理数据的条数的比值;所述Block的得分之和为所述Block含有的所有待处理数据的权重之和。
根据所述节点的空闲内存、所述Stroage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Executor。
优选地,所述根据所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Executor,具体为:
计算所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存的总和,根据所述总和从大到小的顺序对Executor排序;根据所述Task的分数按照从大到小的顺序对Task进行排序;
将Task按照排序顺序依次分配给排序后的Executor,所述Executor的数量大于Task的数量。
优选地,所述所述将Task分配给Executor,具体为:
获取第一值,所述第一值为Executor所在节点的CPU利用率和内存利用率之和;
计算所述Task对应的Block的得分之和,以及所述Task对应的Block中所包含的待处理数据的平均大小;所述Block的得分之和为所述Block含有的所有待处理数据的权重之和;
根据所述得分之和、所述平均大小对Task进行排序,依次分配给排序后的Executor。
优选地,所述获得不同置信度的疾病预测结果,具体为:
获取用户设置的预期置信度,根据所述置信度确定参与计算的Task,运行与所述参与计算的Task对应的Executor获得结果。
实施例三
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如实施例一所述的方法。
实施例四
本发明还提供了一种设备,所述设备包括计算机可读存储介质及处理器,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如实施例一所述的方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种基于大数据的疾病预测方法,其特征在于,所述方法包括以下步骤:
步骤1,获取需要预测的疾病的名称,根据疾病的名称对疾病进行扩展得到与疾病对应的相关术语集合;利用Spark的算子根据所述相关术语集合的第一子集对HDFS中存储的健康医疗大数据进行过滤,得到待处理数据;
步骤2,根据所述相关术语集合计算每条所述待处理数据的权重;在Driver端的内存中设置映射表,所述映射表记录每条所述待处理数据所属的Block、权重;
步骤3,在Driver端根据所述映射表中每条所述待处理数据所属的Block、权重得到每个Block的得分,建立Block和Task的对应关系,将Task分配给Executor,获得不同精度的疾病预测结果;
其中,所述相关术语集合分为多个子集,第一子集是对所述疾病名称的扩展;
所述将Task分配给Executor,具体为:
获取各个Executor所在节点的空闲内存,以及Executor本身的Storage空闲内存和Execution空闲内存;
计算Task的分数,所述Task的分数为所述Task对应的Block的得分之和与所述Task对应的Block含有的待处理数据的条数的比值;所述Block的得分之和为所述Block含有的所有待处理数据的权重之和;
根据所述节点的空闲内存、所述Stroage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Executor;
所述根据所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Executor,具体为:
计算所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存的总和,根据所述总和从大到小的顺序对Executor排序;根据所述Task的分数按照从大到小的顺序对Task进行排序;
将Task按照排序顺序依次分配给排序后的Executor,所述Executor的数量大于Task的数量。
2.如权利要求1所述的方法,其特征在于,所述根据所述相关术语集合计算每条所述待处理数据的权重,具体为:
对于每条所述待处理数据,获取该条所述待处理数据的字段,根据字段的名称确定字段与所述相关术语集合的子集对应关系;
不同的子集对应不同的系数,根据字段与所述相关术语集合的子集对应关系确定字段的系数;
计算每条所述待处理数据中与字段对应的内容中出现对应子集中术语的次数,根据所述次数、所述系数计算得到每条所述待处理数据的权重。
3.如权利要求1-2任一项所述的方法,其特征在于,还包括,获得不同置信度的疾病预测结果,具体为:
获取用户设置的预期置信度,根据所述置信度确定参与计算的Task,运行与所述参与计算的Task对应的Executor获得结果。
4.一种基于大数据的疾病预测系统,其特征在于,所述系统包括以下模块:
预处理模块,用于获取需要预测的疾病的名称,根据疾病的名称对疾病进行扩展得到与疾病对应的相关术语集合;利用Spark的算子根据所述相关术语集合的第一子集对HDFS中存储的健康医疗大数据进行过滤,得到待处理数据;
权重计算模块,用于根据所述相关术语集合计算每条所述待处理数据的权重;在Driver端的内存中设置映射表,所述映射表记录每条所述待处理数据所属的Block、权重;
预测模块,用于在Driver端根据所述映射表中每条所述待处理数据所属的Block、权重得到每个Block的得分,建立Block和Task的对应关系,将Task分配给Executor,获得不同精度的疾病预测结果;
其中,所述相关术语集合分为多个子集,第一子集是对所述疾病名称的扩展;
所述将Task分配给Executor,具体为:
获取各个Executor所在节点的空闲内存,以及Executor本身的Storage空闲内存和Execution空闲内存;
计算Task的分数,所述Task的分数为所述Task对应的Block的得分之和与所述Task对应的Block含有的待处理数据的条数的比值;所述Block的得分之和为所述Block含有的所有待处理数据的权重之和;
根据所述节点的空闲内存、所述Stroage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Executor;
所述根据所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存、所述Task的分数将Task分配到Executor,具体为:
计算所述节点的空闲内存、所述Storage空闲内存、所述Execution空闲内存的总和,根据所述总和从大到小的顺序对Executor排序;根据所述Task的分数按照从大到小的顺序对Task进行排序;
将Task按照排序顺序依次分配给排序后的Executor,所述Executor的数量大于Task的数量。
5.如权利要求4所述的系统,其特征在于,所述根据所述相关术语集合计算每条所述待处理数据的权重,具体为:
对于每条所述待处理数据,获取该条所述待处理数据的字段,根据字段的名称确定字段与所述相关术语集合的子集对应关系;
不同的子集对应不同的系数,根据字段与所述相关术语集合的子集对应关系确定字段的系数;
计算每条所述待处理数据中与字段对应的内容中出现对应子集中术语的次数,根据所述次数、所述系数计算得到每条所述待处理数据的权重。
6.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行如权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310049958.9A CN116230250B (zh) | 2023-02-01 | 2023-02-01 | 一种基于大数据的疾病预测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310049958.9A CN116230250B (zh) | 2023-02-01 | 2023-02-01 | 一种基于大数据的疾病预测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116230250A CN116230250A (zh) | 2023-06-06 |
CN116230250B true CN116230250B (zh) | 2023-09-29 |
Family
ID=86572408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310049958.9A Active CN116230250B (zh) | 2023-02-01 | 2023-02-01 | 一种基于大数据的疾病预测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116230250B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699985A (zh) * | 2015-03-26 | 2015-06-10 | 西安电子科技大学 | 一种医疗大数据采集分析系统及方法 |
CN109616212A (zh) * | 2018-11-09 | 2019-04-12 | 金色熊猫有限公司 | 疾病数据处理方法、装置、电子设备及可读介质 |
CN111144658A (zh) * | 2019-12-30 | 2020-05-12 | 医渡云(北京)技术有限公司 | 医疗风险预测方法、装置、系统、存储介质与电子设备 |
CN111553478A (zh) * | 2020-05-06 | 2020-08-18 | 西安电子科技大学 | 基于大数据的社区老年人心血管疾病预测系统与方法 |
CN113658712A (zh) * | 2021-08-31 | 2021-11-16 | 平安医疗健康管理股份有限公司 | 医患匹配方法、装置、设备及存储介质 |
CN113868406A (zh) * | 2021-12-01 | 2021-12-31 | 无码科技(杭州)有限公司 | 搜索方法、系统、计算机可读存储介质 |
CN115512843A (zh) * | 2022-11-15 | 2022-12-23 | 南京腾鸿医疗科技有限公司 | 一种基于标准化表型术语的疾病和基因预测方法 |
-
2023
- 2023-02-01 CN CN202310049958.9A patent/CN116230250B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699985A (zh) * | 2015-03-26 | 2015-06-10 | 西安电子科技大学 | 一种医疗大数据采集分析系统及方法 |
CN109616212A (zh) * | 2018-11-09 | 2019-04-12 | 金色熊猫有限公司 | 疾病数据处理方法、装置、电子设备及可读介质 |
CN111144658A (zh) * | 2019-12-30 | 2020-05-12 | 医渡云(北京)技术有限公司 | 医疗风险预测方法、装置、系统、存储介质与电子设备 |
CN111553478A (zh) * | 2020-05-06 | 2020-08-18 | 西安电子科技大学 | 基于大数据的社区老年人心血管疾病预测系统与方法 |
CN113658712A (zh) * | 2021-08-31 | 2021-11-16 | 平安医疗健康管理股份有限公司 | 医患匹配方法、装置、设备及存储介质 |
CN113868406A (zh) * | 2021-12-01 | 2021-12-31 | 无码科技(杭州)有限公司 | 搜索方法、系统、计算机可读存储介质 |
CN115512843A (zh) * | 2022-11-15 | 2022-12-23 | 南京腾鸿医疗科技有限公司 | 一种基于标准化表型术语的疾病和基因预测方法 |
Non-Patent Citations (1)
Title |
---|
魏强 ; 孔广黔 ; 吴云 ; .基于Hadoop的海量医疗小文件处理系统.计算机与数字工程.2015,(04),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN116230250A (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Imam et al. | Savina-an actor benchmark suite: Enabling empirical evaluation of actor libraries | |
US20190004875A1 (en) | Artificial Creation Of Dominant Sequences That Are Representative Of Logged Events | |
US7343369B2 (en) | Method and apparatus for predicting selectivity of database query join conditions using hypothetical query predicates having skewed value constants | |
US8219581B2 (en) | Method and system for analyzing ordered data using pattern matching in a relational database | |
US10956472B2 (en) | Dynamic load balancing based on question difficulty | |
US10915820B2 (en) | Generating data associated with underrepresented data based on a received data input | |
KR20160124742A (ko) | 비정형 텍스트내의 특징들의 중의성을 해소하는 방법 | |
AU2012236577A1 (en) | Processing data in a mapreduce framework | |
US20150234883A1 (en) | Method and system for retrieving real-time information | |
CN111382255A (zh) | 用于问答处理的方法、装置、设备和介质 | |
US20220238193A1 (en) | Methods and systems for managing patient-centric information | |
CN113672628A (zh) | 数据血缘分析方法、终端设备及介质 | |
CN113658712A (zh) | 医患匹配方法、装置、设备及存储介质 | |
US11782991B2 (en) | Accelerated large-scale similarity calculation | |
CN115238173A (zh) | 基于大数据的行为分析与医疗服务推送方法、设备及介质 | |
CN116230250B (zh) | 一种基于大数据的疾病预测方法及系统 | |
EP4024226A1 (en) | Query tree labeling and processing | |
US11734279B2 (en) | Event sequences search | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
CN114840522A (zh) | 基于人工智能的数据查询方法、装置、电子设备及介质 | |
CN110931136B (zh) | 事件的搜索方法及装置、计算机介质和电子设备 | |
CN114139530A (zh) | 同义词提取方法、装置、电子设备及存储介质 | |
CN108984615B (zh) | 一种数据查询方法和系统、存储介质 | |
Mishra et al. | FASCA: Framework for Automatic Scalable Acceleration of ML Pipeline | |
WO2020151054A1 (zh) | 一种数据同步方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |