一种基于DBSCAN对密度不规则数据进行异常挖掘的改进算法的制作方法

文档序号:17489543发布日期:2019-04-23 20:19阅读:259来源:国知局
一种基于DBSCAN对密度不规则数据进行异常挖掘的改进算法的制作方法

本发明属于数据挖掘领域,尤其涉及一种基于dbscan对密度不规则数据进行异常挖掘的改进算法。



背景技术:

在信息化时代数据量日益增大是人们面临的首要问题,如何快速有效的利用这些数据,或发现数据背后所隐藏的有价值的信息,成为现代科技的一个重要挑战。数据挖掘是人工智能、模式识别、机器学习和统计学等学科的交叉,是适应信息化社会从海量的数据集中,提取有用知识的需要而产生的新的学科。数据挖掘是一种非平凡的过程,其目的就是大量数据集中获取有用的、新奇的、潜在的、最终可以理解的知识和信息。

异常数据挖掘正式进入人们的视野是在1887年,是由统计学家弗朗西斯·伊西德罗·埃奇沃思一篇不一致试验数据论文开始的。国内外针对异常数据产生的原因以及应用领域的不同提出了许多异常数据挖掘算法,其中dbscan算法是最常用的方法之一,该算法不需要事先设定聚类的数目。输入数据的顺序对聚类结果的影响也很小。而且算法对多维数据集和带有"噪声"的空间数据库也有良好的效果。使用dbscan算法对数据进行聚类时,如果某些数据对象不包含在任何簇中,则被判定为"噪声",也是我们所说的异常点。但是,dbscan算法存在对于密度不规则的数据效果不佳的缺点。这是由于该算法是面对整个数据库进行操作的,而其参数却是单一不变的,这导致参数的选择不能适用于数据库中各个密度的数据区域,因此当空间聚类密度不均匀的时候,或者是聚类间距离相差很大时,使用dbscan算法的聚类质量较差,针对dbscan算法对非均匀密度数据集效果差的缺点,本发明提出一种改进的k-means算法与dbscan相结合的方法,先利用差分进化方法改进k-means算法,加快算法收敛速度得到最佳聚类划分和聚类数目,然后再利用改进的k-means对密度不均匀的数据集进行初步划分,之后再采用dbscan算法对已经划分的子数据集进行异常检测,最后再将检测的结果进行分析,合并。得到最终的集合。这样这样相比传统的k-means与dbscan结合的改进算法不仅提高了准确率,而且速度更快,提高了效率,符合对异常数据挖掘高效率的要求。



技术实现要素:

本发明旨在解决以上现有技术的问题。提出了一种提高了准确率,而且速度更快,提高了效率的基于dbscan对密度不规则数据进行异常挖掘的改进算法。本发明的技术方案如下:

一种基于dbscan对密度不规则数据进行异常挖掘的改进算法,其包括以下步骤:

1)、首先引入差分进化算法,通过多次执行样本抽样技术,用最大最小距离算法建立一系列初始聚类;

2)、然后利用差分进化算法改进k-means算法再对密度不均匀的数据集进行初步划分;该算法的所有种群个体,在初始化时得到了一组较优的聚类数目,且在进化过程中通过当代最优种群个体指引,不断的调整聚类数目,实现了对聚类数目的扰动和寻优,然后再利用k-means算法对所有种群个体进行局部搜索,在提高收敛速度的同时获得最优聚类数目和聚类中心即获得初步划分。

3)、之后再采用dbscan基于密度应用于噪声的空间聚类算法对已经划分的子数据集进行异常检测,最后再将检测的结果进行分析、合并。

进一步的,所述差分进化算法在种群进化过程中,以每代最优种群个体为指引,对种群个体动态调整聚类数目和聚类中心,然后利用差分进化算法的全局寻优能力,调整个体聚类数目和聚类中心并进行变异交叉,对聚类数目和聚类中心同时进行优化;并且在进化过程中,还对种群个体执行k-means局部搜索和选择操作,得到最佳聚类划分和聚类数目。

进一步的,所述步骤1)中用最大最小距离算法建立一系列初始聚类,将这些初始聚类的聚类中心和数目作为差分进化算法的初始种群,具体包括:对数据集采用样本抽样技术,对每组样本子集用最大最小距离算法输出k_i个初始聚类中心,作为初始种群个体xi,具体步骤如下:

①随机抽样:从n个对象中随机抽取m个对象,构成抽样样本sm={z1,z2,…,zm};

②从sm中随机选择一个对象zi作为第一个聚类中心m1,即m1=zi;然后从sm中寻找到离zi距离最大的对象zj作为第二个类的聚类中心m2,即m2=zj;

对sm中剩余的每个对象sk分别计算到m1和m2的距离dk1和dk2,让其中的较小值为

计算记录所对应的对象sk,其中sk∈sm;

average表示取平均值,λ仅表示1/2到1之间的一个数值,则将sk作为第三个类的聚类中心m3,其中,λ∈[1/2,1);

重复步骤第三到第五步,直到再找不到符合条件的新的聚类中心;

将k_i个聚类中心构成种群的一个个体xi,即xi={m1;m2;…;;mk_i}

重复以上过程,直至产生n个种群个体;通过上述操作,每个种群的信息既包含一个较优的初始聚类中心信息又包含聚类数k的信息。

进一步的,所述动态调整个体聚类数目和聚类中心,具体包括:

①寻找当代种群中适应度值最小的个体xi,其对应的聚类数为k_best;

②对于个体xj,其对应的聚类数为k_j;

如果k_j<k_best,则采用类的分解方法,即选择距离最远的两个类,然后求这两个类内样本数据的均值,用均值作为一个新的聚类中心,这样个体xj自动增加一个新的类,更新xj的编码;

如果k_j>k_best,则采用类的合并方法,个体xj自动删减一个现有类,即选择距离最近的两个类,取两个类的样本的均值代替这两个类的聚类中心,更新xj的编码;

否则,对于聚类数目和最优个体k_best相同的个体xj,等概率执行自动增加一个新的类或者自动删减一个现有类或者聚类数目保持不变,来实现对聚类数目的扰动;

③重复步骤②,直至所有个体的聚类数调整完毕;

通过上述操作,可以使最优个体指引其余个体,来不断调整聚类数,从而寻找到一个最佳的聚类数目k。

进一步的,动态调整完个体聚类数目和聚类中心后,进行变异交叉,具体如下:

变异和交叉操作,对种群中个体xi的每个聚类中心类mik位置更新公式为:

其中,f为(0,1)间的随机数,i1、i2、i3为随机选择的三个种群个体编号,k1、k2、k3分别为i1、i2、i3三个种群个体随机选择的三个类编号,t为进化的代数,k=1,2,…,k_i,对个体xi的所有类位置更新完毕,得到个体vi(t+1);

交叉操作:

其中,k=1,2,…,k_i;cr为交叉概率,k_rand为[1,k_i]间的随机整数。

进一步的,利用k-means算法进行种群个体局部搜索和选择操作获得最佳聚类划分结果,用k_means算法对种群个体进行如下优化:

根据个体的聚类中心编码,按照最近邻原则来确定对应的聚类划分;

按照聚类划分计算新的聚类中心,取代原来的编码值;

如果达到结束条件,判断新聚类中心的适应度,如果比以前的更优,则更新个体的聚类中心,否则转向②。

进一步的,所述将划分后的数据用dbscan算法进行聚类处理并具体步骤如下:

输入:划分后的数据集d1,半径参数ε,密度阈值minpts

输出:聚类结果及噪声数据

从数据集d1中随机抽取一个未被处理的对象p,且在它的ε-近邻满足密度阈值要求称为核对象;

遍历整个数据集,找到所有从对象p的密度可达对象,形成一个新的簇;

通过密度相连产生最终簇结果;

重复执行步骤②和③,直到数据集中所有的对象都为“已处理”。

本发明的优点及有益效果如下:

本发明创新点在于在以往dbscan处理不规则密度数据的改进方法上做出一些优化,达到比以往算法更精确更快速的效果。dbscan算法处理不规则数据,需要先对密度不均匀的数据集划分,本发明在以往的划分方法(k-means)上做出改进,达到更高的效率,具体步骤和好处如下:

1.引入差分进化方法,初始化种群在进化过程中通过差分进化算法的变异、交叉操作产生下一代解时有较大的随机性,所以不容易陷入局部极小值,这个是对以往划分方法k-means算法在划分数据时易陷入局部最小值的缺陷的改进。

2.所有种群个体,在初始化时得到了一组较优的聚类数目,且在进化过程中通过当代最优种群个体指引,不断的调整聚类数目,实现了对聚类数目的扰动和寻优,提高了划分数据的精确度,也提高了后续dbscan算法处理数据的精确度。

3.在进化过程中还对种群个体进行k-means局部搜索,提高了差分算法的收敛速度同时提高了数据划分的速度;因此该改进后的算法能很好的达到全局寻优快速收敛的目的。提高了效率。

附图说明

图1是本发明提供优选实施例基于dbscan对密度不规则数据进行异常挖掘的改进算法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。

本发明解决上述技术问题的技术方案是:

本发明提出一种基于dbscan对密度不规则数据进行异常挖掘的改进算法,其先利用差分进化方法改进k-means算法对初始中心敏感、易陷入局部最优以及需要用户根据先验知识事先给定聚类数目的缺点,加快算法收敛速度得到最佳聚类划分和聚类数目,然后再利用改进的k-means对密度不均匀的数据集进行初步划分,之后再采用dbscan算法对已经划分的子数据集进行异常检测,最后再将检测的结果进行分析,合并。得到最终的集合。主要包括以下步骤:

①step1:随机抽样:从n个对象中随机抽取m个对象,构成抽样样本sm={z1,z2,…,zm};

step2:从sm中随机选择一个对象zi作为第一个聚类中心m1,即m1=zi;然后从sm中寻找到离zi距离最大的对象zj作为第二个类的聚类中心m2,即m2=zj;

step3:对sm中剩余的每个对象sk分别计算到m1和m2的距离dk1和dk2,让其中的较小值为

step4:计算记录所对应的对象sk,其中sk∈sm;

step5:若则将sk作为第三个类的聚类中心m3,其中,λ∈[1/2,1);

step6:重复步骤第三到第五步,直到再找不到符合条件的新的聚类中心;

step7:将k_i个聚类中心构成种群的一个个体xi,即xi={m1;m2;…;;mk_i}

step8:重复以上过程,直至产生n个种群个体。

②在种群进化过程中,种群个体总是以当代最优个体为指引,动态调整其聚类数目,调整算法如下:

寻找当代种群中适应度值最小的个体xi,其对应的聚类数为k_best;

对于个体xj,其对应的聚类数为k_j

如果k_j<k_best,则采用类的分解方法,即选择距离最远的两个类,然后求这两个类内样本数据的均值,用均值作为一个新的聚类中心,这样个体xj自动增加一个新的类,更新xj的编码;

如果k_j>k_best,则采用类的合并方法,个体xj自动删减一个现有类,即选择距离最近的两个类,取两个类的样本的均值代替这两个类的聚类中心,更新xj的编码;

否则,对于聚类数目和最优个体k_best相同的个体xj,等概率执行自动增加一个新的类或者自动删减一个现有类或者聚类数目保持不变,来实现对聚类数目的扰动;

重复步骤②,直至所有个体的聚类数调整完毕。

通过上述操作,可以使最优个体指引其余个体,来不断调整聚类数,从而寻找到一个最佳的聚类数目k。

③变异和交叉操作,对种群中个体xi的每个聚类中心类mik位置更新公式为:

其中,f为(0,1)间的随机数,i1、i2、i3为随机选择的三个种群个体编号,k1、k2、k3分别为i1、i2、i3三个种群个体随机选择的三个类编号,t为进化的代数,k=1,2,…,k_i。对个体xi的所有类位置更新完毕,得到个体vi(t+1)。

交叉操作:

其中,k=1,2,…,k_i;cr为交叉概率,k_rand为[1,k_i]间的随机整数。

④利用k-means算法进行种群个体局部搜索和选择操作获得最佳聚类划分结果,用k_means算法对种群个体进行如下优化:

step1:根据个体的聚类中心编码,按照最近邻原则来确定对应的聚类划分;

step2:按照聚类划分计算新的聚类中心,取代原来的编码值;

step3:如果达到结束条件(足够好的位置或者聚类中心不变),判断新聚类中心的适应度,如果比以前的更优,则更新个体的聚类中心,否则转向step2。

⑤将划分后的数据用dbscan算法进行聚类处理并比较效果,具体步骤如下:

输入:划分后的数据集d1,半径参数ε,密度阈值minpts

输出:聚类结果及噪声数据

①从数据集d1中随机抽取一个未被处理的对象p,且在它的ε-近邻满足密度阈值要求称为核对象;

②遍历整个数据集,找到所有从对象p的密度可达对象,形成一个新的簇;

③通过密度相连产生最终簇结果;

④重复执行步骤②和③,直到数据集中所有的对象都为“已处理”。

通过以上描述,可以发现基于密度的聚类就是一组“密度相连”的对象,以实现最大化的“密度可达”。不包含在任何聚类中的对象就是噪声数据。

以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

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