本发明专利技术公开了一种多层感知网络下糖尿病血检异常值辅助剔除方法。本发明专利技术先根据无监督机器学习算法找出可能的异常值即离群值,根据是否是离群值分类,抽取数据后再交由专业医生对是否是异常值标注标签,从而变为分类任务,最后通过MLP模型(多层感知器)判断是否为异常数据。由于部分血液检查的结果数值分布比较特殊,单用无监督学习分离离群值,会导致离群的正常值被当作异常值,而本发明专利技术进行分层抽样后变为分类数据可以改善这种问题。另外本发明专利技术的分类任务还能考虑到不同变量对于检查值的影响,例如三甲医院的检验值可信度更高等。例如三甲医院的检验值可信度更高等。例如三甲医院的检验值可信度更高等。
【技术实现步骤摘要】
多层感知网络下糖尿病血检异常值辅助剔除方法
[0001]本专利技术涉及一种用于处理糖尿病患者血液检查异常值的算法,属于医学数据异常值处理
技术介绍
[0002]异常值处理方法主要包括统计学方法以及机器学习方法。统计学方法通过对数据进行描述统计分析,观察其方差、标准差、均值等是否和常规值有所差异来判断异常值。机器学习方法通常采用聚类等无监督学习来分离离群值。
[0003]但对于医疗数据而言,不同的检验项目的异常值有着截然不同的分布,显然采用统计学方法无法应对。而某些检验项目的正常值可能恰好是分离值,因此采用无监督学习方式来判断异常值会导致离群的正常值被当作异常值。
技术实现思路
[0004]本专利技术要解决的技术问题是:现有的异常值处理方法无法全面应对医疗数据不同检验项目的异常值具有截然不同分布的问题。
[0005]为了解决上述技术问题,本专利技术的技术方案是提供了一种多层感知网络下糖尿病血检异常值辅助剔除方法,其特征在于,包括以下步骤:
[0006]步骤1、检查来自不同医院的各检查项名称,将属于同一检查项目的不同检查项名称归为同一组;
[0007]步骤2、获取来自不同医院的每个分组下的检查数据;
[0008]步骤3、对检查数据进行初步清洗;
[0009]步骤4、采用无监督学习方式分离每个分组下的离群数据,获得每个分组下的离群数据以及非离群数据;
[0010]步骤5、设定多个分类变量,并获取与检查数据相对应的分类变量的数据值,各分类变量的数据值包括医院的属性值、患者的属性值、检查时间的属性值以及检查项的属性值;
[0011]步骤6、从每个分组的离群数据以及非离群数据中分别抽取检查数据样本,并获得与每个检查数据样本相对应的分类变量的数据值;
[0012]步骤7、由医生判断步骤6抽取的检查数据样本是否为异常值,并打上标签;
[0013]步骤8、对每个检查数据样本相对应的所有分类变量的数据值做嵌入矩阵处理,其中,所有分类变量中的连续数据值在做嵌入矩阵处理前先进行标准化处理,将标准化处理后的连续数据值做嵌入矩阵处理,同时将检查数据样本也做嵌入矩阵处理,则对于每个检查数据样本都能够获得一个对应的输入矩阵,该输入矩阵包括检查数据样本以及对应的所有分类变量的数据值;
[0014]步骤9、将步骤8获得的输入矩阵作为输入,将步骤7获得的标签作为输出,对异常值分类器模型进行训练,获得训练后的异常值分类器模型;
[0015]步骤10、实时获得检查数据以及对应的各分类变量的数据值后,利用步骤8所记载的步骤获得实时输入矩阵,将实时输入矩阵输入训练后的异常值分类器模型后获得当前检查数据是否是异常值的判断结论。
[0016]优选地,步骤3中,清洗检查数据中的负数、中文以及符号。
[0017]优选地,步骤4中,无监督学习方式采用孤立森林算法。
[0018]优选地,步骤7中,抽取样本时,确保离群数据的样本数至少占总样本数的1/4。
[0019]优选地,步骤8中,做嵌入矩阵处理时,先将分类变量的数据值转换为单热编码向量,随后将单热编码向量乘以嵌入矩阵。
[0020]优选地,步骤9中,异常值分类器模型采用MLP分类器。
[0021]由于部分血液检查的结果数值分布比较特殊,单用无监督学习分离离群值,会导致离群的正常值被当作异常值,而本专利技术进行分层抽样后变为分类数据可以改善这种问题。另外本专利技术的分类任务还能考虑到不同变量对于检查值的影响,例如三甲医院的检验值可信度更高等。
附图说明
[0022]图1为本专利技术的流程图;
[0023]图2为MLP分类器的处理过程示意图。
具体实施方式
[0024]下面结合具体实施例,进一步阐述本专利技术。应理解,这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围。此外应理解,在阅读了本专利技术讲授的内容之后,本领域技术人员可以对本专利技术作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
[0025]如图1所示,本专利技术公开了一种多层感知网络下糖尿病血检异常值辅助剔除方法,包括以下步骤:
[0026]步骤1、检查来自不同医院的各检查项名称(检查项名称包括检查项中文名称、检查项英文名称、检查项简称以及检查项代码),将属于同一检查项目的不同检查项名称归为同一组。
[0027]例如:同样是糖化血红蛋白,某些医院的检查项名称可能是“HBA1C”,另外一些医院的检查项名称可能是“GHB”。本实施例中,由医生判断收集来的所有检查项名称是否属于同一检查项目,从而归为不同的分组。
[0028]步骤2、获取来自不同医院的每个分组下的检查数据。
[0029]步骤3、对检查数据进行初步清洗,包括清洗检查数据中的负数、中文以及符号。
[0030]步骤4、采用无监督学习方式分离每个分组下的离群数据,获得每个分组下的离群数据以及非离群数据。
[0031]本实施例中,无监督学习方式采用孤立森林算法,孤立森林算法用于分离分布稀疏且离高密度群距离较远的相关数据,这些数据被称为前述的离群数据。
[0032]孤立森林算法中,单颗树算法流程包括以下步骤:
[0033]步骤1、从训练数据中随机选择n个原数据作为子样本,放入孤立树根节点;
[0034]步骤2、随机指定一个维度,在指定维度的最大值和最小值之间随机生成切割点m,用于分割当前节点数据;
[0035]步骤3、通过切割点生成一个超平面,将节点空间切分为2个子空间,当前所选维度下小于m的点放左分支,大于等于m的点放于右分支;
[0036]步骤4、在节点的左分支和右分支节点分别递归步骤2以及步骤3,一直到叶节点上只剩下一个样本,或节点上所有样本特征完全相同,或树已经达到了设定高度。
[0037]孤立森林算法中,整合多棵树的结果包括以下步骤:
[0038][0039]式中:h(x)为样本点x的路径长度,E(h(x))为路径长度的期望值,c(n)为给定样本n的路径平均长度。
[0040]当E(h(x))
→
c(n)时,f(x,n)
→
0.5,不能区分样本点x是否异常,此时样本路径平均长度与一批孤立数中期望长度相近;
[0041]当E(h(x))
→
0时,f(x,n)
→
1,样本点x被判定为异常;
[0042]当E(h(x))
→
(n
‑
1)时,f(x,n)
→
0,样本点x被判定为正常。
[0043]步骤5、设定多个分类变量,并获取与检查数据相对应的分类变量的数据值,各分类变量的数据值包括医院的属性值、患者的属性值、检查时间的属性值以及检查项的属性值。例如:
[0044]检查时间的属性值可以有:
[0045]星期几(例如星期3);
[0046]月份中的第几天(例如:第本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种多层感知网络下糖尿病血检异常值辅助剔除方法,其特征在于,包括以下步骤:步骤1、检查来自不同医院的各检查项名称,将属于同一检查项目的不同检查项名称归为同一组;步骤2、获取来自不同医院的每个分组下的检查数据;步骤3、对检查数据进行初步清洗;步骤4、采用无监督学习方式分离每个分组下的离群数据,获得每个分组下的离群数据以及非离群数据;步骤5、设定多个分类变量,并获取与检查数据相对应的分类变量的数据值,各分类变量的数据值包括医院的属性值、患者的属性值、检查时间的属性值以及检查项的属性值;步骤6、从每个分组的离群数据以及非离群数据中分别抽取检查数据样本,并获得与每个检查数据样本相对应的分类变量的数据值;步骤7、由医生判断步骤6抽取的检查数据样本是否为异常值,并打上标签;步骤8、对每个检查数据样本相对应的所有分类变量的数据值做嵌入矩阵处理,其中,所有分类变量中的连续数据值在做嵌入矩阵处理前先进行标准化处理,将标准化处理后的连续数据值做嵌入矩阵处理,同时将检查数据样本也做嵌入矩阵处理,则对于每个检查数据样本都能够获得一个对应的输入矩阵,该输入矩阵包括检查数据样本以及对应的所有分类变量的数据值;步骤9、将步骤...
【专利技术属性】
技术研发人员:潘铮,蔡淳,张天驰,陈诚,沈赟,曹川韡,钟翌曦,童庆,尚明曦,崔欣,黎衍云,刘月星,赵晓静,
申请(专利权)人:万达信息股份有限公司上海市第六人民医院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。