«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (1): 51-59  DOI: 10.19678/j.issn.1000-3428.0059770
0

引用本文  

王治和, 曹旭琰, 杜辉. 一种优化初始点与自适应半径的密度聚类算法[J]. 计算机工程, 2022, 48(1), 51-59. DOI: 10.19678/j.issn.1000-3428.0059770.
WANG Zhihe, CAO Xuyan, DU Hui. A Density Clustering Algorithm with Optimized Initial Points and Adaptive Radius[J]. Computer Engineering, 2022, 48(1), 51-59. DOI: 10.19678/j.issn.1000-3428.0059770.

基金项目

国家自然科学基金(61962054)

作者简介

王治和(1965-), 男, 教授, 主研方向为数据挖掘;
曹旭琰, 硕士研究生;
杜辉, 副教授、博士

文章历史

收稿日期:2020-10-20
修回日期:2021-01-13
一种优化初始点与自适应半径的密度聚类算法
王治和 , 曹旭琰 , 杜辉     
西北师范大学 计算机科学与工程学院, 兰州 730070
摘要:传统DBSCAN算法不能正确聚类密度不均匀的数据集,聚类结果受邻域阈值和密度阈值参数的影响较大。提出一种新的优化初始点和自适应半径的密度聚类算法。利用反向最近邻和相似度矩阵发现当前全局密度最大的数据样本,分析该样本周围密度的分布情况,采用自适应的方法计算当前簇的邻域阈值,并利用DBSCAN算法进行聚类。在人工数据集和UCI数据集上进行测试的结果表明,与经典的DBSCAN、OPTICS、RNN-DBSCAN算法相比,优化初始点和自适应半径的密度聚类算法在ARI、NMI、Homogeneity、Completeness和V-measure 5个评价指标上整体取得最优值,其中在Compound、Jain等数据集上达到1.0,具有较高的聚类效率和准确度。
关键词密度聚类    初始点优化    反向最近邻    自适应半径    相似度矩阵    
A Density Clustering Algorithm with Optimized Initial Points and Adaptive Radius
WANG Zhihe , CAO Xuyan , DU Hui     
School of Computer Science and Engineering, Northwest Normal University, Lanzhou 730070, China
Abstract: The DBSCAN algorithm cannot accurately cluster the datasets with uneven densities, and the clustering results are greatly affected by the parameters of the neighborhood threshold and density threshold.This paper proposes a new density clustering algorithm for optimizing initial points and adaptive radius.The algorithm uses the Reverse Nearest Neighbor(RNN) and similarity matrix to find the sample point with the largest global density.Through the analysis of the density distribution around the sample, the neighborhood threshold of the current cluster is calculated using an adaptive method and then clustered using the DBSCAN algorithm.The experimental results on artificial datasets and UCI datasets show that compared with the DBSCAN, OPTICS and RNN-DBSCAN algorithms, the proposed algorithm displays the highest score in all five evaluation indexes, including ARI, NMI, Homogeneity, Completeness and V-measure, reaching 1.0 on the Compound dataset and Jain dataset.It can provide high efficiency and accuracy in clustering.
Key words: density clustering    initial point optimization    Reverse Nearest Neighbor(RNN)    adaptive radius    similarity matrix    

开放科学(资源服务)标志码(OSID):

0 概述

数据挖掘是从大量数据中提取有价值信息的过程,将其转化成人们需要的且有组织的知识信息[1-2],已在许多领域取得重要成果。聚类分析是数据挖掘的重要技术之一,可以作为一种独立的工具深入了解数据集的分布情况。其主要任务是将数据集中的每一个数据样本划分到相应的簇中,使簇内的样本彼此相似,而簇间的样本彼此不相似[3-4]。目前,聚类分析已经广泛地应用于图像分析[5]、模式识别[6]、生物信息学[7]、知识发现[8]、医学[9-10]和农业[11]等领域。基于密度的聚类算法是聚类分析的重要技术之一,其中经典算法有DBSCAN算法[12]、OPTICS算法[13]、DENCLUE算法[14]等。

文献[12]提出的DBSCAN算法,聚类初始点是从数据集中任意取出一个样本,判断其为核心点后开始聚类,增加了算法的时间开销。该算法中的Eps和MinPts是全局参数,在聚类过程中不能改变,所以不能正确聚类密度不均匀的数据集。因此,如何恰当地选择聚类的初始点和Eps值是提高聚类准确度的关键因素,很多学者对此做了大量研究和改进。文献[13]提出OPTICS算法,该算法并不产生数据集聚类,而是输出一个表示数据的基于密度的聚类结构的簇排序,克服了使用一组全局参数的缺点。但这种总是朝高密度区域扩张的策略,使那些无法连向下一个高密度区域的低密度点往往被累积在结果序列的末尾,导致这些低密度点与高密度点的相邻关系在映射时被分离[15]。文献[16]提出的OS-DBSCAN算法优化了初始点的选择,并结合数据集的特点自适应计算Eps和MinPts值,但是引入了聚类个数k、密度参数α、倍率参数β 3个参数,不仅没有减少人为干预,而且带来更大的复杂性。文献[17]提出VDBSCAN算法,该算法能够聚类密度不同的数据集,求每个数据样本的第k个近邻,利用k-dist图选取不同密度层次相应的Eps值,但是选取过程需要人为干预,存在很大的不确定性。文献[18]提出RNN-DBSCAN算法,使用反向最近邻(RNN)的思想来定义密度和核心样本,但整体的聚类效果不佳且运行时间较长。文献[19]提出ADBSCAN算法,利用最近邻图(NNG)固有的性质来识别局部高密度样本,运用密度估计对噪声样本进行滤波,但在某些情况下,该算法有时无法识别正确的簇数,而且需要对多个参数组合进行测试。

通过上述研究发现,RNN算法对获取全局密度最大的数据样本起到重要作用,解决了DBSCAN算法随机取初始点的问题。本文提出一种新的OIR-DBSCAN算法,借鉴OPTICS算法中核心距离和可达距离的思路,通过调整核心距离和可达距离的值得到适合该簇的半径r,以解决DBSCAN算法中Eps是全局参数的问题。

1 相关工作 1.1 DBSCAN算法

DBSCAN算法可以发现任意形状的簇,并识别噪点,不需要设定具体的簇数,聚类效果稳定。在Eps邻域、MinPts密度阈值、核心点、直接密度可达、密度可达的基础上设定了密度相连[20]概念。

DBSCAN算法从任意一个点p出发,先判断其是否是核心点,若是,寻找Eps邻域内与p直接密度可达的点,将这些点放入集合U中,然后遍历集合U中的所有核心点,寻找与它们密度可达的点,迭代上述步骤,直到集合U中没有可扩展的核心点,此时形成了一个完整的簇;若不是,暂时将其标注为噪点。聚类完成其中的一个簇后,对未遍历的数据点重复上述过程,进行其他簇的扩展,直至所有的点被遍历。其中既不是核心点也不是边界点的被称为噪点。

1.2 点xk近邻和反向最近邻

假设Xd维空间中的数据点集,用n表示X的大小,$n{\rm{}} = \left| X \right|。\forall x \in X, x \in {R^d}$。对于X中的任意两个点xy,用${\rm{dist}}\left( {x, y} \right) = \sqrt[{}]{{\mathop \sum \limits_{i = 1}^d {{({y_i} - {x_i})}^2}}}$表示两点之间的距离,其中k的取值范围为1≤ kn - 1。

定义1    点xk近邻用Nk (x) = N表示,其中N满足以下条件:

1)$N \subseteq X/\left\{ x \right\}$

2)$\left| N \right| = k$

3)$\forall y \in N, z \in \frac{X}{{N + \left\{ x \right\}}}, {\rm{dist}}\left( {x, y} \right) \le {\rm{dist}}\left( {x, z} \right)$

定义2    点x的反向最近邻用${R_k}\left( x \right) = R$表示,其中R满足以下条件:

1)$R \subseteq X/\left\{ x \right\}$。2)$\forall y \in R:x \in {N_k}\left( y \right)$

下文用具体的示例对上述定义做出解释,该数据集共有5个点,如图 1所示。

Download:
图 1 二维空间5个数据点的最近邻图 Fig. 1 Nearest neighbor graph of five data points in two-dimensional space

图 1可以看出:a点的最近邻是bb点和c点互为最近邻,d点的最近邻是c,以此类推。在k近邻中,k取1时为最近邻点,k取2时为第二近邻点,knn为正整数)时为第n个近邻点。图 1的最近邻表如表 1所示,取k=1。对于反向最近邻,需要满足定义2的2个条件,具体分析如表 2所示。

下载CSV 表 1 二维空间5个数据点的最近邻表 Table 1 Nearest neighbor table of five data points in two-dimensional space
下载CSV 表 2 二维空间5个数据点的反向最近邻表 Table 2 Reverse nearest neighbor table of five data points in two-dimensional space

反向最近邻表如表 2所示,其中以点b为例进行分析。点c满足$\forall x \in X:{\rm{dist}}\left( {b, c} \right) \le {\rm{dist}}\left( {c, x} \right)$,所以cb的反向最近邻点,a同理,满足$\forall x \in X:{\rm{dist}}\left( {b, a} \right) \le {\rm{dist}}\left( {a, x} \right)$,所以a也是b的反向最近邻点。其他点的分析方法类似。

2 OIR-DBSCAN算法 2.1 设计方法

首先寻找数据集中全局密度最大的数据样本,将该样本作为聚类初始点,然后用自适应半径的方法计算出该初始点所在簇相应的r值。以该样本为初始点,r值为半径开始聚类。当一个簇聚类完成后,再从剩余的数据样本中选出新的聚类初始点,迭代上述过程,直至所有数据样本被划分类别或有部分数据样本被当作噪声处理,聚类结束。

2.2 初始点优化

在K-means算法中初始点的优化对算法的改进尤为重要。尽管DBSCAN算法中初始点的优化对聚类结果的影响不太明显,但从算法的角度考虑,如果初始点选择的是全局密度最大的点,那么该点一定是核心点,可以省去判断某个点是否是核心点的时间。本文从文献[16, 18]中得到启发,改进的算法能够找到数据集中全局密度最大的点。

在初始点优化思路中,运用到1.2节中提到的k近邻算法和反向最近邻。从表 2可以看出,a点和e点无反向最近邻,b点的反向最近邻是acc点的反向最近邻是bd。也可以理解为:ae没有出现在任何点的好友圈中,而b出现在ac的好友圈中,c出现在bd的好友圈中,d出现在e的好友圈中。可以看出bc在好友圈的活跃程度最高,在一定程度上证明其周围数据点的密度较高。

首先根据反向最近邻表计算出每个点反向最近邻的个数mm越大,意味着该点的活跃度越高,越有可能成为初始点。但是要计算出最终的聚类初始点,不能只根据m值,需要考虑下面这种情况,如图 2所示(设k=1)。

Download:
图 2 52个数据样本考虑m值的示意图 Fig. 2 Fifty-two data samples only consider the schematic diagram of m value

观察箭头所指的两个点,通过计算得出它们的反向最近邻个数m均等于4。那么如果只考虑m,则两者大小一样。但图 2中右下角箭头所指的点所在簇的密度显然大于左上角中箭头所指的点所在簇的密度。因此,不能只考虑m的取值,还应该考虑该点与k个邻近距离和的大小,记为dist。dist越大,密度越小;反之dist越小,密度越大。

设数据集的相似度矩阵为MMatrix,相似度矩阵用欧式距离表示,每行按从小到大排序后,去除第一列的零元素,记为KNNMatrix。每个数据样本对应的m值记为minitVValue (init)的大小决定该init点是否可以作为聚类初始点,值越小,表明该点越适合作为聚类初始点;反之,不适合。因此,聚类初始点的判别公式如式(1)所示:

$ {V_{{\rm{Value}}\left( {{\rm{init}}} \right)}} = \frac{1}{{{m_{{\rm{init}}}}}} + \mathop \sum \limits_{i = 0}^{k - 1} {\rm{KNNMatrix}}\left( {{\rm{init, i}}} \right), {m_{{\rm{init}}}} \ne 0 $ (1)

将当前最小的VValue(init)值对应的init作为聚类初始点。当一个簇聚类完成后,将已经有聚类标签的点从候选init队列中删除,方便重新选出下一次聚类的初始点。

初始点的选择如图 3所示,数据集的初始点依次为三角形、六边形和五角星所在的点。

Download:
图 3 52个数据样本初始点示意图 Fig. 3 Schematic diagram of initial points of fifty-two data samples

初始点的优化算法如算法1所示。

算法1   初始点优化

输入   kk=4)

输出   init

步骤1    求出各个样本之间的相似度矩阵MMatrix,用欧式距离表示。

步骤2    对Matrix按行升序排序,去掉第一列的0元素,得到矩阵KNNMatrix。

步骤3    计算每个样本的反向最近邻个数m

步骤4    计算每个样本的k个近邻的距离和dist。将该样本的序号、步骤4计算出的dist值和步骤3计算出的m放入列表RNNDist中。

步骤5    计算RNNDist列表中每个对象的VValue(init)值,参考式(1),按升序排列,得到列表SortRnnDist。

步骤6    取SortRnnDist列表的第一个值对应的init为聚类初始点。

步骤7    从第一个初始点开始的聚类结束后,将已经有标签的样本从SortRnnDist列表中删除,重复步骤6,选取下一次的聚类初始点,重复步骤7,迭代直至聚类结束。

2.3 自适应半径r

在传统的DBSCAN算法中,Eps在聚类过程中不能改变。如果Eps取值太小,将会导致数据集被分割成多个簇;如果Eps取值太大,将会出现多个簇被合并的现象。无论哪种情况,都不能对有密度变化的数据集进行正确聚类。为克服上述困难,引入以下3个概念:

1)核心距离。对象p的核心距离ε'是使得pε'-领域内至少有k个对象,即ε'是使得p成为核心对象的最小半径阈值。对于数据集中的任意一个对象,每个对象pε'都不同。如图 3所示,五角星点的ε'=0.5;六边形点的ε'=1;三角形点的ε'=1.25。

2)ε距离。ε的取值是一个全局的参数,由用户设定,如图 4所示,取ε =1。

3)核距比。表示核心距离ε'与ε距离的比值,核距比在一定程度上可以反映数据点分布的疏密情况。

Download:
图 4 核距比之间的关系 Fig. 4 Relationship of kernel's distance radio

图 4中,图 4(a)图 4(b)的核距比均小于1,其中图 4(a)的核距比最小,得出数据之间的密度分布紧凑;图 4(b)的核距比几乎为1,数据之间的密度分布适中;图 4(c)的核距比大于1,明显数据较分散。但是对于核距比大于1的数据点,存在是噪点的可能性,需要做进一步的判断。

设置一个参数α用来与核距比作比较,α设定的大小可以对自适应半径r的调节起到伸缩作用。α越小,半径r可调整的伸缩性越大;反之,伸缩性越小。自适应半径r的判断如图 5所示。

Download:
图 5 自适应半径流程 Fig. 5 Procedure of self-adapting radius

图 5可以看出,r的选择有如下3种情况:

1)数据对象的密度紧密,当核距比远小于α时,如果直接取r=ε',那么半径r取值太小,会导致本属于同一个簇的数据点被分割成多个簇。所以,采用图 5中适当增大ε'的方法重新计算核距比,使得α落在规定区间,此时取r=ε'。

2)数据对象的密度适中,当核距比正好落在α规定区间时,直接取r=ε。因为此时εε'的大小相差甚微,所以选取值较大的ε,加快聚类速度。

3)数据对象的密度稀疏,当核距比远大于α时,如果直接判断为噪点,那么可能会忽略如图 2所示的左边簇的情况。所以,判断该数据对象的ε'邻域中的每个点是否有大于等于k个未被标识的对象,若有,则说明该点附近只是密度稀疏,并不是噪点,取r=ε';反之,则为噪点。

2.4 算法描述

通过上述初始值的选取和半径的判定,得到init和r值,然后采用密度聚类的方法进行聚类。第一次聚类结束之后,从剩余未被标记的数据样本中选出第二次聚类的初始点init′和半径r′,进行第二次聚类、迭代,直至所有数据样本被划分类别或有部分数据做噪声处理。

对于数据集X中的每个样本x,标签用cluster表示,聚类过的样本添加到visited列表中,未被聚类的样本存放在unvisited列表中,将聚类结果存放在数组assign中。OIR-DBSCAN算法的流程如算法2所示。

算法2    OIR-DBSCAN算法

输入   数据集dataset

输出  assign

步骤1    对数据集作归一化处理。

步骤2    根据算法1计算出初始点init。

步骤3    根据图 5的流程图计算出自适应半径r

步骤4    通过DBSCAN算法,将和初始点init属于同一类的数据样本划分出来,cluster加1。

步骤5    执行步骤2、步骤3。

步骤6    用步骤4的方法对剩余点聚类。

步骤7    迭代,直至所有数据被聚类或部分数据被当作噪声处理。

2.5 参数选择

算法中k值是固定参数,取值为4,k主要用来控制核心距离ε',进而影响半径r。参数ε人为设定。α的大小可以对自适应半径r的调节起到伸缩作用,经大量实验测试,α的取值范围是0.25~0.8。参数MinPts和DBSCAN算法中的MinPts一样,用来控制核心点的判断。虽然该参数也是人为设定的参数,但经过大量实验论证,取值范围一般为3~15,且为正整数。

3 实验结果与分析

为对本文算法性能进行评估,检测其有效性,本文进行以下对比实验。对比算法包括DBSCAN算法、OPTICS算法和RNN-DBSCAN算法。数据集采用人工数据集和真实数据集,人工数据集包括Compound、Pathbased、Jain、Aggregation、grid.orig;真实数据集包括iris、WBC、Thyroid、Ecoli、Pima、Vote、Vowel等。其中人工数据集如表 3所示。

下载CSV 表 3 人工数据集 Table 3 Artificial datasets

实验环境为Inter® CoreTM i7-1065G7 CPU @ 1.30 GHz 1.50 GHz,内存为16 GB,编程环境为python3.8,编译器为Jupter Notebook、PyCharm。

聚类的评价指标选用调整兰德指数(ARI)[21]、归一化交互信息(NMI)[22]、同质性指标(homogeneity)、完整性指标(completeness)和同质性与完整性的调和平均(V-measure)[23]

ARI是调整的RI,相对RI来说有更高的区分度。ARI的取值范围是[-1, 1],数值越接近1代表聚类结果越好,越接近0代表聚类结果越差,计算公式如式(2)所示:

$ {A_{{\rm{ARI}}}} = \frac{{{R_{{\rm{RI}}}} - E\left[ {{R_{{\rm{RI}}}}} \right]}}{{{\rm{max}}\left( {{R_{{\rm{RI}}}}} \right) - E\left[ {{R_{{\rm{RI}}}}} \right]}} $ (2)

其中:max表示取最大值;E表示期望。

ARI计算公式如式(3)所示:

${A_{{\rm{ARI}}}} = \frac{{\sum\limits_{ij} {\left( {\begin{array}{*{20}{c}} {{n_{ij}}}\\ 2 \end{array}} \right)} - \left[ {\sum\limits_i {\left( {\begin{array}{*{20}{c}} {{a_i}}\\ 2 \end{array}} \right)} \sum\limits_j {\left( {\begin{array}{*{20}{c}} {{b_j}}\\ 2 \end{array}} \right)} } \right]/\left( {\begin{array}{*{20}{c}} n\\ 2 \end{array}} \right)}}{{\frac{1}{2}\left[ {\sum\limits_i {\left( {\begin{array}{*{20}{c}} {{a_i}}\\ 2 \end{array}} \right)} + \sum\limits_j {\left( {\begin{array}{*{20}{c}} {{b_j}}\\ 2 \end{array}} \right)} } \right] - \left[ {\sum\limits_i {\left( {\begin{array}{*{20}{c}} {{a_i}}\\ 2 \end{array}} \right)} \sum\limits_j {\left( {\begin{array}{*{20}{c}} {{b_j}}\\ 2 \end{array}} \right)} } \right]/\left( {\begin{array}{*{20}{c}} n\\ 2 \end{array}} \right)}} $$ (3)

其中:ij分别表示为真实簇类和预测簇类;nij表示聚类正确的样本个数;max(RI)表示如果聚类结果完全正确时的值;E(RI)表示求RI的期望值。

NMI是一个外部指标,通过将聚类结果与“真实”的类标签对比衡量聚类效果,如式(4)所示:

$ {N_{{\rm{NMI}}}} = \frac{{\sum\limits_{i = 1}^{k\left( C \right)} {\sum\limits_{j = 1}^{k\left( T \right)} {{n_{i,j}}} } {\rm{lo}}{{\rm{g}}_a}\left( {\frac{{n \cdot {n_{i,j}}}}{{{n_i} \cdot {n_j}}}} \right)}}{{\sqrt[{}]{{\left( {\sum\limits_{i = 1}^{k\left( C \right)} {{n_i}} {\rm{lo}}{{\rm{g}}_a}\frac{{{n_i}}}{n}} \right)\left( {\sum\limits_{i = 1}^{k\left( T \right)} {{n_j}} {\rm{lo}}{{\rm{g}}_a}\frac{{{n_j}}}{n}} \right)}}}} $ (4)

其中:kC)是聚类结果的簇数;kT)是真实聚类结果的簇数;ni是簇i的样本个数;nj是簇j的样本个数;ni, j是聚类结果C中属于簇i的样本与真实聚类结果T中属于簇j的样本之间的样本个数;n是数据集的样本总数。

同质性h表示每个簇只包含单一类别成员的程度;完整性c表示一个给定类的所有成员分配到单一簇的程度;V-measure表示两者的调和平均。其中同质性和完整性如式(5)和式(6)所示:

$ h = 1 - \frac{{H(C|K)}}{{H\left( C \right)}} $ (5)
$ c = 1 - \frac{{H(K|C)}}{{H\left( K \right)}} $ (6)

其中H(C|K) 是给定簇。

类的条件熵如式(7)所示:

$ H\left( {C|K} \right) = - \mathop \sum \limits_{c = 1}^{\left| C \right|} \mathop \sum \limits_{k = 1}^{\left| K \right|} \frac{{{n_{c, k}}}}{n}{\rm{lo}}{{\rm{g}}_a}\left( {\frac{{{n_{c, k}}}}{{{n_k}}}} \right) $ (7)

H(C)是类的熵,计算公式如式(8)所示:

$ H\left( C \right) = - \mathop \sum \limits_{c = 1}^{\left| C \right|} \frac{{{n_c}}}{n}{\rm{lo}}{{\rm{g}}_a}\left( {\frac{{{n_c}}}{n}} \right) $ (8)

其中:n表示数据集的样本总数;ncnk分别表示属于簇c和簇k的样本数;nc, k为类c中的样本分配给簇k的数量。

V-measure的表达式如式(9)所示:

$ V - {\rm{measure}} = \frac{{2 \times h \times c}}{{h + c}} $ (9)
3.1 人工数据集

本组实验用上述提及的5个人工数据集进行测试,聚类结果如图 6~图 10所示。Compound数据集中有若干个密度不同的簇,图 6的实验结果表明,只有本文提出的OIR-DBSCAN算法能得到正确的聚类结果,而DBSCAN算法中由于Eps参数的局限性,误将左上角的簇当作噪点处理,OPTICS算法和RNN-DBSCAN算法的聚类结果差强人意;在图 7中,数据集的分布较为松散且密度分布无规律,DBSCAN算法、OPTICS算法和RNN-DBSCAN算法在聚类内部簇的过程中都会将最外层的数据样本聚类进来,导致一个簇中出现了很多本不属于该簇的数据样本,而OIR-DBSCAN算法通过对核心距离和ε距离的调整计算出合适的半径r,从而进一步得到较好的聚类结果;在图 8中,上下两个簇有较大的密度差异,DBSCAN算法中若Eps取值小,则上面的簇会被分割成几部分,如图 8(a)所示,RNN-DBSCAN算法和OPTICS算法在聚类过程中将一个簇分成两个,聚类效果较差,只有OIR-DBSCAN算法能得到正确的聚类结果;在图 9中,数据样本的密度分布相对均匀,部分簇之间相连,经过聚类结果分析发现4种算法都有不错的聚类效果,其中OIR-DBSCAN聚类结果最好,RNN-DBSCAN算法次之,OPTICS算法相对最差;在图 10中,簇内样本分布均匀,但两个簇的密度差异大且簇间距离很近,这种数据集最能充分体现出OIR-DBSCAN算法的优越性,该算法针对不同密度的簇自适应地计算出不同的半径r进行聚类,得到了较好的聚类结果,而DBSCAN算法和OPTICS算法在聚类右下角的簇时,将离该簇最近但本属于左簇的部分数据样本聚类进来,得到了错误的聚类结果,RNN-DBSCAN算法的聚类结果最差。

Download:
图 6 4种算法在Compound数据集上的聚类结果 Fig. 6 Clustering results of four algorithms on Compound dataset
Download:
图 7 4种算法在Pathbased数据集上的聚类结果 Fig. 7 Clustering results of four algorithms on Pathbased dataset
Download:
图 8 4种算法在Jain数据集上的聚类结果 Fig. 8 Clustering results of four algorithms on Jain dataset
Download:
图 9 4种算法在Aggregation数据集上的聚类结果 Fig. 9 Clustering results of four algorithms on Aggregation dataset
Download:
图 10 4种算法在grid.orig数据集上的聚类结果 Fig. 10 Clustering results of four algorithms on grid.orig dataset

通过图 6~图 10所示的可视化对比实验分析可以得到,在Aggregation等数据集上,其中一部分算法也可以达到较好的聚类效果。但总体来说,无论是密度不均匀的数据集还是普通数据集,OIR-DBSCAN算法都能够得到很好的聚类结果。4个聚类算法在人工数据集上性能的对比如表 4所示(粗体为最优值)。4种算法在聚类过程中达到最优效果的具体参数取值如表 5所示。

下载CSV 表 4 4种算法在人工数据集上的评价指标对比 Table 4 Comparison of evaluation index of four algorithms on artificial datasets
下载CSV 表 5 4种算法在人工数据集上的参数值 Table 5 Parameter values of four algorithms on artificial datasets
3.2 真实数据集

在人工数据集上,OIR-DBSCAN算法表现出较好的聚类结果。为进一步验证其聚类性能,还需要在真实数据集上进行验证,UCI数据集如表 6所示。

下载CSV 表 6 UCI数据集 Table 6 UCI datasets

在UCI数据集中,因为高维数据集可视化难度较大,所以通过聚类评价指标ARI、NMI、homogeneity、completeness和V-measure进行对比,聚类评价指标的对比结果如表 7所示(粗体为最优值)。在Pima数据集中,DBSCAN算法的NMI值高于OIR-DBSCAN算法0.006 9,在Vote数据集中,DBSCAN算法的NMI值高于OIR-DBSCAN算法0.013 9,但从整体对比结果来看,OIR-DBSCAN算法的ARI、NMI等评价指标都明显高于其他聚类算法。通过比较发现,OIR-DBSCAN算法的聚类效果最好,DBSCAN算法和OPTICS算法次之,RNN-DBSCAN算法效果相对最不理想。

下载CSV 表 7 4种算法在UCI数据集上的评价指标对比 Table 7 Comparison of evaluation index of four algorithms on UCI dataset
4 结束语

本文提出一种优化初始点与自适应半径的密度聚类算法。将反向最近邻和相似度矩阵相结合,迭代选取每次聚类开始的初始点,该初始点即为全局密度最大的样本。优化DBSCAN算法中Eps全局参数,调整核心距离εε'距离之间的核距比与参数α得出最终半径值r,使得密度稀疏的簇和密度稠密的簇分别对应各自适合的r值,该参数具有较好的灵活性。实验结果证明,OIR-DBSCAN算法可以正确聚类密度不均匀的数据集,而且对高维甚至簇间有重叠的数据集也有较好的聚类能力。本文算法在聚类大规模数据集时会出现聚类时间较长的现象,下一步将从改进算法性能和提高聚类速度方向入手,以使算法的聚类效果达到最优。

参考文献
[1]
王燕军. KNNSCAN聚类算法研究[D]. 兰州: 兰州大学, 2017.
WANG Y J. Research on the KNNSCAN clustering algorithm[D]. Lanzhou: Lanzhou University, 2017. (in Chinese)
[2]
李志玲. 基于数据挖掘的客户关系管理研究[D]. 保定: 河北大学, 2010.
LI Z L. Research on customer relationship management based on data mining[D]. Baoding: Hebei University, 2010. (in Chinese)
[3]
韩家炜, KAMBER M, 裴健, 等. 数据挖掘: 概念与技术[M]. 范明, 孟小峰, 译. 3版. 北京: 机械工业出版社, 2012: 186-188.
HAN J W, KAMBER M, PEI J, et al. Data mining: concepts and techniques[M]. FAN M, MENG X F, Translation. The 3rd Eed. Beijing: China Machine Press, 2012: 186-188. (in Chinese)
[4]
CHEN Y W, TANG S Y, BOUGUILA N, et al. A fast clustering algorithm based on pruning unnecessary distance computations in DBSCAN for high-dimensional data[J]. Pattern Recognition, 2018, 83: 375-387. DOI:10.1016/j.patcog.2018.05.030
[5]
RAFAEL C G, RICHARD E W. Digital image proc-essing[M]. Upper Saddle River, USA: Prentice Hall, 2008.
[6]
SERGIOS T, KONSTANTINOS K. Pattern recognition[M]. 2nd ed.New York, USA: Academic Press, 2003.
[7]
MADEIRA S C, OLIVEIRA A L. Bi-clustering algorithms for biological data analysis: a survey[J]. IEEE/ACM Transactions on Computational Biology and Bioinformatics, 2004, 1(1): 24-45. DOI:10.1109/TCBB.2004.2
[8]
FAYYAD U M, SHAPIRO G P, SMYTH P, et al. Advances in knowledge discovery and data mining[M]. Boston, USA: MIT Press, 1996.
[9]
HUANG C W, LIN K P, WU M C, et al. Intuitionistic fuzzy c-means clustering algorithm with neighborhood attraction in segmenting medical image[J]. Soft Computing, 2015, 19(2): 459-470. DOI:10.1007/s00500-014-1264-2
[10]
ANANTHI V P, BALASUBRAMANIAM P, KALAISELVI T. A new fuzzy clustering algorithm for the segmentation of brain tumor[J]. Soft Computing, 2015, 20(1/2): 1-21.
[11]
CHINCHULUUN R, LEE W S, BHORANIA J, et al. Clustering and classification algorithms in food and agricultural applications: a survey[J]. Modeling Agricultural Systems, 2009, 25: 443-454.
[12]
ESTER M, KRIEGEL H P, SANDER J, et al. A density-based algorithm for discovering clusters in large spatial databases with noise[C]//Proceedings of the 2nd International Conference on Knowledge Discovery and Data Mining. Portland, Oregon: AAAI Press, 1996: 226-231.
[13]
ANKERST M, BREUNIG M M, KRIEGEL H P, et al. OPTICS: ordering points to identify the clustering structure[C]//Proceedings of ACM SIGMOD' 99. Philadelphia, USA: ACM Press, 1999: 49-60.
[14]
HINNEBURG A, KEIM D A. An efficient approach to clustering in large multimedia databases with noise[J]. Proceeding of IEEE KDDʼ98. Washington D.C., USA: IEEE Press, 1998: 58-65.
[15]
曾依灵, 许洪波, 白硕. 改进的OPTICS算法及其在文本聚类中的应用[J]. 中文信息学报, 2008, 22(1): 51-55.
ZENG Y L, XU H B, BAI S. An improved OPTICS algorithm and its application in text clustering[J]. Journal of Chinese Information Processing, 2008, 22(1): 51-55. (in Chinese)
[16]
戴阳阳, 李朝锋, 徐华. 初始点优化与参数自适应的密度聚类算法[J]. 计算机工程, 2016, 42(1): 203-209.
DAI Y Y, LI C F, XU H, et al. Density spatial clustering algorithm with initial point optimization and parameter self-adaption[J]. Computer Engineering, 2016, 42(1): 203-209. (in Chinese)
[17]
周董, 刘鹏. VDBSCAN: 变密度聚类算法[J]. 计算机工程与应用, 2009, 45(11): 137-141.
ZHOU D, LIU P. VDBSCAN: variable density clustering algorithm[J]. Computer Engineering and Applications, 2009, 45(11): 137-141. (in Chinese)
[18]
BRYANT A C, CIOS K J. RNN-DBSCAN: a density-based clustering algorithm using reverse nearest neighbor density estimates[J]. IEEE Transactions on Knowledge and Data Engineering, 2018, 30(6): 1109-1121. DOI:10.1109/TKDE.2017.2787640
[19]
LI H, LIU X J, LI T, et al. A novel density-based clustering algorithm using nearest neighbor graph[J]. Pattern Recognition, 2020, 102: 107-116.
[20]
刘淑芬, 孟冬雪, 王晓燕. 基于网格单元的DBSCAN算法[J]. 吉林大学学报(工学版), 2014, 44(4): 1135-1139.
LIU S F, MENG D X, WANG X Y. DBSCAN algorithm based on grid cell[J]. Journal of Jilin University(Engineering and Technology Edition), 2014, 44(4): 1135-1139. (in Chinese)
[21]
VINH N X, EPPS J, BAILEY J. Information theoretic measures for clusterings comparison[C]//Proceedings of International Conference on Machine Learning. New York, USA: ACM Press, 2010: 2837-2854.
[22]
NGUYEN T P Q, KUO R J. Partition-and-merge based fuzzy genetic clustering algorithm for categorical data[J]. Applied Soft Computing, 2019, 75: 254-264. DOI:10.1016/j.asoc.2018.11.028
[23]
ZHANG H J, GUO H, WANG X H, et al. Clothescounter: a framework for star-oriented clothes mining from videos[J]. Neurocomputing, 2020, 377(15): 38-48.