基于聚类的离群点检测
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PMLDOF算法首先利用多重聚类思想剪枝(丢弃)目标数据集内包含的簇数据,同时得到由剩下的非簇数据组成的候选离群点集。然后对候选离群点集执行LDOF算法,并检测出符合条件的离群点。可以将PMLDOF对离群点的检测过程分为两个阶段:候选离群点集的初选阶段和真正离群点的精选阶段。
初选阶段
初选阶段首先运用多重聚类剪枝思想对数据集进行剪枝,得到初步的离群点集—候选离群点集。理想情况下,多重聚类对目标数据集进行剪枝的过程为:假设目标数据集DS包含n个数据, ,首先在DS上运行包含R个聚类成员的多重聚类,得到R个聚类划分: ,其中 表示第i个DBSCAN聚类成员对数据集聚类得到的聚类划分。然后根据一定的规则对P内的聚类划分进行整合得到一个统一的共识划分P’。最后,将P’中的簇数据剪枝(丢弃),保留剩余的非簇数据组成候选离群点集。
DBSCAN密度算法:
1、DBSCAN算法介绍
DBSCAN算法是将密度足够大的数据组成类。DBSCAN需要由用户主观来选择参数从而影响了最终的聚类结果,对于数据量为凡的样本集合,DBSCAN的计算复杂度为D( )。一般采用空间索引的方法降低时间复杂度,复杂度为D( )。
2、DBSCAN算法用到的定义如下
定义3.1点p的KNN距离所有Np内的数据到p的平均距离,记作p的平均距离,记作dp,计算公式如下:
其中, 表示点p与点q之间的距离,而且 0。
定义3.2点p的KNN内部距离Np内所有数据对象间的平均距离,记作Dp,计算公式如下:
定义3.3点p的局部距离离群因子点p的k最近邻距离与k最近邻内部距离的之比,记作ldof(p),计算公式如下:
需要解决的问题
1)得到聚类划分
PMLDOF算法中,多重聚类由多个具有不同参数的DBSCAN聚类算法组成。其需要设置多个DBSCAN参数,所采取的策略是:首先采用相应方法获得目标数据集一个DBSCAN经验参数,然后根据该经验参数合理地设置其它参数,即以经验参数为中心合理地对参数加大或减小。具体地,可以保持经验半径参数Eps不变,以经验Mints参数为中心选取mints-i;类似地,保持密度参数Mints不变,以Eps为中心选取eps-i的值。事实上,多重聚类的每个聚类成员对数据集的聚类过程都是相互独立的,所以它们对数据集的操作是可以并行推进的。这使得多个DBSCAN算法的时间复杂度与单个DBSCAN算法的时间复杂度相差不会太多。
为了实现逻辑等价簇的匹配,需要使用聚类相似度度量评估两个聚类的匹配程度。本文采用聚类相似度度量。该度量的计算公式为:
其中, 和 是两个二值向量,表示两个不同聚类划分中的两个聚类簇。例如,某个数据集有5个数据记录,{1,2,3,4,5}。该数据集的某个划分包含两个簇:{{1,3}{2,4,5}}。那么,这两个簇的等效二值向量表示分别为{1,0,1,0,0}和{0,1,0,1,1}。 越大表示 和 的相似度越大。
(1)LDOF算法中,由于需要计算所有数据点的ldof值,导致其时间复杂度很高。然而,数据集中的绝大多数数据是正常点,离群点只占很小一部分。这意味着对LDOF算法中存在大量的无效(或无价值)ldof值计算。这种无效的计算直接导致了算法较高的时间复杂度。
(2)LDOF对最近邻参数k比较敏感,其离群检测精度受k值影响大。
2)聚类匹配算法
从前面的讨论已经知道,不同的聚类划分间的逻辑等价簇有可能存在着簇标签不匹配的问题。下面对不同划分间逻辑等价簇不匹配的情况进行分析和探讨。
P1和P2表示同一数据集的两个不同的聚类划分,P1和P2间逻辑等价簇不匹的情况可以总结为下4种情形:
a) P1和P2包含的簇数相等,聚类划分基本一致,基本一致,但是因为两个划分中簇标签的标记顺序不同,导致簇标签不匹配。如图3.5所示:
c)一个划分内的多簇所包含大部数据是属于另一个划分内某个簇的。如图3.7所示:P2内的C3簇和C4簇的大部分数据是属于P1的C2簇的,它们与C2有非常高的重叠性,也一定差异性,
显然地,与情形2类似,应将C3簇和C4簇视为簇视为C2簇的等价。
d)一个聚类划分内的某些簇在另个划分内找不到等价簇。如图3.8所示:P2的C1簇和C3簇都可以在P1内找到等价簇,但是C4簇却无论如何也找不到等价簇。
3、描述如下
(1)输入聚类数据,然后任意选取一个数据点茗,检查数据点菇的Eps邻域。
(2)如果戈是核心点而且没有被划分到某一个类,则找出所有从戈密度可达的点,最终形成一个包含菇的类。
(3)如果z不是wenku.baidu.com心点,则被当做噪声处理。
(4)转到第一步,重复执行算法;如果数据集合中所有的点都被处理,则算法结束。
离群点分类
把基于距离的离群点分为平凡和非平凡离群点,非平凡离群点按照其不同的特征被进一步细分为强离群点和弱离群点。
若数据对象p在某个属性空间Ap上离群,如果存在非空子空间B Ap,在B中p也是离群的,则称p是平凡离群点,否则p是非平凡离群点;如果当前B中再没有其它离群数据,则p为强离群点,若B中仍含有另一离群数据p’,且p’≠p,则称p为弱离群点。
定义l(数据点的Eps邻域)以数据样本中任意一点为圆心,Eps为半径的球形区域内包含的点的集合,叫做该数据点的Eps邻域。
定义2(数据点的密度)数据样本中任意一点的Eps邻域内包含的点数,叫做该数据点的密度。
定义3(核心数据点)核心数据点是指在Eps半径范围之内包含等于Minpts或大于Minpts个点的数据样本中任意一点。
定义4(边界数据点)边界数据点是指在某个核心数据点的邻域内,但自身不是核心数据点的数据样本中任意一点。
定义5(直接密度可达)已知Eps,Minpts,对于点 和点 ,如果 是核心点,而且 属于 的Eps邻域,则点 从点 直接密度可达。
定义6(密度可达)如果对于给定的Eps,Minpts存在点链 1, 2, 3⋯ ,其中 1= , = ,而且xi从xi+l直接密度可达,那么点 从点 密度可达。
基于多重聚类的局部离群点检测算法
1、局部离群点检测算法LDOF
该算法定义了一个基于距离的局部离群因子ldof,利用该离群因子可以评估某个数据点p与其自身最近邻邻域集合的偏离程度。ldof(p)的值越大,表示数据点p相对于其邻域的偏离程度越大,p的离群度就越大。
设Np为数据对象p的k最近邻点的集合(不包括对象p)。
②对于候选离群点集中的所有数据对象,计算它们的局部离群因子ldof。
③若某数据的局部离群度属于top-n,则将该数据对象视为离群点。
PLDOP不足
PLDOF算法利用DBSCAN算法作为剪枝手段,虽然既可以适应复杂多变的数据集,又可以改进LDOF的缺点,但是其却带来了错剪离群点的问题。
3、基于多重聚类的局部离群点检测算法PMLDOF
定义7(密度相连)如果在给定Eps,Minpts的情况下,存在点 ,使得点 和点 都从 密度可达,则点 和 是密度相连的。
定义8事先给定Eps和Minpts,基于密度聚类中的一个聚类就是可以密度连接所能包含的最多数据点的集合。不属于任何聚类的数据点的集合称为噪声。
假定输入参数为Eps和Minpts,DBSCAN的算法
LDOF采用了top-n离群检测方式,首先计算所有数据的ldop值,然后根据ldof值对所有数据进行排序,将ldof值最大的n个数据点作为检测结果。这种top-n离群检测方式使得LDOF算不需要再设置局部离群度阈值。
LDOP不足
LDOF不但可以有效地检测数据集中的全局离群点,还可以很好地检测数据集中包含的局部离群点。但是LDOF仍然存在明显的不足:
b) P1和P2包含的簇数不相等,划分内的某些簇是由另一个划分内的某些簇是由另一个裂而成的,导致一对多或情况。如图3.6所示:P1的C2簇被分裂成P2内的C3和C4两个簇,且C3和C4内的数据完全包含于内的数据完全包含于C2。
因为多重聚类的主要目是剪枝数据集中真正的簇数据,所以的簇数据,所以在判定数据的聚类情况时,仅仅关心其是否为簇数据,不必关心具体属于哪个簇。因此,在处理聚类的匹配时,直接将C3和C4这种由一个簇分裂而成的簇视为分裂原簇C2的等价簇即可。
2、基于DBSCAN聚类剪枝的局部离群点检测算法PLDOF
稠密区域内的数据聚集为簇,并不聚集稀疏区域的数据。总之,将DBSCAN算法作为剪枝手段,既可以适应复杂多变的数据集,又可以满足降低局部离群因子计算量的要求。
PLDOF算法分剪枝初选阶段和离群点精选阶段进行,其主要思想和执行步骤如下:
①首先采用DBSCAN算法对数据集进行聚类以找到簇数据,然后将不可能是离群点的簇数据剪枝,保留剩余数据作为候选离群点集。
3)投票整合
本文采用简单投票法对上面经过匹配处理的R个聚类划分进行整合。简单投票法的基本思想是:尽可能多地共享聚类成员对数据对象的分类信息,根据各个聚类成员对数据对象的预测进行投票,每个聚类成员对自己所做的预测投一票,计算数据对象被分配到每个簇的投票比例。依据多数投票原则,如果数据对象属于某个簇的得票超过一半,则将其划分到该簇中。
初选阶段
初选阶段首先运用多重聚类剪枝思想对数据集进行剪枝,得到初步的离群点集—候选离群点集。理想情况下,多重聚类对目标数据集进行剪枝的过程为:假设目标数据集DS包含n个数据, ,首先在DS上运行包含R个聚类成员的多重聚类,得到R个聚类划分: ,其中 表示第i个DBSCAN聚类成员对数据集聚类得到的聚类划分。然后根据一定的规则对P内的聚类划分进行整合得到一个统一的共识划分P’。最后,将P’中的簇数据剪枝(丢弃),保留剩余的非簇数据组成候选离群点集。
DBSCAN密度算法:
1、DBSCAN算法介绍
DBSCAN算法是将密度足够大的数据组成类。DBSCAN需要由用户主观来选择参数从而影响了最终的聚类结果,对于数据量为凡的样本集合,DBSCAN的计算复杂度为D( )。一般采用空间索引的方法降低时间复杂度,复杂度为D( )。
2、DBSCAN算法用到的定义如下
定义3.1点p的KNN距离所有Np内的数据到p的平均距离,记作p的平均距离,记作dp,计算公式如下:
其中, 表示点p与点q之间的距离,而且 0。
定义3.2点p的KNN内部距离Np内所有数据对象间的平均距离,记作Dp,计算公式如下:
定义3.3点p的局部距离离群因子点p的k最近邻距离与k最近邻内部距离的之比,记作ldof(p),计算公式如下:
需要解决的问题
1)得到聚类划分
PMLDOF算法中,多重聚类由多个具有不同参数的DBSCAN聚类算法组成。其需要设置多个DBSCAN参数,所采取的策略是:首先采用相应方法获得目标数据集一个DBSCAN经验参数,然后根据该经验参数合理地设置其它参数,即以经验参数为中心合理地对参数加大或减小。具体地,可以保持经验半径参数Eps不变,以经验Mints参数为中心选取mints-i;类似地,保持密度参数Mints不变,以Eps为中心选取eps-i的值。事实上,多重聚类的每个聚类成员对数据集的聚类过程都是相互独立的,所以它们对数据集的操作是可以并行推进的。这使得多个DBSCAN算法的时间复杂度与单个DBSCAN算法的时间复杂度相差不会太多。
为了实现逻辑等价簇的匹配,需要使用聚类相似度度量评估两个聚类的匹配程度。本文采用聚类相似度度量。该度量的计算公式为:
其中, 和 是两个二值向量,表示两个不同聚类划分中的两个聚类簇。例如,某个数据集有5个数据记录,{1,2,3,4,5}。该数据集的某个划分包含两个簇:{{1,3}{2,4,5}}。那么,这两个簇的等效二值向量表示分别为{1,0,1,0,0}和{0,1,0,1,1}。 越大表示 和 的相似度越大。
(1)LDOF算法中,由于需要计算所有数据点的ldof值,导致其时间复杂度很高。然而,数据集中的绝大多数数据是正常点,离群点只占很小一部分。这意味着对LDOF算法中存在大量的无效(或无价值)ldof值计算。这种无效的计算直接导致了算法较高的时间复杂度。
(2)LDOF对最近邻参数k比较敏感,其离群检测精度受k值影响大。
2)聚类匹配算法
从前面的讨论已经知道,不同的聚类划分间的逻辑等价簇有可能存在着簇标签不匹配的问题。下面对不同划分间逻辑等价簇不匹配的情况进行分析和探讨。
P1和P2表示同一数据集的两个不同的聚类划分,P1和P2间逻辑等价簇不匹的情况可以总结为下4种情形:
a) P1和P2包含的簇数相等,聚类划分基本一致,基本一致,但是因为两个划分中簇标签的标记顺序不同,导致簇标签不匹配。如图3.5所示:
c)一个划分内的多簇所包含大部数据是属于另一个划分内某个簇的。如图3.7所示:P2内的C3簇和C4簇的大部分数据是属于P1的C2簇的,它们与C2有非常高的重叠性,也一定差异性,
显然地,与情形2类似,应将C3簇和C4簇视为簇视为C2簇的等价。
d)一个聚类划分内的某些簇在另个划分内找不到等价簇。如图3.8所示:P2的C1簇和C3簇都可以在P1内找到等价簇,但是C4簇却无论如何也找不到等价簇。
3、描述如下
(1)输入聚类数据,然后任意选取一个数据点茗,检查数据点菇的Eps邻域。
(2)如果戈是核心点而且没有被划分到某一个类,则找出所有从戈密度可达的点,最终形成一个包含菇的类。
(3)如果z不是wenku.baidu.com心点,则被当做噪声处理。
(4)转到第一步,重复执行算法;如果数据集合中所有的点都被处理,则算法结束。
离群点分类
把基于距离的离群点分为平凡和非平凡离群点,非平凡离群点按照其不同的特征被进一步细分为强离群点和弱离群点。
若数据对象p在某个属性空间Ap上离群,如果存在非空子空间B Ap,在B中p也是离群的,则称p是平凡离群点,否则p是非平凡离群点;如果当前B中再没有其它离群数据,则p为强离群点,若B中仍含有另一离群数据p’,且p’≠p,则称p为弱离群点。
定义l(数据点的Eps邻域)以数据样本中任意一点为圆心,Eps为半径的球形区域内包含的点的集合,叫做该数据点的Eps邻域。
定义2(数据点的密度)数据样本中任意一点的Eps邻域内包含的点数,叫做该数据点的密度。
定义3(核心数据点)核心数据点是指在Eps半径范围之内包含等于Minpts或大于Minpts个点的数据样本中任意一点。
定义4(边界数据点)边界数据点是指在某个核心数据点的邻域内,但自身不是核心数据点的数据样本中任意一点。
定义5(直接密度可达)已知Eps,Minpts,对于点 和点 ,如果 是核心点,而且 属于 的Eps邻域,则点 从点 直接密度可达。
定义6(密度可达)如果对于给定的Eps,Minpts存在点链 1, 2, 3⋯ ,其中 1= , = ,而且xi从xi+l直接密度可达,那么点 从点 密度可达。
基于多重聚类的局部离群点检测算法
1、局部离群点检测算法LDOF
该算法定义了一个基于距离的局部离群因子ldof,利用该离群因子可以评估某个数据点p与其自身最近邻邻域集合的偏离程度。ldof(p)的值越大,表示数据点p相对于其邻域的偏离程度越大,p的离群度就越大。
设Np为数据对象p的k最近邻点的集合(不包括对象p)。
②对于候选离群点集中的所有数据对象,计算它们的局部离群因子ldof。
③若某数据的局部离群度属于top-n,则将该数据对象视为离群点。
PLDOP不足
PLDOF算法利用DBSCAN算法作为剪枝手段,虽然既可以适应复杂多变的数据集,又可以改进LDOF的缺点,但是其却带来了错剪离群点的问题。
3、基于多重聚类的局部离群点检测算法PMLDOF
定义7(密度相连)如果在给定Eps,Minpts的情况下,存在点 ,使得点 和点 都从 密度可达,则点 和 是密度相连的。
定义8事先给定Eps和Minpts,基于密度聚类中的一个聚类就是可以密度连接所能包含的最多数据点的集合。不属于任何聚类的数据点的集合称为噪声。
假定输入参数为Eps和Minpts,DBSCAN的算法
LDOF采用了top-n离群检测方式,首先计算所有数据的ldop值,然后根据ldof值对所有数据进行排序,将ldof值最大的n个数据点作为检测结果。这种top-n离群检测方式使得LDOF算不需要再设置局部离群度阈值。
LDOP不足
LDOF不但可以有效地检测数据集中的全局离群点,还可以很好地检测数据集中包含的局部离群点。但是LDOF仍然存在明显的不足:
b) P1和P2包含的簇数不相等,划分内的某些簇是由另一个划分内的某些簇是由另一个裂而成的,导致一对多或情况。如图3.6所示:P1的C2簇被分裂成P2内的C3和C4两个簇,且C3和C4内的数据完全包含于内的数据完全包含于C2。
因为多重聚类的主要目是剪枝数据集中真正的簇数据,所以的簇数据,所以在判定数据的聚类情况时,仅仅关心其是否为簇数据,不必关心具体属于哪个簇。因此,在处理聚类的匹配时,直接将C3和C4这种由一个簇分裂而成的簇视为分裂原簇C2的等价簇即可。
2、基于DBSCAN聚类剪枝的局部离群点检测算法PLDOF
稠密区域内的数据聚集为簇,并不聚集稀疏区域的数据。总之,将DBSCAN算法作为剪枝手段,既可以适应复杂多变的数据集,又可以满足降低局部离群因子计算量的要求。
PLDOF算法分剪枝初选阶段和离群点精选阶段进行,其主要思想和执行步骤如下:
①首先采用DBSCAN算法对数据集进行聚类以找到簇数据,然后将不可能是离群点的簇数据剪枝,保留剩余数据作为候选离群点集。
3)投票整合
本文采用简单投票法对上面经过匹配处理的R个聚类划分进行整合。简单投票法的基本思想是:尽可能多地共享聚类成员对数据对象的分类信息,根据各个聚类成员对数据对象的预测进行投票,每个聚类成员对自己所做的预测投一票,计算数据对象被分配到每个簇的投票比例。依据多数投票原则,如果数据对象属于某个簇的得票超过一半,则将其划分到该簇中。