求两个点的欧氏距离_基于全局距离和的异常值检测算法研究——一种基于全局距离和的异常值检测算法...

本文提出了一种基于全局距离和的异常值检测新规则,旨在解决传统距离算法对参数敏感及数据分布不均的问题。新规则通过累积每个对象与其他对象的距离和来识别异常值,减少了对参数设置的需求。同时,针对数据分布不均,文章提出了一种面向数据分布不均的距离度量函数,以改善异常值检测效果。实验结果表明,提出的算法在检测能力和精度上优于传统方法。
摘要由CSDN通过智能技术生成

一种基于全局距离和的异常值检测算法

现有基于距离的异常值检测算法的检测结果对参数 p、d 或 k 具有高度的敏感性,并且往往受到数据分布不均的影响,针对这些问题,本文做了以下研究。

1.一种基于全局距离和的判定异常值新规则

1.1基于距离的异常值定义

基于距离的异常值概念主要思想是根据某个距离函数计算数据对象之间的相互距离,然后再根据数据对象的最近邻点来判定其是否为异常值。以下是常见的几种基于距离的异常值定义:

e9a045bd399fc8eef9a8c68389ba9671.png

(2)异常值是数据集中到各自第 k个最近相邻点的距离是所有数据对象中最大的前n 个对象。

(3)异常值是数据集中到各自的k个最近相邻点的平均距离是所有数据对象中最大的前n个对象,或者变形表述为,异常值是数据集中到各自的k个最近相邻点的之和是所有数据对象中最大的前n个对象。

尽管以上几个定义有所差别,但都是以对象之间的距离为基础的。我们注意到,定义(1)中的 p、d 参数和定义(2)、(3)中的 k 参数都需要用户设置。实验表明,算法的检测准确率对这些参数十分敏感,一般地,缺乏相关知识的用户为了寻找合适的参数往往会涉及多次的尝试和错误,这在一定程度上限制了这些算法的应用。

1.2.一种基于全局距离和的判定异常值新规则

为降低异常值检测对用户的要求,本文提出了一种基于全局距离和的判定异常值的新规则。其主要思想是:首先计算数据集中对象两两之间的距离,然后累计每个对象与其它对象的距离,设 n 为异常值个数 则距离和最大的前 n 个对象即为异常值。具体描述如下:

对原始数据集进行标准化处理后,计算m个对象两两之间的距离dij形成距离矩阵R:

865ebefcc19c6eef9acb8ebaa9ea3480.png

c2e8168a915b4ce477ab17a9018e6e82.png

此规则可以看作是上述定义(3)的变形,因为它是通过对象与数据集中所有的其它对象的距离和来判定异常值的,所以消除了定义(1)对参数 p、d 和定(2) 、(3)对参数 k 的设置要求。

1.3常用的距离度量函数

常用的距离度量函数一般为绝对距离(又称曼哈顿距离)或欧氏距离。对于m 维空间中的两个数据对象 xi和 xj ,它们之间的欧氏距离定义如下:

3f28b5e9eb0946b186daadbc1783d576.png

(1)

曼哈顿距离定义为:

a2944e7fa89d3a77e4e15ab62fadcf67.png

(2)

xij表示第 i 个对象第 j 个属性的值。以上两个距离可统一为一种形式,即明考斯基距离:

e54c861137a1cdecf6583a69644b16e0.png

(3)

1.3一种面向数据分布不均的距离度量函数

基于上述常用距离的异常值检测算法对数据分布密度的变化非常敏感,对于密度变化较大的数据集的检测效果较差。如果数据分布满足大多数正常值密集分布、而其它少数正常值分布稀疏的情况,那么数据分布稀疏处的正常值到其它对象的距离和反而要大于出现在分布密集附近的异常值到其它对象的距离和,如果按照基于常用距离的算法进行异常值检测,很可能会把正常值误判为异常值。

如图 2 所示,某一检测属性数据值的变化近似满足正弦曲线,呈非均匀分布,其中对象 s 为数据分布密集处附近的一个异常值,对象 t 为数据分布稀疏处的一个正常值,但是对象 t 到其它对象的距离和明显要大于对象 s 到其它对象的距离和,这样我们就会把正常值 t 误判为异常值,反而认为异常值 s 为正常值。

2b850c5179dc9cc42cb69cb65767296a.png

图2 非均匀分布数据集中的异常值

Fig.2 Outliers in data set with nonuniform distribution

为解决这一问题,我们对基于距离的异常值检测算法常用的欧氏距离进行改进,提出一种面向数据分布不均的距离度量函数,其具体形式为:

cc2722cdcc3196df2cb4674d9769d215.png

(4)

58517ef0c45b67621930d01d5017855e.png

图2中,假设对象s到其附近对象u与对象t到其附近对象w的欧氏距离相等,即:

699bf0a9cd73ad46447db54e15e51ee0.png

(5)

由于

190bfe1a4e1c4d6514928334ad9b0d1b.png

(6)

由式(4)可知

28870da19ef08215ca8e602ff4db9fb0.png

(7)

由以上分析可知,面向数据分布不均的距离度量函数可以有效加大异常值与其它对象的距离,同时又能减小正常值与其它对象的距离,进而可以修正异常值和正常值到其它对象的距离之和,减少检测“误判”的发生。因此,利用面向数据分布不均的距离度量函数进行异常值检测可以有效减少数据分布不均给算法带来的影响。

由于

588fdcf94140323514bd65b61f14cf14.png

(8)

当且仅当 i=j 时等号成立;

8c990198327647ac6cc036f551497667.png

(9)

0dee6b15ca766e2e93306562f939a2cd.png

(10)

所以面向数据分布不均的距离度量函数满足距离定义的三要素:非负性、对称性以及三角不等式。

基于以上分析和改进,本文提出一种基于全局距离和的异常值检测算法,其步骤如下: 1. 根据欧氏距离的定义,分别计算数据集中每个数据对象 xi与其它对象之间的欧氏距离,并分别求得其平均值diO ( m) ;

e1653312fc5917ba420ec00f56b36140.png

1.4实验结果与分析

本实验的数据采集于某大型火电厂 4#锅炉运行现场,我们对电站锅炉的实际监测数据集中含有异常值的具体情况并不清楚,如果直接将其作为实验数据,对所得结果无法进行准确评价。为此,我们结合电站锅炉监测数据的实际采集情况,首先从采集于机组负荷为 270MW 的数据集中抽取 92 个数据对象作为正常值,再从采集于机组负荷为 300MW 的数据集中抽取 8 个数据对象作为异常值,组成含 100 个数据对象的实验数据集,由于二次风流量是保证锅炉氧量在合理控制范围内的基础,对锅炉安全经济运行具有重要意义,因此我们将二次风流量作为数据对象进行异常值检测,其中每个对象都含有前墙第二排二次风流量、后墙第二排二次风流量、后墙第三排二次风流量等属性的数据值,设定其中的 x13、x25、x34、x45、x57、x63、x75、x82为异常值。

表1 部分实验数据

Tab1The experimental data

a71aa6824769320de04428d0035de269.png

本节实验是在 2.6GHz Pentium(R) Dual-Core CPU,1.99GB 内存,Microsoft Windows XP Professional 环境下执行的,试验平台为 Matlab R2010a 软件。 1. 异常值判定新规则有效性的验证 分别利用基于本章 4.3.1 中定义(1)的异常值检测算法(算法 I)和基于本文所采用的异常值判定新规则的检测算法(算法 II)对上述实验数据集进行异常值检测,这两种算法的距离度量函数均采用欧氏距离。算法 I 中的参数 p 设置为 0.97、参数 d 为 8.51 时,检测出两个异常值,为验证基于全局距离和的异常值判定新规则的的有效性与准确性,我们将算法 II 中的 n 值设为 2,即设定异常值的个数为2 个。这两种算法的检测结果如表 4-3 所示,其中算法 II 算法列出的是 sumi最大的两个数据对象。

表2算法 I 与算法 II 的检测结果对比

Tab2Comparison of the detection results of algorithm Iand algorithm II

c6343894eb9c18de3b25c64cff95dac7.png

通过表2可以看出,算法 II 与算法 I 的检测结果完全相同,而基于全局距离和的异常值判定新规则完全避免了对参数 p、d 的设置,并且还给出了异常值的孤立程度,有效解决了经典的基于距离的异常值检测算法对 p、d 或 k 等参数设置的敏感性,从而证明了基于全局距离和的异常值判定新规则是简便且有效的。 其实,异常值的概念不是绝对的,而算法 II 通过量化异常值的异常程度,可以直观地得知每个数据对象的相对异常度,用户可以根据研究的具体情况确定真正的异常值,这比直接判定异常值应该更具有现实意义。

2.改进算法检测能力的验证

DSO 表示采用基于全局欧氏距离和的异常值判定新规则的检测算法,DSU表示采用基于全局改进距离和的异常值判定规则,分别用 DSO 和 DSU 算法对上述实验数据集进行异常值检测,并通过比较分析实验结果对各算法的性能进行评价。 对检测算法的性能从查全率和误判率等方面进行评价:

f6b6fb82bdf82d91d04739cff5784901.png

(11)

其中,η表示查全率,nd和 nt分别表示被检测出的异常值个数和实际含有的异常值个数;查全率反映算法的检测能力,η越大说明算法的检测能力越强。

41a382ad3581dee8f0e470be1a567691.png

(12)

其中,ξ表示误报率,nf和 nn分别表示被误报的正常值个数和实际含有的正常值个数;误报率反映算法的检测精度,ξ越小说明算法的检测精度越高。

实验结果见表 3、4:

表3 DSO 与 DSU 两种算法的检测结果对比

Tab3 Comparison of the detection results of DSO algorithm and DSU algorithm

ad6aa46bc0b007b4b51e832c30aa451f.png

表4DSO 与 DSU 算法的检测结果对比

Tab.4 Comparison of the detection results of DSO algorithm and DSU algorithm

eec35041e2c80b13b2267f8b9375e162.png

从表 3中,我们发现虽然 DSU 算法和 DSO 算法对每个数据对象的相对孤立程度的判定结果并不完全一致,但都能检测出一定数目的异常值;通过与实验数据集比对,统计得知,DSO 算法检测结果中欧氏距离和最大的前 8 个数据对象实际只有 5 个为异常值,而 DSU 算法检测结果中基于面向数据分布不均的距离度量函数的距离和最大的前 8 个对象中有 7 个为异常值。 从表 4得知,DSO 算法的查全率和误判率分别为 62.5%、3.26%,DSU 算法的查全率和误判率分别为 87.5%、1.09%,DSU 的查全率高于 DSO,而误报率却低于 DSO。

对比以上两种算法的检测结果,说明 DSU 算法的检测能力和检测精度都明显优于 DSO 算法,从而验证了本文所用基于面向数据分布不均的距离度量函数通过加大异常值与其它对象的距离以及减小正常值与其它对象的距离,可以有效降低基于距离的异常值检测算法对数据分布不均的敏感性。

通过上述实验,验证了基于全局距离和的异常值判定新规则和面向数据分布不均的距离度量函数的有效性,表明本文所用检测算法不仅可以消除基于距离的异常值检测算法对参数的敏感性,而且降低了数据分布不均对检测算法的影响,同时给出了异常值的异常程度;从而可以有效解决实际工程应用中的异常值检测问题,提高建模所用数据的质量,为数据驱动建模奠定可靠的数据基础。

2 小结

本章首先从概念、产生原因等方面对异常值问题进行了分析,然后对现有的异常值检测方法进行了总结。在此基础上,通过分析基于距离的异常值定义,提出一个判定异常值的新规则;并通过对经典的基于距离的异常值检测算法中的欧氏距离进行改进,提出一种面向数据分布不均的距离度量函数;基于这两点,提出一种基于全局距离和的异常值检测算法,利用该算法对电站锅炉运行的实际监测数据进行异常值检测,结果表明该算法有效降低了数据分布不均对检测算法的影响,具有较高查全率和较低误报率,而且消除了基于距离的异常值检测算法对参数设置的敏感性,降低了对用户的要求,同时量化了异常值的异常程度。

《来源于科技文献,经本人分析整理,以技术会友,广交天下朋友》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值