基于层次化深度学习的医疗数据库离群数据检测算法①

2020-03-18 07:55李晓峰王妍玮
计算机系统应用 2020年3期
关键词:离群层次化网格

李晓峰,王妍玮,李 东

1(黑龙江外国语学院 信息工程系,哈尔滨 150025)

2(普渡大学 机械工程系,西拉法叶市 IN47906)

3(哈尔滨工业大学 计算机科学与技术学院,哈尔滨 150001)

1 引言

数据库管理系统和信息技术在近年来得以快速发展,人们收集和产生数据的能力不断提高,医疗数据库中存在的数据量呈直线增长.过去对数据的检测分析主要通过分析员完成,在专家意见的基础上通过数据分析在医疗数据库中获取和查询数据,由分析员决定数据分析的结果.但由于数据库中的数据急剧膨胀,数据的复杂性和时效性也不断增强,传统方法已经不能满足人们的要求.为了从医疗数据库中获取有用的信息,需要改进现有的数据检测技术.

在医疗数据库中存在一些与其他数据行为不同,或是与其他数据差异较大的数据,被称为离群数据.离群数据中通常存在有用的信息,因此需要对医疗数据库中存在的离群数据进行检测,众多学者进行了相关研究,并取得了一定的成果.

Hauskrecht M 等[1]通过对数据离群点检测实现异常患者管理,该方法通过使用EMR 存储库来学习将患者状态与病人管理操作相关联的统计模型,使用电子病历保存患者信息,通过与以往病历的异常分析,获取异常患者行为,但该方法的计算代价较大;Yu YW 等[2]提出了一种新的基于邻域轨迹离群点的分类方法,对研究对象真实数据集进行理论分析和实证研究,验证了本文方法在捕获不同类型数据的有效性,但该方法的离群点检测率不高,且误差率较高;Jobe JM 等[3]提出一种基于计算机的数据集群方法,将Rousseuw 的最小协方差行列式方法的重加权版本与最初基于多步聚类的算法结合起来,找出离群点,实验结果表明,该方法稳健性较好,但是离群点检测率较低,计算代价大;邹云峰等[4]提出基于局部密度的数据库离散数据检测算法,该算法将弱k近邻点和强k近邻点概念引入离散数据检测中,对邻近数据点在数据库中的离群相关性进行分析,根据分析结果区别对待数据点,通过数据点离群性预判方法完成医疗数据库离群数据的检测,该算法检测离散数据的执行时间较长,存在检测效率低的问题.李少波等[5]提出基于密度的数据库离群数据检测算法,该算法在离群数据检测过程中引入滑动时间窗口,通过滑动时间窗口划分数据,计算数据的信息熵,根据计算结果对数据进行筛选和剪枝,通过离群因子对筛选后的数据进行判断,完成数据库离散数据的检测,该算法计算得到的离群因子存在误差,不能准确的对医疗数据库中的数据进行判断,存在离散点误差率高的问题.魏畅等[6]提出基于约简策略的数据库离散数据检测算法,该算法在马氏距离标准的基础上对数据集进行简约处理,通过数据流时间相关性和数据分布密度准则构建决策模型,通过决策模型对数据库中存在的离散数据进行检测,该算法构建的决策模型精准度较低,导致离散点检测率低.尹娜等[7]提出了一种基于混合式聚类算法的离群点挖掘在异常检测中的应用方法,该方法通过k-中心点算法找出簇中心,在此基础上去除其中较隐秘的数据样本,再结合基于密度的聚类算法计算出离群数据的异常度,从而判断出离群点.但是该算法在挖掘隐秘样本时出错率较高,致使最终的检测结果存在较大误差.

针对目前现有方法中存在的离群数据检测过程执行时间较长、检测效率低、离群点检测率低的问题,提出基于层次化深度学习的医疗数据库离群数据检测算法.在对空间中的稀疏区域和稠密区域进行划分再合并,实现数据过滤,通过层次化深度学习过程融合专家知识增强对离群数据的多层感知,实现对离群数据的检测,达到降低算法计算代价、降低耗时、提高检测率和准确率的目的.

2 动态网格划分与合并

医疗数据库中存在海量的数据,在对其中的离群点检测之前,本文基于层次化深度学习的医疗数据库离群数据检测算法首先使用动态网格划分方法对医疗数据库中的数据进行筛选,构建候选离群数据集,以此来达到缩小检测规模、减少检测执行时间的目的.

动态网格划分方法是根据医疗数据库中数据流的密度特点对数据做网格分裂及合并处理,按照密度大小对数据库空间中的数据进行分类,划分为稀疏区域和稠密区域,对稠密区域中存在的大量主体数据进行分析,存储有较大概率成为离群点的数据并构建候选离群点集合[8,9].

将较小的权重赋予给历史数据,降低历史数据对网格划分的影响,使当前数据在数据库中的分布情况能够更好的通过网格进行反应[10].

式中,ri代 表的是数据点.网格统计信息元素的计算公式如下:

设tc代表的是当前时间.根据上述性质,增量更新数据在网格C中对应的统计信息如下:

在初始化处理时,对数据的网格进行分割,获得初始网格,根据网格统计信息可以计算得到数据在网格中对应的平均值 μi和标准偏差σi:

如果网格的密度达到设定的阈值时,分割网格.将数据聚集并划分到对应的网格中是网格分裂合并的原则[11].所以保存每个维度上网格对应的方差和均值,选择最大方差相应的维度,在均值处做划分处理,可以在两个新生成的网格中划入数据.

式中,m inj代 表的是第j维度上在网格中存在的最小值;maxj代表的是第j维度上在网格中存在的最大值.

通过对网格进行划分再合并,能够去除数据集中的非离群数据,保证剩余的数据均为离群数据,从而实现数据过滤,有效降低算法计算代价和复杂度,节约耗时提高医疗数据库离群数据检测的效率.

3 医疗数据库离群数据层次深度学习检测

医疗数据库中,针对数据类别的确定有多种方式,可依据不同设备采集到的数据进行分类,可依据不同种类疾病进行数据分类,还可依据不同身体部位进行数据分类等,只有依据同一分类方式获取得到的医疗数据才具有实际意义.因此,本文提出了基于深度学习的医疗数据分类和检测框架,在每一分类层次上都能够实现数据检测,即采用层次化深度学习方法对医疗数据库中存在的离群数据进行检测.

现有的离群数据检测算法一般都是根据专家经验设定对象邻域半径,结果随机性和主观性较大[13].本文所提的基于层次化深度学习的医疗数据库离群数据检测算法中,深度学习是基于模拟人脑进行学习的一种神经网络,本文采用一种基于卷积神经网络的深度网络结构进行离群数据检测;层次化是指包含了专家知识层次和数据属性取值分布信息层次两部分,依据这两者构建深度网络分类器,有效感知离群数据,提高离群数据检测结果的准确率.基于层次化深度学习的离群数据检测结构框架如图1 所示.

根据图1 可知,层次化深度学习检测框架中,基于专家知识和数据属性取值分布信息这两个层次分类,构建了深度网络分类器.接下来主要通过对数据差异度量来训练分类器,从而实现离群数据检测,具体过程如下:

图1 层次化深度学习检测框架

医疗数据库离群数据存在混合型属性值和数据型属性值,为了有效的对两者之间存在的差异进行度量,主要通过度量邻域距离实现[13,14].设HEOMB(x,y)代表的是重叠度量值,其计算公式如下:

式中,参数dc ji(x,y)的计算公式如下:

通过式(22)确定邻域半径 εc j:

式中,std(cj)代 表的是属性cj取值时对应的标准差,可以通过该标准差对属性均值的分散程度进行衡量[15].如果标准差std(cj)的 值较大时,表明在属性cj上大部分数据的均值和取值之间存在的差异较大;如果std(cj)的值较小时,表明在属性cj上大部分数据的均值和取值之间存在的差异较小[16,17].

λ代表的是专家设定的参数,邻域半径的大小可以通过参数λ 进行调整[18].

设VDM(x,y)代表的是差异度量值,其计算公式为:

式中,x,y为对象集中存在的对象;P代表的是对象集对应的特征集;df(xf,yf)代 表的是xf、yf之间存在的距离.

为了确定数据在数据库中的离群程度,离群度量数据型属性的取值[19,20].用NVDM(xi,xj)代表某存在对象xi和yi之 间的邻域值差异度量值,设NOF代表的是邻域离群因子,其计算公式如下:

设 μ代表的是预设的离群点判定阈值,对比邻域离群因子NOF与阈值μ 的大小.如果满足如下条件,则该数据为离群数据,否则为离群数据.对所有的数据判断完,即完成了对医疗数据库中离群数据的检测.

4 实验分析与结果

为了验证基于层次化深度学习的医疗数据库离群数据检测算法的整体有效性,需要对其进行测试.

实验条件设置如表1 所示.

表1 实验条件设置情况

实验数据:本文使用UCI 机器学习库中的Annealing和Wisconsin Breast Cancer 数据集(网址:http://archive.ics.uci.edu/ml/).为增强实验说服力,将本文所提的基于层次化深度学习的医疗数据库离群数据检测算法(算法1)与文献[2](算法2)、文献[3](算法3)、文献[4]中的基于局部密度的数据库离散数据检测算法(算法4)、文献[5]中的基于密度的数据库离群数据检测算法(算法5)、文献[6]中的基于约简策略的数据库离散数据检测算法(算法6)、文献[7]中的基于混合式聚类算法的离群点挖掘在异常检测中的应用方法(算法7)进行对比测试.

实验选取的评价指标及计算方式如下:

(1)计算代价:数据在实际应用中,由于过滤不佳或其他问题,易导致错误率增加,加大计算代价,本实验以计算代价为指标进行分析,选取代价权值体现不同算法的计算代价情况,代价权值越高,计算代价越大.

(2)检测时间:在迭代次数相同的条件下,测试本文算法和算法4、算法5、算法6、算法7 等5 种不同算法检测离群数据的执行时间,执行时间越短证明检测效率越高.

(3)离群点检测率:为了进一步验证本文所提的基于层次化深度学习的医疗数据库离群数据检测算法的整体有效性,将离群点检测率作为对比指标进行实验,计算方法如下:

设L代表的是离群点检测率,其计算公式如下:

式中,Nl代 表的是检测出正确的离群点总数;Nz代表的是数据集中存在的离群点总数.

(4)离群点误差率:将离群点误差率作为对比指标,对基于层次化深度学习的医疗数据库离群数据检测算法、算法2、算法5、算法6、算法7 进行测试.

设W代表的是离群点误差率,其计算公式如下:

式中,M1代 表的是输出的离群点总数;M2代表的是正确离群点总数;S代表的是数据集总数.

4.1 计算代价对比

对本文基于层次化深度学习的医疗数据库离群数据检测算法与算法2、算法3、算法4 进行对比,结果如图2 所示.

图2 计算代价对比

分析图2 可以看出,本文基于层次化深度学习的医疗数据库离群数据检测算法的计算代价明显较低,代价权值不超过1.5,而算法2、算法3、算法4 的代价权值集中在1.0~3.0 之间,算法2 最高,代价权值多在2.5 以上,由此可以看出,本文算法的计算代价小,具有一定的优势.因为本文算法通过对网格进行划分再合并,去除了数据集中的非离群数据,即进行了数据过滤,有效提高了数据质量,降低了计算代价.

4.2 检测时间对比

在迭代次数相同的条件下,5 种不同算法检测离群数据的执行时间测试结果如图3 所示.

图3 5 种不同算法的执行时间对比

分析图3 可知,随着迭代次数的不断增加,不同算法的在检测离群数据时的执行时间也在不断发生变化.其中,本文所提的基于层次化深度学习的医疗数据库离散数据检测算法在多次迭代中的最多执行时间为200 s,其执行时间折线仅在迭代次数为300 次时与基于混合式聚类算法的离群点挖掘在异常检测中的应用方法的执行时间折线相交,证明该算法的执行时间明显少于基于局部密度的数据库离散数据检测算法、基于密度的数据库离群数据检测算法、基于约简策略的数据库离散数据检测算法、基于混合式聚类算法的离群点挖掘在异常检测中的应用方法的执行时间.这是主要因为基于层次化深度学习的医疗数据库离群数据检测算法采用动态网格划分方法对数据进行筛选,有效缩小了数据检测的范围和规模,因此节省了检测数据所用的时间,大大提高了检测效率.

4.3 离群点检测率对比

对基于层次化深度学习的医疗数据库离群数据检测算法、算法2、算法3、算法6、算法7 进行测试.

基于层次化深度学习的医疗数据库离群数据检测算法、算法2、算法3、算法6、算法7 的离群点检测率计算结果如表2 所示.

表2 5 种不同算法的离群点检测率测试结果(%)

为了更直观、清晰地对比不同算法的离群点检测率,将表2 中的数据用折线图的形式表现,如图4 所示.

图4 5 种不同算法的离群点检测率对比

分析表2 和图4 中的数据可知,在5 次不同迭代中,本文所提的基于层次化深度学习的医疗数据库离群数据检测算法的平均离群点检测率为97.6%,算法4 的平均离群点检测率为83.0%,算法5 的平均离群点检测率为75.8%,算法6 的平均离群点检测率为69.4%,算法7 的平均离群点检测率为82.2%.对比5 种不同算法的离群点检测率可知,基于层次化深度学习的医疗数据库离群数据检测算法的离群点检测率始终高于另外4 种算法,进一步证明了本文所提算法的有效性.究其原因,是因为本文算法基于多层次深度学习进行离群数据检测,融合了卷积神经网络和层次分类两者的优势,有效提高了算法的离群点检测率.

4.4 离群点误差率对比

基于层次化深度学习的医疗数据库离群数据检测算法、算法2、算法5、算法6、算法7 的离群点误差率计算结果如表3 所示.

表3 5 种不同算法的离群点误差率计算结果

为了更直观地对比不同算法的离群点误差率,将表3 中的数据用折线图的形式表现,如图5 所示.

分析表3 和图5 可知,在五次不同迭代中,本文所提的基于层次化深度学习的医疗数据库离群数据检测算法的平均离群点误差率为0.12%;算法2 的平均离群点误差率为0.288%;算法5 的平均离群点误差率为0.292%;算法6 的平均离群点误差率为0.35%,算法7 平均离群点误差率为0.316%.对比5 种不同算法的平均离群点误差率可知,基于层次化深度学习的医疗数据库离群数据检测算法的离群点误差率始终低于另外4 种算法,证明了本文所提算法的有效性.本文算法融合专家知识和数据的属性取值分布信息,从多个层次感知离群数据信息,从而降低了离群数据检测误差.

图5 5 种不同算法的离群点误差率对比

综上所述,本文所提的基于层次化深度学习的医疗数据库离散数据检测算法的离群点检测率较高、离群点误差率较低.这主要是因为基于层次化深度学习的医疗数据库离群数据检测算法在过滤离群数据时,采用动态网格划分法降低数据检测的计算代价,缩短了检测执行时间,而在计算邻域半径时,融合专家知识和数据的属性取值分布信息,降低了检测误差,大大提高了基于层次化深度学习的医疗数据库离群数据检测算法的有效性.

5 结语

医疗信息量的不断增长以及信息技术的飞速进步,使医疗数据库中积累了大量数据.如何在医疗数据库中及时、高效、准确的获取信息,是目前亟需解决的问题之一.针对当前医疗数据库离群数据检测算法存在检测效率低、离群点检测率低和离群点误差率高的问题,本文提出基于层次化深度学习的医疗数据库离群数据检测算法,可以精准的在短时间内完成医疗数据库中离群数据的检测,解决了当前医疗数据库离群数据检测算法中存在的问题,具有计算代价小、检测耗时短、离群点检测率高、离群点误差率低的优点,为数据检测、挖掘技术的发展奠定了基础.在未来的研究阶段,将深入对不同属性的离群数据进行精细检测,进一步提高检测效果.

猜你喜欢
离群层次化网格
面向量化分块压缩感知的区域层次化预测编码
基于相关子空间的高维离群数据检测算法
基于类别混合嵌入的电力文本层次化分类方法
基于皮尔森相关算法的云存储层次化去冗优化
基于改进键合图方法的层次机电系统的测试性建模与分析
网格架起连心桥 海外侨胞感温馨
追逐
随感
近荷独坐
候鸟