移动O2O环境下的基于多医学因素的Skyline双过滤检索方法与流程

文档序号:12465637阅读:194来源:国知局
移动O2O环境下的基于多医学因素的Skyline双过滤检索方法与流程

本发明属于数据库研究领域,是一种移动O2O环境下的基于多医学因素的Skyline双过滤检索方法,涉及到大规模数据分析、移动O2O环境下的海量数据处理,涉及到医学智能数据处理与应用开发。



背景技术:

随着互联网的高速发展,移动O2O应运而生,即线下的商务机会与互联网结合,让互联网成为交易的前台。而人们生活水平的提高,使得对健康问题的关注程度越来越热,对于医学的检索也越来越多。海量数据的爆炸式增长,使得传统的单机数据分析处理技术已经越来越不适应当前密集型数据分析和处理的需求。子空间Skyline算法作为Skyline查询的一种重要变种算法,已经被广泛地应用到多因素决策等领域。随着移动互联网的发展,在移动互联网环境下的子空间Skyline查询备受关注,子空间Skyline算法是在用户所感兴趣的属性子集上进行Skyline查询,如何有效地获取任意子空间的Skyline结果,仍然是个具有挑战性的任务。

在医学研究中,我们经常会遇到多个医学因素共同作用于一个典型案例的情况,比如说针对一个患肿瘤疾病的病人,是否采用切掉病灶或保守治疗的方式,往往要综合评估各方因素,这涉及到的多个医学因素的共同影响,比如说病人的年龄对手术的耐受度,肿瘤细胞的扩散可能性,病人的喜好,而这些因素涉及的历史病例的数据或观测的各类医学数据量也是非常巨大的。这就需要一种基于多医学因素的有效的针对大规模数据进行过滤的检索方法来进行处理。

为了解决海量医学数据Skyline计算开销大的问题,分布式环境下进行Skyline处理是较好的解决方案。为了解决在移动020环境下反馈的医学数据检索结果集过大,即偏离用户喜好的Skyline点作为结果返回,从而影响到用户最终决策的问题,基于该出发点,我们设计并实现了该发明。



技术实现要素:

根据上述背景技术中存在的缺陷和不足,本发明提供了移动O2O环境下的基于多医学因素的Skyline双过滤检索方法,以解决现有移动网络下结果集过大即偏离用户喜好的Skyline点作为结果返回,从而影响到用户最终决策的问题。本发明同时针对现有技术中存在的子空间Skyline查询方法中的不足进行了改进,用以提高准确度和实时性。

为了实现上述目的,本发明所采用的技术方案是:

一种移动O2O环境下的基于多医学因素的Skyline双过滤检索方法,

S1.使用医生终端进行O2O环境下的实时医学流数据采集,使用客户终端发起查询请求,该查询请求包括多个相关的医学属性、对医学属性的偏好程度、及输入的各属性的阈值;

S2.云端基于该医学流数据和查询请求,从全空间并行提取查询请求中的相关医学属性的k(k≤d)维子空间,其中d为全空间维数,k子空间数据维数,全空间F中提取用户感兴趣的字段(维)既是k。按照客户端对各医学属性的偏好程度对所述k维子空间进行排序以得到一个有序的k维网格索引;

S3.扫描数据到自定义空间不均等划分的k维网格中,按照每个所述属性的阈值,使用一个维度上的网格支配关系进行剪枝,减掉被Skyline支配掉的该维度的网格以及网格里的数据,实现对数据过滤;

S4.对剩余数据进行子空间Skyline查询以得到用户需求的医学属性的Skyline结果,在所述子空间Skyline查询过程中,对于并行流数据进行双向过滤与合并。

进一步的,所述步骤S2中排序的方法是:属性重要性的偏序关系定义为假定存在一个二元偏序关系>是在子空间F上的,偏序关系>表示在F中属性重要性的大于关系,f1,f2是F上的两个属性,f1,f2∈F,如果f1的重要性大于f2,那么它们的偏序关系表示为f1>f2

进一步的,其特征在于,所述步骤S3中的过滤,是具体为执行A-filtering过滤方法和ε-filtering过滤方法,其中:

A-filtering过滤方法步骤如下:多目标决策的优化函数被定义为min(f1(x),f2(x),...,fk(x)),其中x∈P,fi(x)是数据对象x在第i维属性上的取值;

上述公式用来计算第一维属性上取值最偏离用户偏好的医学数据对象集合R1,R0表示初始化数据集P,由此获得第一维属性上取值相对优的医学数据集合接下来在第一维已经相对优的医学数据集合中,利用公式(3.2)获得第二维属性取值最差的医学数据对象集合,然后从医学数据集合中剔除掉,以此类推,最后得到k维属性取值都相对优的医学数据对象集合

ε-filtering过滤方法步骤如下:εi的取值根据用户对各医学属性的偏好程度设置,任意用户会为每个属性提供最大的阈值,如果数据对象在属性上的取值不满足相应阈值,那么该数据对象被过滤掉,任意用户被建模为εi由如下公式计算:

其中表示第j个用户对第i个属性的阈值,max{fi}表示数据集P上的数据在第i个属性上取值的最大值,使用阈值过滤掉在用户关注的属性上取值不满足用户要求的数据对象。

进一步的,所述步骤S4中对剩余数据进行子空间Skyline查询的方法是:假定一个d维的医疗数据空间S={s1,s2,...,sd},P是在数据空间S上的医学数据集,每个数据点pi∈P都是空间S上的d维数据点的一个维度上的医疗数据,F是医疗数据空间S上的子空间即|F|=k且k≤d,在数据空间S上的医疗数据对象pi,其在子空间F上的投影被表示为p′i是k元组,当且仅当子空间F上不存在点p′j支配p′i,p′i是子空间Skyline查询结果,并将该查询结果返回客户终端。

进一步的,所述步骤S1中的O2O环境下的实时医学流数据采集的具体方法是:医生使用基于移动网络的移动多媒体数据采集器,针对病人的多个因素采用同时并行的基于流数据的物联网多因素传感芯片定期采集病人个体状态,特征提取与过滤处理后的数据提交至云端;所述医学流数据和查询请求以流数据的方式,且通过使用时间窗口监测的方式以时间窗口为大小,以流的方式通过无线网络批量汇总发送至云端。

进一步的,所述步骤S4中的双向过滤与合并的方法是:在流合并处理器上,对先后到达的时间窗口内的数据流进行skyline过滤,如果同一时间窗口内的数据存在支配关系,进行过滤操作,因为在同一时间窗口中的数据进对等的,所以采用正向skyline过滤与反向skyline过滤两个过滤步骤,正向skyline过滤即为A-filtering过滤方法,用户使用客户终端发起查询请求后,其利用多目标决策的优化函数,最后得到k维属性取值都相对优的医学数据对象集合;反向skyline过滤即为ε-filtering过滤,其在通过正向skyline过滤后,根据用户对各医学属性的偏好程度设置最大的阈值,如果数据对象在属性上的取值不满足相应阈值,那么该数据对象被过滤掉。

我们方法的有益效果是:智能移动客户端适应不同用户功能需求与使用习惯,发起查询请求,并与移动O2O环境下多医学因素子空间Skyline查询系统进行信息交互。能够以数据流的方式不断地交互筛选反馈数据,精确度高,适用于大数据环境,用户和数据段提供的交互平台能够提供准确且符合要求的信息,提高了用户最终决策的准确性与快速的用户决策体验。

附图说明

图1为本发明的子空间Skyline查询的系统模型;

图2为本发明的A-filtering过滤方法的公式;

图3为本发明的试验数据集;

图4为本发明的MapReduce构建索引文件;

图5为本发明的子空间Skyline查询过程;

图6为本发明子空间Skyline查询过程算法的符号定义;

图7为本发明的子空间Skyline查询过程算法。

具体实施方式

实施例1:一种移动O2O环境下的基于多医学因素的Skyline双过滤检索方法,包括如下步骤:

S1.使用医生终端进行O2O环境下的实时医学流数据采集,使用客户终端发起查询请求,该查询请求包括多个相关的医学属性、对医学属性的偏好程度、及输入的各属性的阈值;

S2.云端基于该医学流数据和查询请求,从全空间并行提取查询请求中的相关医学属性的k(k≤d)维子空间,其中d为全空间维数,k子空间数据维数,全空间F中提取用户感兴趣的字段(维)既是k。按照客户端对各医学属性的偏好程度对所述k维子空间进行排序以得到一个有序的k维网格索引。作为优选方式,所述排序的方法是:属性重要性的偏序关系定义为假定存在一个二元偏序关系>是在子空间F上的,偏序关系>表示在F中属性重要性的大于关系,f1,f2是F上的两个属性,f1,f2∈F,如果f1的重要性大于f2,那么它们的偏序关系表示为f1>f2

S3.扫描数据到自定义空间不均等划分的k维网格中,按照每个所述属性的阈值,使用一个维度上的网格支配关系进行剪枝,减掉被Skyline支配掉的该维度的网格以及网格里的数据,实现对数据过滤;所述的过滤,是具体为执行A-filtering过滤方法和ε-filtering过滤方法,其中:

A-filtering过滤方法步骤如下:多目标决策的优化函数被定义为min(f1(x),f2(x),...,fk(x)),其中x∈P,fi(x)是数据对象x在第i维属性上的取值;

上述公式用来计算第一维属性上取值最偏离用户偏好的医学数据对象集合R1,R0表示初始化数据集P,由此获得第一维属性上取值相对优的医学数据集合接下来在第一维已经相对优的医学数据集合中,利用公式(3.2)获得第二维属性取值最差的医学数据对象集合,然后从医学数据集合中剔除掉,以此类推,最后得到k维属性取值都相对优的医学数据对象集合

ε-filtering过滤方法步骤如下:εi的取值根据用户对各医学属性的偏好程度设置,任意用户会为每个属性提供最大的阈值,如果数据对象在属性上的取值不满足相应阈值,那么该数据对象被过滤掉,任意用户被建模为εi由如下公式计算:

其中表示第j个用户对第i个属性的阈值,max{fi}表示数据集P上的数据在第i个属性上取值的最大值,使用阈值过滤掉在用户关注的属性上取值不满足用户要求的数据对象。

S4.对剩余数据进行子空间Skyline查询以得到用户需求的医学属性的Skyline结果,在所述子空间Skyline查询过程中,对于并行流数据进行双向过滤与合并。所述对剩余数据进行子空间Skyline查询的方法是:假定一个d维的医疗数据空间S={s1,s2,...,sd},P是在数据空间S上的医学数据集,每个数据点pi∈P都是空间S上的d维数据点的一个维度上的医疗数据,F是医疗数据空间S上的子空间即|F|=k且k≤d,在数据空间S上的医疗数据对象pi,其在子空间F上的投影被表示为p′i是k元组,当且仅当子空间F上不存在点p′j支配p′i,p′i是子空间Skyline查询结果,并将该查询结果返回客户终端。

在这个实施例中,所述步骤S1中的O2O环境下的实时医学流数据采集的具体方法是:医生使用基于移动(3G/4G)网络的移动多媒体数据采集器,针对病人的多个因素(如心电监护图、血压、体温、脉率等),采用同时并行的基于流数据的物联网多因素传感芯片定期采集病人个体状态,特征提取与过滤处理后的数据提交至云端;所述医学流数据和查询请求以流数据的方式,且通过使用时间窗口监测的方式以时间窗口为大小,以流的方式通过无线网络批量汇总发送至云端。

所述步骤S4中的双向过滤与合并的方法是:在流合并处理器上,对先后到达的时间窗口内的数据流进行skyline过滤,如果同一时间窗口内的数据存在支配关系,进行过滤操作,因为在同一时间窗口中的数据进对等的,所以采用正向skyline过滤与反向skyline过滤两个过滤步骤。正向skyline过滤即为A-filtering过滤方法,用户使用客户终端发起查询请求后,其利用多目标决策的优化函数,最后得到k维属性取值都相对优的医学数据对象集合。反向skyline过滤即为-filtering过滤,其在通过正向skyline过滤后,根据用户对各医学属性的偏好程度设置最大的阈值,如果数据对象在属性上的取值不满足相应阈值,那么该数据对象被过滤掉。

在该实施例的实际操作中,例如医生在选择手术方案时,考虑的因素有:手术的价格;,手术的效果;术后的影响;恢复的速度等。那么根据用户要求,对手术的效果、手术的价格和术后的影响这三个属性比较关注。由于患者有一定的经济实力,根据属性重要性进行排序后,上述子空间属性的顺序调整为:{手术的效果,术后的影响,手术的价格}如图5(b)所示。对于疲惫的用户而言,由于数据集P中的数据p5,p6疗效不是很好,按照A-filtering过滤方法的过滤原则,这两个数据对象不应该作为结果集返回给用户。因此p5,p6在图5(c)中被标注为红色,且在支配关系比较之前就被删除掉了。同理数据对象p4,p8因为术后效果偏离用户喜好,在图5(c)中被标注为橙色,也被删除掉。以此类推,直到所有子空间的属性都被考虑到。在A-filtering过滤方法中,它每次只能过滤掉属性取值最差即最偏离用户喜好的数据对象。于是用另外一种基于容忍度的过滤方法ε-filtering再进行过滤。假定医生在选择手术方案时,在于患者协商后提出选择手术成功率80%以上,预后功能恢复至90%以上的手术方案。那么利用这些阈值可以过滤掉用户比较关注的手术效果,术后影响,手术价格上取值不满足用户硬性要求的数据对象。在过滤之后对剩下的数据对象进行子空间Skyline查询如图5(d)所示。最后得到结果集p1,p2返回给用户。

实施例2:一种移动O2O环境下的基于多医学因素的Skyline双过滤检索方法,为解决移动O2O环境下子空间Skyline算法处理多医学因素海量数据成本高和结果集庞大的问题,针对用户具体的需求,根据不同用户需求来选取代表点,主要由三种过滤方法A-filtering方法,ε-filtering和D-filtering方法组成,执行步骤如下:

S1.移动端将O2O环境与多医学因素的子空间Skyline查询系统的建立,使用移动终端进行实时的医学流数据采集以及执行A-filtering方法、ε-filtering和D-filtering方法这三种过滤方法;

S2.智能移动客户端适应不同终端医学用户功能需求与使用习惯,发起查询请求,用户端主要包括医生与病人;

S3.医生使用基于3G/4G网络的移动多媒体数据采集器,针对病人的多个因素进行采集,采用可以同时并行以流数据的基于物联网的多因素传感芯片进行病人个体状态定期采集;

S4.采集过程采用时间窗口监测的方式,定期将采集到的数据进行合并,并以流的方式通过无线网络进行发送;

S5.通过搭建的移动O2O环境进行采集,然后进行特征提取与过滤处理后的数据,提交云终端或云数据中心,运行基于多医学因素子空间Skyline查询系统进行数据分布式分析,移动和云端的数据以流的方式,进行信息交互与双向过滤与剪枝优化处理。

作为技术方案的补充,该移动O2O环境下多医学因素子空间Skyline查询系统是一种基于移动端/云服务器架构的移动云计算模型,客户端是运行在移动手机、平板电脑、医学物联网可穿戴采集设备等终端设备上的应用程序,这些终端使用互联网或者移动3G/4G网络与服务器进行通信,发送查询请求并接收查询结果。为了确定Skyline的多个因素的确定,医学系统的使用终端用户可以在终端选择根据对多个相关的医学属性的偏好程度并输入各属性的阈值,最后将查询请求以流数据的方式,以时间窗口为大小,批量汇总并发送给云服务器端,值得注意的是,我们和以往的C/S架构不同于,我们采用基于时间窗口大小的数据流的方式进行数据传输,云端服务器端也是以流的方式进行数据接收与校验。当任意一端的数据超过时间窗口大小时,进行等待。每个时间窗口的数据,我们将以并行的方式同时分配给不同的计算节点进行并行化处理。这样可以极大的提高Skyline双向过滤算法的并行化执行效率.

该系统的云端模型是一个在云环境中轻量级客户端的基于Spark改良后的系统架构。分布式的Skyline计算主要在后端云平台中进行,它包含两个模块:预处理模块和查询模块。在预处理模块中,按照时间窗口大小,系统并行地扫描数据到自定义空间不均等划分的多维网格中,按照每个因素的阈值,利用一个维度上的网格支配关系进行剪枝,减掉被Skyline支配掉的该维度的网格以及网格里的数据。与传统的skyline不同在于,我们是采于多维网格的模式,并行在多个因素不同维度上进行并行化计算与处理。服务器端接收用户的查询请求,执行A-filtering方法,ε-filtering方法和D-filtering这三种过滤方法,前两种过滤方法会从全空间并行提取用户感兴趣的k(k≤d)维子空间,其中d为全空间维数,并且按照医疗终端用对各因素的喜好程度对其进行排序得到一个有序的k维网格索引,然后以流的方式分布式扫描比较数据点的支配关系得到子空间Skyline结果,以流的方式返回给终端并采用第三过滤方法进行双向过滤与合并。

因为我们创新的采用了基于时间窗口的分布式流处理技术,在多个计算节点中进行并行化处理,这样的话,有些虚拟化的计算机节点如果资源或计算负载大的话,可能计算结果会慢一些,甚至可能死机。这种情况下,该计算任务可以放弃,并交由其它结点来进行处理。当分布式计算的结点有完成时,将以流的方式推送给流数据采集器并对结果进行合并与优化。这样会产生的用户体验是,计算机的结果会迅速出现,但结果是不完善的,随着Skyline过滤结果的流数据的积累,最终的结果会越来越精确。根据用户的等待要求,用户在积累一定的精度的结果的数据后就可以进行决策而不必等待所有的结果汇总.这将极大的提高用户的交互式体验.

作为技术方案的补充,子空间Skyline查询定义为假定一个d维的医疗数据空间S={s1,s2,...,sd},P是在数据空间S上的医学数据集,即每个数据点pi∈P都是空间S上的d维数据点即一个维度上的医疗数据,比如说心脏病的心律情况。F是医疗数据空间S上的子空间即|F|=k且k≤d。在数据空间S上的医疗数据对象pi,pi在子空间F上的投影被表示为p′i是k元组。如果p′i是子空间Skyline结果,当且仅当子空间F上不存在点p′j支配p′i

作为技术方案的补充,属性重要性的偏序关系定义为假定存在一个二元偏序关系>是在子空间F上的。偏序关系>表示在F中属性重要性的大于关系,f1,f2是F上的两个属性,f1,f2∈F,如果f1的重要性大于f2,那么它们的偏序关系可以表示为f1>f2。我们得到一个有序的k维子空间{f1,f2,...,fk}。在以上两个定义的基础上,提出了三种过滤方法:A-filtering、ε-filtering和D-filtering过滤方法,以减少子空间Skyline返回的结果集大小。

A-filtering过滤方法的处理步骤具体为:多目标决策的优化函数可被定义为min(f1(x),f2(x),...,fk(x)),其中x∈P,fi(x)是数据对象x在第i维属性上的取值。公式见图1:

公式1.1用来计算第一维属性上取值最偏离医学用户喜好的数据对象集合R1,R0表示初始化数据集P,由此可以获得第一维属性上取值相对优的数据集合即接下来在第一维已经相对优的数据集合中,利用公式1.2来计算获得第二维属性取值最差的数据对象集合,然后从集合中剔除掉。以此类推,最后得到k维属性取值都相对优的医学数据对象集合

ε-filtering过滤方法的处理步骤具体为:过滤方法ε-filtering是在A-filtering过滤方法的基础上,为每个属性提供相应的阈值。在公式1.4中εi(0≤εi≤1)就是为第i个属性提供的容忍度限制阈值,εi的取值根据医学用户喜好设定,比如要高血压的内科治疗,患者合并有肾功能障碍,因此该治疗的目的是既能有效控制高血压又能减少对肾功能损伤,那么用户对系统发出命令,限定传输的结果为控制高血压且对减少对肾功能损害。它通常会提前由医学用户通过查询请求一起发送给服务器,执行查询。这样每次过滤掉属性取值偏离用户喜好的数据对象多一些,获取最终的结果集会相对小一些。

作为技术方案的补充,将上面的公式应用到表1中的数据集,假定子空间F中的属性按用户喜好重要程度排序的结果为{Mileage,Price,OccupancyRate},ε123)是每个属性对应的阈值,当ε1=1时,可以计算得到R1={p5,p6},而当时,R1={p5,p6,p1,p9},

进一步的,根据医学用户喜好从全空间索引中提取用户感兴趣的子空间,例如进行一个高血压患者进行内科治疗,考虑的因素有药物疗效、药物副作用、患者合并症三个条件。那么根据医生要求,对药物疗效、药物副作用、患者并发症这三个属性比较关注。用户对药物疗效的需求比较大,那么系统根据属性重要性进行排序后,上述子空间属性的顺序调整为:{药物疗效,患者合并症,药物副作用}。对于药物疗效优先的用户而言,由于数据集P中的数据p5,p6与条件相差较远,按照A-filtering过滤方法的过滤原则,这两个数据对象不应该作为结果集返回给用户。因此p5,p6被标注为红色,且在支配关系比较之前就被删除掉了。同理数据对象p4,p8因为患者并发症这一属性偏离用户喜好,被标注为橙色,也被删除掉。以此类推,直到所有子空间的属性都被考虑到。

进一步的,在A-filtering过滤方法中,它每次只能过滤掉属性取值最差即最偏离用户喜好的数据对象。于是用基于容忍度的过滤方法ε-filtering进一步筛选。ε-filtering过滤方法的具体步骤为:εi在之前的公式1.4被提及过。εi的取值要根据用户的喜好来设置。任意用户会为每个属性提供最大的阈值,如果数据对象在属性上的取值不满足相应阈值,那么该数据对象就要被过滤掉。任意用户可以被建模为那么εi由如下公式计算:

其中表示第j个用户对第i个属性的阈值,max{fi}表示数据集P上的数据在第i个属性上取值的最大值。利用这些阈值过滤掉那些在用户比较关注的属性上取值不满足用户硬性要求的数据对象。

进一步的,在过滤之后对剩下的数据对象进行子空间Skyline查询,最后得到结果集p1,p2返回给用户。

由于在云端Skyline查询处理过程中,我们采用了并行流数据的处理过程,有些快的计算节点的结果数据流会先到达,有些慢的计算节点的结果数据流会后到达.所以我们流合并处理器上,进行了D-filtering过滤过程,对先后到达的时间窗口内的数据流进行skyline过滤,如果同一时间窗口内的数据存在支配关系,就进行过滤操作.因为在同一时间窗口中的数据进对等的,所以我们采用正向skyline过滤与反向skyline过滤两个过滤步骤,所以把我们这个过滤方法称为Double双向过滤过方法即D-filtering。这种方式实际是对流数据结果的进一步过滤与优化,以产生更小的结果集。并加快检索速度,提高用户体验。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

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