本人研究生期间写的关于聚类算法的一篇论文,已发表,希望对大家学习机器学习、数据挖掘等相关研究有所帮助!

一种改进的自适应快速AF-DBSCAN聚类算法

An Improved Adaptive and Fast AF-DBSCAN Clustering Algorithm

摘要:针对基于密度的DBSCAN聚类算法及其改进算法在全局参数Eps与MinPts选择上需人工干预以及区域查询方式过程复杂和查询易丢失对象等不足,提出一种改进的参数自适应以及区域快速查询的密度聚类算法。根据KNN分布与数学统计分析自适应计算出最优全局参数Eps与MinPts,避免聚类过程中的人工干预,实现聚类过程的全自动化。通过改进种子代表对象选取方式进行区域查询,无需漏检操作,有效提高聚类的效率。对4种典型数据集的密度聚类实验结果表明,提出的方法有效解决了DBSCAN算法参数选取困难和算法效率的问题。

关键字:数据挖掘;DBSCAN;区域查询;全局参数

Abstract:For the density-based DBSCAN clustering algorithm and its improved algorithm at the choice of the global parameter Eps and MinPts require manual intervention and the process of regional query is complex and such query easily lose objects, improved adaptive parameters and fast regional query density clustering algorithm. According to KNN distribution and mathematical statistical analysis adaptively calculates the optimal global parameter Eps and MinPts, which avoid manual intervention and achieve full automation of the clustering process. Through the improved the way of selecting the representative seed to query region, without losing objects, improved the efficiency of clustering. Density clustering results of four typical data sets show that the proposed method effectively solves the difficulties of DBSCAN in parameter selection and efficiency.

Key words: Data Mining; DBSCAN;Region query; Global Parameters



0.引言

数据挖掘作为一种从大量数据中发现感兴趣信息的技术,聚类算法在数据挖掘应用中已经得到日益广泛的应用。其中,基于密度的聚类算法可以发现任意形状的簇且能够较好地处理噪声数据,越来越受到广泛的关注。

DBSCAN算法能够发现任意形状的簇,并有效识别离群点,但聚类之前需要人工选择Eps和minPts 2个参数。当数据量增大时,要求较大的内存支持,I/O消耗也很大;当空间聚类的密度不均匀,聚类间距离相差很大时,聚类质量较差。针对DBSCAN算法在大型数据库与多密度数据集聚类精度低,计算复杂度高,全局参数人工选取等问题,已有不少学者进行了相关研究:Selim Mimaroglu等人[1]提出对位向量使用裁剪技术,提高DBSCAN算法的执行时间;H. Zhou 等人[2] 针对DBSCAN中全局参数Eps和MinPts人工确定的问题,发现距离分布矩阵的每列数据符合一定的数学统计特性,自适应确定出聚类全局参数;H. Jiang等人[3]提出一种基于划分的DBSCAN算法,旨在解决DBSCAN算法在内存占用,处理高维数据和密度分布不均数据聚类效果不好等问题;S.-H. Yue等人[4]提出一种基于距离空间统计特性的方法,确定全局参数;B. Borah等人[5]针对DBSCAN处理整个数据库时内存占率大的问题,提出一种改进的基于抽样的DBSCAN算法,可以有效聚类大规模空间数据;B. Liu[6]提出一种基于密度的快速聚类方法,按照特定维的坐标排序后,选择有序的未被标记的在核心对象邻域以外的点作为种子扩展簇,这样执行区域查询的频率能够降低,对象转换为核函数提高了聚类精度,一定程度上减少了对密度阈值的依赖性;M. Yu[7]提出一种基于概率分布的DBSCAN算法;S. Jahirabadkar[8]等人提出两种聚类方式,一种方式可自适应确定参数Eps和另一种基于每个维度的数据得出子维数据的Eps参数;Z. Xiong[9]等人针对多密度分布数据,提出DBSCAN-DLP算法,通过分析数据的统计特性将数据集按照密度分级,再对各级别进行Eps参数估计;D. Kellner[10]等人提出一种基于格点的DBSCAN算法,解决了输入参数难以估计的问题。

综上所述,基于密度聚类算法的改进点主要集中在全局参数的选择以及如何提高密度聚类效率等问题上。DBSCAN全局参数选择根据k-dist曲线人工确定,过程繁琐,实用性不高。其他基于统计分析的方法,部分以特定数据分布确定全局参数,而数据分布存在不确定性,以特定分布规定不能准确反映数据的分布特性,使计算出的全局参数不准确;在提高密度聚类效率问题上,主要集中在区域查询中的代表对象选择方面,但是选择的代表对象进行区域查询时存在丢失对象现象,也有对丢失对象进行查漏操作,在一定程度上增加了区域查询的复杂度。

1 DBSCAN 算法及改进算法思路

DBSCAN[2]是一种经典的基于密度聚类算法,可以自动确定簇的数量,并能够发现任意形状的簇。Eps近邻表示一个给定对象的Eps半径内的近邻称为该对象的Eps近邻,表示为NEps(p):

designer 自适应 自适应dbscan_聚类

(1)

直接密度可达是指对于给定的Minpts和Eps,从对象q可以直接密度可达p,需要满足的条件是:

designer 自适应 自适应dbscan_机器学习_02

(2)

由于DBSCAN算法的全局参数Eps和MinPts的选取依赖于人工干预,对密度分布均匀的数据根据k-dist曲线升序排列后,人为选择曲线变化幅度开始陡升的点作为Eps参数,并且确定MinPts参数为固定常量4,实施过程繁琐,依赖于人工干预。本文提出一种全局参数自适应选择的方法,根据数据的距离空间的统计分布特性,统计出k-dist值的分布情况,再进行曲线拟合,拟合出分布曲线,通过计算拟合曲线的拐点处对应的值,自适应确定出Eps参数,并根据数据中每个点Eps领域内点数的分布情况,计算出参数MinPts。

DBSCAN以一个核心对象P来拓展一个簇,通过对包含在P邻域内的点进行区域查询扩展簇。由于包含在P中邻域的对象相互交叉,Q是P的邻域内的一个对象,如果它的邻域被P中其他对象的邻域所覆盖,那么Q的区域查询操作就可以省略,Q不需要作为种子对象用于类的扩展。因此,用于Q的区域查询时间和Q作为核心对象的内存占用都可以被省去。而一个核心对象边界的对象更有利于作为候选对象被选为种子,因为内部对象邻域往往会被外部对象的邻域覆盖。因此,抽样种子实际上是选择的代表对象能够准确描绘出核心对象邻域形状的一个问题。实际上,对于密度聚类,在核心对象邻域内的相当一部分种子对象可以被忽略,而选择出核心对象边界的部分代表对象来进行类的扩展,从而达到减少区域查询频度的目的。

所以,为了自适应确定合适的全局参数Eps和MinPts,减少内存占用量和I/O消耗,提高DBSCAN的计算效率, 基于这些分析,本文提出一种改进的自适应快速算法AF-DBSCAN(Adaptive and FastDensity-Based Spatial Clustering of Applications with Noise),旨在以自适应方式确定合理的全局参数Eps和MinPts,以及区域查询时选择部分具有代表性的对象作为种子对象进行类扩展,而不采用所有核心对象的邻域对象作为种子进行类拓展的方式。改进算法算法描述如下:

(1)自适应确定全局参数Eps和MinPts;(2)将所有点分类,分别标记为核心点,边界点和噪声点;(3)删除标记出的噪声点;(4)连接距离在Eps距离累的所有核心点,并归入到同一簇中;(5)各个簇中的核心点对应种子代表对象的选择;(6)遍历数据集,根据选择的代表对象进行区域查询,将边界点分入与之对应核心点的簇中。如果数据集合中所有的点都被处理,则算法结束。

2 AF-DBSCAN聚类算法细节

2.1 参数Eps与参数MinPts的确定

由于密度衡量指标单一,数据集主要针对簇密度差异不明显的数据。根据输入数据集D计算出距离分布矩阵DISTn×n,如公式(3)所示:

designer 自适应 自适应dbscan_密度聚类_03

(3)

其中,n为数据集D的对象数目。DISTn×n是一个n行和n列的实对称矩阵,其中每个元素表示数据集D中对象i和对象j之间的距离。

计算DISTn×n中的每个元素的值,然后逐行按照升序排列。用DISTn×i表示DISTn×n中第i列的的值。对DISTn×i中每一列进行升序排列得到KNN分布,如图1所示。

designer 自适应 自适应dbscan_聚类_04

 

图1 KNN分布图

其中,k=1,…,45,根据k-dist分布曲线可以看出,k=4的dist4曲线可以反映出其他distk曲线的形状。本文选择k=4的distk(k-最近邻距离)的数据进行统计分析,统计dist4的概率分布,如图2所示。

 

designer 自适应 自适应dbscan_机器学习_05

图2 distk(k=4)概率分布图

由图1可以发现任何一条曲线都是在平缓变化后急剧上升,Distk中大部分值落在一个比较密集的区域内,因此可以判断Distk中大部分值应落在一个比较密集的区域内(曲线平缓段),如果可以通过数学方法找出distk中平缓变化到急剧上升处的点或者distk概率分布最为密集的区域,可确定扫描半径参数Eps,所以本文选择图1中distk拐点处的值为Eps。由图2可以看到Distk的概率分布情况,假如能够通过数学方法找到分布曲线的峰值,也可以用峰值点所对应的k-最近邻距离值(横坐标刻度)作为Eps。

对于概率分布数据,通过分析数据集的统计特性,建立统计模型对数据集进行曲线拟合[12]。本文通过实验对概率分布使用傅立叶、高斯和多项式三种典型曲线拟合方法,如图3所示。其中,Gaussian曲线拟合方法的效果最佳,但是由于概率分布的拟合精度过低,不可用于全局参数Eps的估计,SSE: 312.7,R-square: 0.6755,调整R-square: 0.6514,RMSE: 3.403,参数SSE和RMSE越接近0越拟合准确,调整后的R-square和R-square越接近于1越准确,高斯拟合曲线如公式(4)所示:

 

designer 自适应 自适应dbscan_designer 自适应_06

(4)

designer 自适应 自适应dbscan_聚类_07

图3 Gaussian拟合曲线

根据KNN升序排列曲线确定Eps,对dist4曲线进行拟合,对于升序排列得到KNN分布数据,采用三种拟合方法进行曲线拟合,实验发现高斯拟合精度高,但拟合阶数高,计算复杂度高,傅立叶拟合精度不高,而多项式拟合不仅拟合阶数低,而且拟合精度高,计算复杂的低,拟合结果为SSE:0.04636,R-square: 0.9883,调整 R-square: 0.988,RMSE: 0.01788,如图4所示。多项式曲线拟合如公式(5)所示:

designer 自适应 自适应dbscan_密度聚类_08

(5)

designer 自适应 自适应dbscan_机器学习_09

 

图4多项式拟合曲线

根据多项式拟合曲线,求解曲线的拐点,对y求二次导可得公式(6)

designer 自适应 自适应dbscan_密度聚类_10

(6)

求解二次导方程得x的解,见公式(7)

designer 自适应 自适应dbscan_密度聚类_11

(7)

由于较小的值为靠近边界的点,取x解中较大的值,舍去较小的值,将其带入公式(5),可以得到EPS=f(x)。在Eps确定之后,需要确定MinPts的值。首先,根据每个点领域数据点的统计分布特性,依次计算出每个点的Eps-邻域的对象数量,然后计算数据对象的数学期望,即MinPts的值,如公式(8)所示,

designer 自适应 自适应dbscan_数据挖掘_12

(8)

其中,pi表示在点i的Eps邻域的点数。

本文将密度聚类算法与基于统计模型相结合的方法,基于数理统计理论,假定数据集由统计过程产生,并通过找出最佳拟合模型来描述数据集,自适应计算出最优全局参数Eps和Minpts。

2.2 种子代表对象的选择

本文提出一种改进的基于DBSCAN的快速聚类算法。在通过选用核心对象附近区域包含的所有对象的代表对象作为种子对象来扩展类,该算法减少了区域查询的次数,减低了聚类时间和I/O开销。

对于一个给出Eps和MinPts的核心对象P,为了便于阐述,仅考虑2维对象,算法可用于其他大于两维的高维对象,代表对象选择过多则难以发挥算法效率,选择过少则容易造成对象丢失,影响算法聚类质量。本文提出一种以代表对象扩展类的方法,针对FDBSCAN[11]算法在区域查询后,在第一轮核心点区域查询时无丢失对象现象,而在以种子对象进行类扩展时,产生丢失对象,需要选择足够多的代表对象,而I-DBSCAN[5]在二维数据中采用至多8个代表对象,不存在对象丢失的情况。文本结合FDBSCAN与I-DBSCAN,在第一轮区域查询时采用4个代表对象进行类扩展,在继续扩展类的时候,采用选择8个代表对象进行类扩展,在提高查询效率的基础上,解决了类扩展时丢失对象的问题。

在自适应得出Eps和MinPts后,本文提出的代表对象选择方式如下:以核心对象p为中心,并以Eps为半径画圆,以对象p为原点画坐标系交圆周于A、C、E和G四点,再画两条分别与x轴成45度和135度角的两条直径交圆周于B、D、F和H四点。在第一轮的代表对象选择时,以核心点边界的A、C、E和G点为参照,在P的Eps区域中分别选择离A、C、E和G点最近的点作为代表对象,当对于不同参照点存在离其距离最近的点为同一点时,此点只能被选择一次,且属于第一个参考点的代表对象。如果对象是n维数据,则至多可以选择2n个代表对象。

在继续扩展类选择代表对象时,以核心点边界的A、B、C、D、E、F、G和H点为参照点,代表对象选取原则在P的Eps区域中选择离参考点对象最近的点作为代表对象,即使一个代表对象到两个以上的参考点都是最近的,它也只被选一次,且归入第一个参考点的代表对象。因此,在2维空间范围内对任一对象的被选代表对象数最多为8个。一般情况下,对n维空间,由于有3n-1个参考点和2n个象限,因此被选种子数最多为3n-1个,按照以上方式实现区域查询,有效提高聚类效率以及解决对象丢失的问题。

3.实验与分析

本文算法采用java语言编程实现,并在Windows XP系统和eclipse环境下调试运行,PC机硬件配置:Pentium(R) CPU,3G内存, 300GB硬盘。

3.1实验分析

为了验证本文改进算法的参数自适应选择以及区域查询方式的有效性,根据数据集的维度,数据量以及数据密度分布三种标准进行数据库地选择,选取UCI数据库中的4种典型数据集Iris、Wine、Glass和cmc。根据聚类准确度和时间特性分析两项指标对DBSCAN、I-DBSCAN[2]和AF-DBSCAN算法性能进行比较分析,其中聚类准确度采用F-Measure[3]。DBSCAN中的Eps值得设定依据k-dist曲线,选取Dist4曲线图进行参数确定,如图5所示。

designer 自适应 自适应dbscan_聚类_13

图5 dist4曲线图

根据图中平缓变化后急剧上升处对应的k-dist值作为全局参数Eps的值,且Minpts值设为4。可以得到三种数据集Iris、Wine、Glass和cmc的(Minpts,Eps)分别为(4,0.436)、(4,27.330)、(4,3.700)和(4,1.732)。本文提出的AF-DBSCAN的(Minpts,Eps)分别为(7,0.389)、(6,29.870)、(4,2.695)和(5,1.646)。聚类结果如表1所示。由表1可以看出,本文提出的AF-DBSCAN算法自适应计算出的全局参数减少了人为根据k-dist曲线确定全局参数Eps的误差及工作量,以及设定MinPts为固定值4,而使聚类结果达不到全局最优的效果。通过比较分析4种数据集的聚类结果,AF-DBSCAN的F-Measure值均优于其他两种典型算法,尤其在Iris和Glass数据集上,聚类精度比DBSCAN算法分别高12.55%和13.18%。而I-DBSCAN算法规定数据符合泊松分布,对于不同数据集其F-Measure值不稳定,不能适应不同统计特性的数据集。由于密度衡量指标单一,AF-DBSCAN算法适用于簇密度差异不明显的数据集。经过区域查询改进后的AF-DBSCAN算法,算法运行速度明显比DBSCAN与I-DBSCAN算法快,有效减少了密度聚类的时间。

4.结论

针对DBSCAN算法的参数选取困难,计算效率低以及区域查询中代表对象选择后类扩展易丢失对象点等问题,提出一种改进的自适应快速AF-DBSCAN聚类算法,通过分析数据的KNN的数学统计规律,辅助用户自适应确定全局参数Eps与MinPts。通过改进的区域查询方法,有效提高类扩展的效率,AF-DBSCAN算法解决了DBSCAN算法人工干预,给定全局参数导致聚类质量恶化以及大数据集计算效率低的问题。



表1实验比较

数据集

算法

MinPts

Eps

运行时间(s)

准确度

Iris

DBSCAN

4

0.436

0.342

0.7407

I-DBSCAN

6

0.405

0.335

0.8803

AF-DBSCAN

7

0.389

0.157

0.8662

Wine

DBSACN

4

27.330

0.481

0.5994

I-DBSCAN

6

22.890

0.467

0.5667

AF-DBSCAN

6

29.870

0.172

0.6091

Glass

DBSCAN

4

3.700

0.516

0.6561

I-DBSCAN

4

2.980

0.525

0.6522

AF-DBSCAN

4

2.695

0.188

0.7879

cmc

DBSCAN

4

1.732

3.239

0.4491

I-DBSCAN

6

1.691

3.145

0.4491

AF-DBSCAN

5

1.646

1.266

0.4491




参考文献

[1]S. Mimaroglu and E. Aksehirli, "Improving DBSCAN's execution time by using a pruning technique on bit vectors,"Pattern Recognition Letters,vol. 32, pp. 1572-1580, 2011.

[2]H. Zhou, P. Wang, and H. Li, "Research on adaptive parameters determination in DBSCAN algorithm,"Journal of Information and Computational Science,vol. 9, pp. 1967-1973, 2012.

[3]H. Jiang, J. Li, S. Yi, X. Wang, and X. Hu, "A new hybrid method based on partitioning-based DBSCAN and ant clustering,"Expert Systems with Applications,vol. 38, pp. 9373-9381, 2011.

[4]S.-H. Yue, P. Li, J.-D. Guo, and S.-G. Zhou, "Statistical information-based clustering approach in distance space,"Journal of Zhejiang University: Science,vol. 6 A, pp. 71-78, 2005.

[5]B. Borah and D. K. Bhattacharyya, "An Improved Sampling-Based DBSCAN for Large Spatial Databases," inProceedings of International Conference on Intelligent Sensing and Information Processing, ICISIP 2004, January 4, 2004 - January 7, 2004, Chennai, India, 2004, pp. 92-96.

[6]B. Liu, "A fast density-based clustering algorithm for large databases," in2006 International Conference on Machine Learning and Cybernetics, August 13, 2006 - August 16, 2006, Dalian, China, 2006, pp. 996-1000.

[7]M. Yu, G. Yuling, and S. Shaoyun, "The algorithm of DBSCAN based on probability distribution," in 5th International Symposium on IT in Medicine and Education, ITME 2013, July 19, 2013 - July 21, 2013, Xining, China, 2014, pp. 2785-2792.

[8]S. Jahirabadkar and P. Kulkarni, "Algorithm to determine ε-distance parameter in density based clustering,"Expert Systems with Applications,vol. 41, pp. 2939-2946, 2014.

[9]Z. Xiong, R. Chen, Y. Zhang, and X. Zhang, "Multi-density DBSCAN algorithm based on Density Levels Partitioning,"Journal of Information and Computational Science,vol. 9, pp. 2739-2749, 2012.

[10]D. Kellner, J. Klappstein, and K. Dietmayer, "Grid-based DBSCAN for clustering extended objects in radar data," in2012 IEEE Intelligent Vehicles Symposium, IV 2012, June 3, 2012 - June 7, 2012, Alcal de Henares, Madrid, Spain, 2012, pp. 365-370.

[11]周水庚,周傲英,曹晶, 胡运发.一种基于密度的快速聚类算法[J].计算机研究与发展,2000,11: 1287- 1292.

[12]夏鲁宁,荆继武. SA-DBSCAN:一种自适应基于密度聚类算法[J].中国科学院研究生院学报,2009,04:530-

 

基金项目:国家自然科学基金(61373126);江苏省产学研联合创新资金-前瞻性联合研究项目(BY2013015-33)基金。