一种基于体检报告聚类分析的疾病预测方法与流程

文档序号:18458427发布日期:2019-08-17 01:48阅读:367来源:国知局
一种基于体检报告聚类分析的疾病预测方法与流程

本发明涉及机器学习及数据分析技术领域,具体涉及一种基于体检报告聚类分析的疾病预测方法。



背景技术:

大数据时代已经到来,智慧医疗产业也在加速试水,体检报告智能化使健康体检有了更加优质、便捷、高效的体验。大数据的利用可对海量数据进行深度加工和挖掘,精细、动态和智慧的管理体检者的健康。健康大数据还提供具备实时知识产出能力的持续学习型基础设施,开发具有预防性、预测性和可参与性的医疗系统。体检报告智能化将能够提供全程健康医疗服务和管理,预测体检者健康隐患,对可能发生的疾病做到提前预警,给予干预和早期特异性治疗,降低患病风险。实现疾病预防诊疗的科学化管理。

大数据中包含的信息具有很高的价值。聚类分析将特征相近的空间实体划分为不同的组,使不同组间的差别尽可能大,同一组内的差别尽可能小。聚类分析在心理学研究中、生物学研究中和模式识别以及数据挖掘等领域中都起着重要的作用。

k-medoids是常用的空间聚类算法,利用中心点(medoids)作为聚类中心,有效排除了k-means算法中异常值的影响。kaufman和rousseeuw在1990年提出的pam(partitioningaroundmedoids)被认为是最有效k-medoids算法之一。k-medoids聚类算法的基本策略是:首先为每个簇随意选择选择一个代表对象;剩余的对象根据其与代表对象的距离分配给近的一个簇。然后反复地用非代表对象来替代代表对象,以改进聚类的质量。pam利用了贪婪搜索,不一定可以找到最优解,但是比穷尽搜索更快。pam算法的优势在于:pam算法比k-平均算法更健壮,对“噪声”和孤立点数据不敏感;它能够处理不同类型的数据点;它对小的数据集非常有效。

现有的技术有医院有关部门使用excel软件利用传统概率统计知识进行体检报告的数据分析方法,具体步骤如下:

1.人为挖掘体检报告样本中各项指标的生化含义,找到不同体检项目间、体检项目与病理间的联系,挖掘统计学问题;

2.针对问题,使用简单的数学运算、统计、快速傅里叶变换、平滑和滤波、基线和峰值分析等对各项指标数据进行分析;

3.将分析的结果转化为信息,通常用方法有:各种图表工具,即排列图、因果图、直方图、分层图、调查表、散步图、控制图关联图、系统图、矩阵图等等。

这种方法的缺点在于:

1.只能做简单的概率统计学运算。不能较为全面地挖掘体检数据之间的联系及深层潜在的信息,如:无法实现每份体检报告基于各项指标相似性远近的自动分类。

2.只能处理较小的、数值型数据构成的数据集,不能处理海量、多维、混合数据类型的数据集。

3.传统方法分析海量数据费时费力,效率低下,效果不佳。



技术实现要素:

本发明的目的是克服现有方法的不足,提出了一种基于体检报告聚类分析的疾病预测方法。本发明解决的问题主要有两个:一是如何利用聚类算法训练一个分类模型,可以使得海量的新老体检报告按照各自特征(主要是各体检项目指标数据)进行自动分类,其中主要的技术难点是体检各项指标的构成是混合型数据,以及如何评判聚类效果的好坏以矫正聚类算法的参数,从而达体检报告分类的最佳效果;二是如何根据聚类的结果进行疾病预测。

为了解决上述问题,本发明提出了一种基于体检报告聚类分析的疾病预测方法,所述方法包括:

步骤一,从医院数据库中获取体检报告,以及这些报告所有者的后续诊断结果,组成体检报告数据库。并将数据集划分训练集和测试集;

步骤二,运用统计学方法将体检报告依据后续诊断疾病类型分为k类,也即为聚类簇中心数k,可以有多个k值备选;

步骤三,针对体检项目的不同数据类型及数量单位,对数据集体检报告各项目数据进行标准化处理,最终得到标准化后的数据矩阵,之后初始化权重参数w;

步骤四,用权重参数w和运用欧氏距离公式计算标准化后的数据矩阵间的相异性矩阵d;

步骤五,利用聚类算法根据相异性矩阵d进行体检报告的聚类,使得数据集体检报告被分到k个簇;

步骤六,根据测试集里面被错误分类的体检报告的数量来计算测试集数据的损失值ltest大小;

步骤七,调整权重参数w后重复步骤四~六,直至损失值ltest最小,即得到当前k值下的最优聚类模型;

步骤八,更换k值,重复步骤五~七,将体检报告聚到k个不同的类别;

步骤九,计算每一个k值下的轮廓系数,以及考虑损失值ltest大小,来确定最佳的聚类个数k,选出最优聚类模型;

步骤十,拿需要被分类的没有诊断结果的体检报告,用训练好的模型进行聚类,针对聚类结果进行疾病预测;

步骤十一,对疾病进行智能建议。

本发明提出的一种基于体检报告聚类分析的疾病预测方法,使用机器学习中的聚类算法,与传统概率统计处理方法比效果更佳,减轻了人力财力,且充分挖掘了海量体检数据以及数据间的深度联系信息;拓展了疾病预测的方案,使得体检者可以第一时间根据体检数据获得可能患病的信息,给出就诊或健康建议。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例的基于体检报告聚类分析的疾病预测方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是本发明实施例的基于体检报告聚类分析的疾病预测方法流程图,如图1所示,该方法包括:

s1,从医院数据库中获取体检报告,以及这些报告所有者的后续诊断结果,组成体检报告数据库。并将数据集划分训练集和测试集;

s2,运用统计学方法将体检报告依据后续诊断疾病类型分为k类,也即为聚类簇中心数k,可以有多个k值备选;

s3,针对体检项目的不同数据类型及数量单位,对数据集体检报告各项目数据进行标准化处理,最终得到标准化后的数据矩阵,之后初始化权重参数w;

s4,用权重参数w和运用欧氏距离公式计算标准化后的数据矩阵间的相异性矩阵d;

s5,利用聚类算法根据相异性矩阵d进行体检报告的聚类,使得数据集体检报告被分到k个簇;

s6,根据测试集里面被错误分类的体检报告的数量来计算测试集数据的损失值ltest大小;

s7,调整权重参数w后重复s4~s6,直至损失值ltest最小,即得到当前k值下的最优聚类模型;

s8,更换k值,重复s5~s7,将体检报告聚到k个不同的类别;

s9,计算每一个k值下的轮廓系数,以及考虑损失值ltest大小,来确定最佳的聚类个数k,选出最优聚类模型;

s10,拿需要被分类的没有诊断结果的体检报告,用训练好的模型进行聚类,针对聚类结果进行疾病预测;

s11,对疾病进行智能建议。

步骤s1,具体如下:

s1-1:从医院患者就医信息管理系统获取近三年的体检报告,以及每份报告拥有者的后续诊断结果,作为它们的标签。标签一般为疾病类型,如:1-急性胰腺炎、2-维生素缺乏症、3-糖尿病、4-…、5-…,等等。另外为防止这些报告缺失后续诊断结果,需剔除近三个月体检报告;

s1-2:从体检报告库中随机选取80%的体检报告作为训练集,剩下20%的体检报告作为测试集,共同组成体检报告库。

步骤s2,具体如下:

利用excel表格统计数据集体检报告后续诊断结果,按疾病类型进行大类的划分,分为k类,由于不知道聚类效果,所以可以设置多个k值进行备选。

步骤s3,具体如下:

s3-1:记数据集体检报告总数为n,每份体检报告内容由p个体检项目(或指标,又称维或特征,如谷丙转氨酶、谷草转氨酶、白蛋白、红细胞、白细胞等)构成,这些体检报告对象记作x1=(x11,x12,x13,…,x1p),x2=(x21,x22,x23,…,x2p)等等,其中xij是体检报告对象xi的第j个体检项目的值,xi也称作体检报告对象的特征向量。把xi的集合叫做数据矩阵,数据矩阵

s3-2:进行连续型体检数据的标准化处理。标准化处理后,原始数据均转换为无量纲化指标测评值,即各指标值都处于同一个数量级别上,可以进行综合测评分析。标准化统一采用z-score算法,过程为:计算所有数据集体检报告各项目指标的均值与标准差,然后数据矩阵中的每一项减去对应的均值再除以标准差,即得到标准化数据矩阵x′。例如:数据集所有体检报告中的某一连续型数据项目矩阵(数据矩阵x某列转置)计算均值:计算标准差:标准化处理

s3-3:进行离散型体检数据的数值化。对于二值指标,例如:项目葡萄糖(尿常规):阴性或者阳性;项目经颅多普勒:异常或未见异常等等,两项分别数值化为0或1。对于名义型变量,即可能有多个结果,例如:乙肝五项(属于体检报告的一项)检查结果可能为:+-+-+表明感染hbv;+---+提示病毒复制,具有感染性;+--+-…等等多个结果,那么用one-hot编码进行数值化转换。例如:体检报告数据矩阵中代表乙肝五项的一列其经过one-hot编码后变为数值化的

s3-4:离散型数据数值化后的标准化。计算所有数据集体检报告各项目指标的均值与标准差,然后数据矩阵中的每一项减去对应的均值再除以标准差(计算方法同s3-2),最后的结果乘以系数(补偿0/1编码)。通过步骤s3-3和s3-4得到标准化后的数据矩阵

s3-5:初始化p个项目的权重参数w=[w1,w2,…,wp],其中wj为第j个项目的权重,值越大代表对体检报告对象间距离计算结果影响的重要性越大。

步骤s4,具体如下:

用欧氏距离公式计算两体检报告对象xi与x′i间的距离各个对象之间的距离构成的矩阵,叫做相异性矩阵。相异性矩阵

步骤s5,具体如下:

s5-1:pam算法初始化:从数据集p个体检报告对象中的随机挑选k个作为簇中心点。

s5-2:将其余的体检报告对象根据距离d划分至这k个类别中,即距离哪个簇中心最近就划分至哪一簇。计算pam损失值lpam,pam损失值lpam的大小为所有体检报告对象到其隶属簇簇中心的距离之和。

s5-3:每簇均由簇中心对象m和非簇中心对象o构成,依序令其中一非簇中心对象替换簇中心对象,重新计算pam损失值lpam。如果lpam增加则不进行交换;否则,交换簇中心,直到遍历所有非簇中心,即可确定数据集最后的聚类情况。

步骤s6,具体如下:

s6-1:ltest初始化为0。

s6-2:测试集中每发现一份体检报告错误分类则ltest累记加1,最终得到ltest。

步骤s9,具体如下:

s9-1:轮廓系数的计算过程:首先计算内聚度,第i个体检报告对象的内聚度a(i)=average(i对象到所有同簇其它对象的距离);计算分离度b(i)=min(i对象到所有非同簇对象的平均距离),对象i的轮廓系数为可见轮廓系数的值是介于[-1,1],越趋近于1代表内聚度和分离度都相对较优。

最后将所有体检报告对象的轮廓系数求平均,就是该k值下聚类结果总的轮廓系数。

s9-2:综合考虑不同k值下,测试集数据损失值ltest,以及轮廓系数,确定最佳的k值和聚类模型。

步骤s10,具体如下:

拿待预测的新体检报告与部分老体检报告混合聚类,得到聚类结果。统计每个类里老体检报告中各种疾病(小类)的占比,就可对映该类中待预测体检报告体检人患各种病的概率有多大。比如:聚类的结果是其中一个类有107人,其中23个是新体检报告,剩下85个是老体检报告,老体检报告里后续诊断结果表示有5种病,abcde病患病人数分别是a,b,c,d,e,那么这23个新体检报告体检人患abcde病的概率可计算,分别是a/85,b/85,c/85,d/85,e/85。

本发明实施例提出的一种基于体检报告聚类分析的疾病预测方法,使用机器学习中的聚类算法,与传统概率统计处理方法比效果更佳,减轻了人力财力,且充分挖掘了海量体检数据以及数据间的深度联系信息;拓展了疾病预测的方案,使得体检者可以第一时间根据体检数据获得可能患病的信息,给出就诊或健康建议。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

另外,以上对本发明实施例所提供的一种基于体检报告聚类分析的疾病预测方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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