一种基于偏离特征的离群点挖掘方法与流程

文档序号:13421941阅读:367来源:国知局
一种基于偏离特征的离群点挖掘方法与流程

本发明涉及离群点挖掘领域,具体涉及一种基于偏离特征的离群点挖掘方法。



背景技术:

离群点挖掘是数据挖掘的一个重要的研究分支,有效的应用在日志分析、入侵检测、质量控制等现实生活领域,离群点挖掘包括离群点检测和离群点分析。离群点检测是运用适当的算法,检测出不同于大部分行为的异常行为,得到一些真实但又罕见的离群信息;离群点分析则是对检测出来的信息进行深入分析,得出知识或模式;它的任务是识别其数据特征显著不同于其他数据对象的观测值。离群点检测在数据挖掘中非常重要,因为如果异常是由固有数据的变异造成的,那么对它们进行分析可以发现蕴藏在其中更深层次的、潜在的、有价值的信息。因此,离群点检测是一个非常有意义的研究方向。数据挖掘专家将离群点定义为“离群点是数据集中与众不同的数据对象,其表现与其它数据对象非常不同,以至于使人怀疑这些数据对象并非随机的偏差,而是由另外一种完全不同的机制所产生的”。这个定义一定程度上揭示了离群的本质,被广泛引用。但这只是一个并不严格的描述型定义。事实上,长期以来学术界并没有一个统一的关于离群点的形式化定义。研究者们常常根据不同的应用环境给出离群点的形式化定义。多年来,研究者们已经针对不同类型的数据集提出了不同的数学方法用于检测不同情况下所存在的离群点。虽然离群点不服从数据的普遍分布规律,可能是由某种异常机制产生的,但是挖掘研究这些点却有着很高的实用价值,其中隐含的知识,有时甚至比正常数据更重要,而随意的忽略或丢弃这些点,则有可能会丢失很有价值的知识,对结果产生巨大的影响。

总的来说,离群点检测技术主要分为基于统计的技术、基于距离的技术、基于密度的技术、基于聚类的技术。为了解决基于距离的离群点检测技术无法检测局部离群点的问题,人们提出了基于密度的离群点检测技术:lof算法及其变体。该技术解决了局部离群程度的度量及其判断问题,能够检测出局部离群点,并且对于数据对象在不同密度的区域也能够很好的处理。其难点在于算法的参数选择比较困难。目前,基于密度的lof检测算法已经广泛应用在离群点挖掘上,但是由于在处理海量数据信息时,lof算法的时间复杂度很高,限制了其应用范围。

本发明改进针对于lof离群点检测算法时间复杂度较高的问题,从偏离特征的角度,提出了一种快速lof检测算法,记为f_lof。f_lof检测算法不再基于整个数据集去计算各个数据点的局部离群因子(离群程度),而是通过将数据空间划分为网格,基于各个网格的质心来计算数据点的局部离群因子。此外,该算法还可以有效地用于实时离群值检测,每次向数据集添加新数据点时,可以利用现有数据点的网格结构,仅需要识别数据点所处在网格的位置,而不需要进一步的计算新数据点的局部离群因子。f_lof检测算法在实现和传统检测算法相近的检测精度时,明显减少了计算时间,提高了效率,最终得到理想的检测效果。



技术实现要素:

本发明的目的是为了解决lof检测算法时间复杂度较高的问题,从偏离特征的角度,提出了一种改进的快速lof检测算法的一种基于偏离特征的离群点挖掘方法。

本发明为了实现上述目的,采用以下技术方案实现:一种基于偏离特征的离群点挖掘方法,包括以下步骤:

(1)将数据集d的各个维度划分为h个等间距的间隔,则整个数据集被划分为hd个网格;

(2)将每个数据点xi∈d与网格索引j={1,...,hd}做一个关联,如果一个网格中不包含数据点,则不考虑该网格;

(3)对于划分形成的空间中的各个网格j,求出网格的质心cj,并计算质心cj的局部离群因子lofk(cj);

(4)计算每个数据对象的局部离群因子值,数据集中对象的局部离群因子等于所属网格质心的离群因子。

所述步骤(3)中的网格的质心cj和质心cj的局部离群因子lofk(cj)计算过程如下:

(3.1)计算质心cj的第k距离k_dist(cj);对于数据空间中的两个对象cj和o,以欧式距离为度量,对给定的正整数k,将cj的第k距离概括为cj与o之间的距离,记为k_dist(cj),其中对象o满足如下条件为:至少存在k个对象o'∈d\{cj}满足d(cj,o')≤d(cj,o);至少存在k-1个对象o'∈d\{cj}满足d(cj,o')<d(cj,o);

(3.2)计算质心cj的第k距离领域nk(cj);通常将数据空间中与质心cj的距离小于或者等于k_dist(cj)的质心对象集合定义为nk(cj),用公式表示为:

nk(cj)={o|d(cj,o)≤k_dist(cj)};

(3.3)计算质心cj与其nk(cj)中数据点的可达距离;质心cj相对于其他质心o的可达距离是指cj的第k距离和cj与o之间距离的较大值,用如下公式表示为:

reach_distk(cj,o)=max{k_dist(o),d(cj,o)};

其中,o∈nk(cj);

(3.4)计算质心cj的局部可达密度lrdk(cj);lrdk(cj)是将质心cj与其第k距离领域nk(cj)中所有对象的平均可达距离求倒,计算公式为:

(3.5)通过以上得出的结果,求出质心cj的局部离群因子lofk(cj),公式为:

所述步骤(4)中计算每个数据对象的局部离群因子值,如果数据集d中的对象xi属于网格j,则该对象的局部离群因子表示为:

lofg_k(xi)=lofk(cj)。

本发明的有益效果在于:

本发明一种基于偏离特征的离群点挖掘方法,在检测数据集中的离群点时,为了降低计算时间,提高检测效率,f_lof检测算法不再基于整个数据集来计算各个数据点的局部离群因子,而是将数据空间划分为网格,基于网格的质心来计算数据点的局部离群因子。由于网格的数量少于数据点的数量,在可接受的误差下,明显降低了时间复杂度。此外,该算法还可以有效地用于实时离群值检测,每次向数据集添加新数据点时,可以利用现有数据点的网格结构,仅需要识别数据点的网格位置,而不需要进一步的计算新数据点的lof值。

附图说明

图1为本发明的挖掘过程图;

图2为本发明的流程框图;

图3为本发明的f_lof检测算法在uci数据库中四个数据集上的计算时间对比图;

图4为本发明的f_lof检测算法和lof算法在数据集上的局部离群因子差异对比图;

图5为本发明的f_lof检测算法在uci数据库中四个数据集上的检测精确度对比图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照例图,对本发明进一步详细说明。

目前,无论国内还是国外,都在对离群点挖掘方法进行积极的研究,学者们提出了多种模型方法和相应的算法,它们针对不同的离群点类型和具体的实际问题,各有特点。本发明在前人研究的基础上,针对于lof离群点检测算法时间复杂度较高的问题,从偏离特征的角度,同时结合了经典算法中的优点和创新,提出了一种改进的快速lof检测算法。

结合图1为本发明的挖掘过程图;挖掘过程从获得离群点的定义到数据预处理然后是执行离群点检测方法,从检测方法中得到评估和解释,最后获得知识的过程。

结合图2所示,本发明的流程框图;f_lof检测算法将整个数据空间划分为一定数量的网格,计算每个网格质心的lof值,而非整个数据集中数据对象的lof值局部离群因子。对于数据集中的各个数据对象,其lof值与所属网格的质心的lof值相等。对于由n个d维数据对象组成的数据集d∈rd,假设各个维度上的划分数设置为h,一种基于偏离特征的离群点挖掘方法,详细的计算步骤如下:

(1)将数据集d的各个维度划分为h个等间距的间隔,则整个数据集被划分为hd个网格;

(2)将每个数据点xi∈d与网格索引j={1,...,hd}做一个关联,如果一个网格中不包含数据点,则不考虑该网格;

(3)对于划分形成的空间中的各个网格j,求出网格的质心cj,并计算质心cj的局部离群因子lofk(cj);

(4)计算每个数据对象的局部离群因子值,数据集中对象的局部离群因子等于所属网格质心的离群因子。

所述步骤(3)中的网格的质心cj和质心cj的局部离群因子lofk(cj)计算过程如下:

(3.1)计算质心cj的第k距离k_dist(cj);对于数据空间中的两个对象cj和o,以欧式距离为度量,对给定的正整数k,将cj的第k距离概括为cj与o之间的距离,记为k_dist(cj),其中对象o满足如下条件为:至少存在k个对象o'∈d\{cj}满足d(cj,o')≤d(cj,o);至少存在k-1个对象o'∈d\{cj}满足d(cj,o')<d(cj,o);

(3.2)计算质心cj的第k距离领域nk(cj);通常将数据空间中与质心cj的距离小于或者等于k_dist(cj)的质心对象集合定义为nk(cj),用公式表示为:

nk(cj)={o|d(cj,o)≤k_dist(cj)};

(3.3)计算质心cj与其nk(cj)中数据点的可达距离;质心cj相对于其他质心o的可达距离是指cj的第k距离和cj与o之间距离的较大值,用如下公式表示为:

reach_distk(cj,o)=max{k_dist(o),d(cj,o)};

其中,o∈nk(cj);

(3.4)计算质心cj的局部可达密度lrdk(cj);lrdk(cj)是将质心cj与其第k距离领域nk(cj)中所有对象的平均可达距离求倒,计算公式为:

(3.5)通过以上得出的结果,求出质心cj的局部离群因子lofk(cj),公式为:

所述步骤(4)中计算每个数据对象的局部离群因子值,如果数据集d中的对象xi属于网格j,则该对象的局部离群因子表示为:

lofg_k(xi)=lofk(cj)。

结合图3所示,通过实验数据分析,描述了在四个数据集上,运用f_lof检测算法和lof检测算法计算lof值的所需要的计算时间的详细情况。对于每个数据集,x轴代表每个实验方案中各个维度上的不同划分数,y轴代表每个实验方案中计算lof值所消耗的时间(秒)。对于四个数据集,通过实验结果可以得出,f_lof检测算法的计算时间要优于lof算法,而且随着划分数h不断的变大,计算时间在不断增加。

结合图4所示,描述了通过对每个数据集进行实验,用lof检测算法得到的精确lof值和用f_lof检测算法得到的近似lof值之间的差距。在该实验方案中,x轴代表按照精确lof值降序排列的数据点,y轴代表各个数据点的lof值,而两条曲线分别代表精确lof值和近似lof值的变化情况。从图中不难得出,对于四个数据集的实验,虽然本算法得到的近似lof值与精确lof值之间在绝对度标存在着一定的差距,但是这些差距很小,在可接受的误差范围内,明显降低了时间消耗,提高了检测的效率。

结合图5所示,显示了对于每个数据集,在采用不同的划分值时,精确率的变化情况。如图所示,该算法的精确度随着网格数量的增加而提高,考虑到精确度和时间效率之间的权衡,在离群点的检测中,降低较小的精确度,换取较大的时间效率增益,是一种有效的策略。

总而言之,通过上面几个对比分析可以看出,本文提出的f_lof检测算法的一种基于偏离特征的离群点挖掘方法无论在运行时间效率方面,亦或是算法应用在实时离群点检测上,均表现出了其优越性。

要说明的是,以上所述实施例是对本发明技术方案的说明而非限制,所属技术领域普通技术人员的等同替换或者根据现有技术而做的其他修改,只要没超出本发明技术方案的思路和范围,均应包含在本发明所要求的权利范围之内。

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