郑州大学学报(理学版)  2017, Vol. 49 Issue (3): 20-27  DOI: 10.13705/j.issn.1671-6841.2017066

引用本文  

程汝峰, 刘奕志, 梁永全. 基于互近邻相对距离的最小生成树聚类算法[J]. 郑州大学学报(理学版), 2017, 49(3): 20-27.
CHENG Rufeng, LIU Yizhi, LIANG Yongquan. A Minimum Spanning Tree Clustering Algorithm Based on Mutual Neighbor Relative Distance[J]. Journal of Zhengzhou University(Natural Science Edition), 2017, 49(3): 20-27.

基金项目

山东省高等学校科技计划项目(J14LN33);中国博士后科学基金项目(2014M561949);山东科技大学研究生科技创新项目(SDKDYC170340)

通信作者

梁永全(1968—), 男, 山东聊城人, 教授, 主要从事分布式人工智能、数据挖掘与机器学习研究, E-mail:lyq@sdust.edu.cn

作者简介

程汝峰(1992—), 男, 山东德州人, 主要从事数据挖掘与机器学习研究, E-mail: crfsearch@163.com

文章历史

收稿日期:2017-03-30
基于互近邻相对距离的最小生成树聚类算法
程汝峰1 , 刘奕志1 , 梁永全1,2     
1. 山东科技大学 计算机科学与工程学院 山东 青岛 266590;
2. 山东省智慧矿山信息技术重点实验室 山东 青岛 266590
摘要:针对互近邻距离的不足,提出了互近邻相对距离的概念,同时设计实现了一种新的最小生成树聚类算法.针对某些数据的不平衡问题,提出了兼容不平衡数据的最小生成树分割方法.算法设计简单,易于实现.实验结果表明,该算法能够聚类任意形状数据和兼容处理不均衡数据.对于具有良好几何形状的数据,该算法能够达到非常好的聚类效果,总体性能优于其他算法.
关键词聚类    互近邻相对距离    最小生成树    不平衡数据    
A Minimum Spanning Tree Clustering Algorithm Based on Mutual Neighbor Relative Distance
CHENG Rufeng1 , LIU Yizhi1 , LIANG Yongquan1,2     
1. College of Computer Science and Engineering, Shandong University of Science and Technology, Qingdao 266590, China;
2. Key Laboratory of Wisdom Mine Information Technology of Shandong Province, Qingdao 266590, China
Abstract: For the lack of mutual neighbor distance, the concept of mutual neighbor relative distance was proposed. To the problem of imbalanced data, a minimum spanning tree clustering method was proposed. This algorithm was simple and easy to implement. The experimental results showed that the algorithm could cluster arbitrary shape data, and deal with imbalanced data. For the data with good geometry, the algorithm could achieve very good clustering effect, and the overall performance was better than other algorithms.
Key words: clustering    mutual neighbor relative distance    minimum spanning tree    imbalanced data    
引言

聚类是数据挖掘领域的重要研究内容之一,在识别数据的内在结构方面具有极其重要的作用.文献[1-4]对相关算法进行了研究.划分方法中经典的有K-means算法[5]、K-medoids算法[6]等;层次方法中经典的有CHAMELEON算法[7]、BIRCH算法[8]等;基于密度的方法中经典的有DBSCAN算法[9]、OPTICS算法[10]等;基于网格的方法中经典的有STING算法[11]等.

近几年,研究者从不同角度提出了许多优秀的算法.例如,文献[12]将密度的思想和距离相结合,提出一种快速的密度峰值聚类(DPC)算法.文献[13-14]在DPC算法的基础上,提出两种基于K近邻的样本分配策略.文献[15]提出一种基于数据点间信息传递的聚类算法(AP).针对数据的不平衡问题,文献[16]将概率模型选择和参数优化估计的方法用于聚类,算法在不平衡数据集上有很好的表现.此外,图论的很多方法也被用来解决聚类问题.例如,文献[17]对基于最小生成树的图论聚类方法进行了分析.文献[18]采用生成两轮最小生成树的方法,能够对各种大小、形状和密度的数据实现聚类.文献[19]将最小生成树应用于数据的分割和合并过程,提出一种新的层次聚类算法.本文在相似性计算方法的基础上,提出了一种新的非度量距离计算方法,利用最小生成树的方法实现数据的聚类.算法设计简单,易于实现,同时可以聚类任意形状数据和兼容处理不均衡数据.对于连通性较好的数据,算法具有很好的聚类效果.

1 算法的理论基础 1.1 互近邻相对距离

距离计算是很多学习任务的基本问题.闵可夫斯基距离提供了距离计算的一般形式,这类距离被称为度量距离.此外还有非度量距离,互近邻距离(mutual neighbor distance)就是其中一种.

互近邻距离[20-21]的定义为

$MND({x_i},{x_j}) = NN({x_i},{x_j}) + NN({x_j},{x_i}),$

式中:NN(xi, xj)表示xixj的第几近邻点; MND(xi, xj)表示xixj的互近邻距离.显然有MND(xi, xj)=MND(xj, xi).

互近邻距离相对于度量距离有很多优点.为了将互近邻距离与度量距离的优点相结合,本文提出互近邻相对距离(mutual neighbor relative distance)的概念.

首先给出基距离(base distance)的定义为

$BD({x_i},k) = \frac{1}{k}\sum\limits_{j = 1}^k {d({x_i},{x_j}),} $

式中:d(xi, xj)表示xixj之间的某种距离,如常用的欧氏距离;BD(xi, k)表示xik近邻基距离,代表了xi的距离衡量标准.本文采用k=n,此时将xi的基距离简记为BD(xi).

互近邻相对距离的定义为

$MNRD({x_i},{\rm{ }}{x_j}) = NNR({x_i},{\rm{ }}{x_j}) + NNR({x_j},{\rm{ }}{x_i}),$

式中:$NNR\left( {{x_i},{x_j}} \right) = \frac{{d\left( {{x_i},{\rm{ }}{x_j}} \right)}}{{BD\left( {{x_i}} \right)}}$.

1.2 最小生成树聚类

许多优化问题都可以转化为求解最小生成树问题[22].最小生成树也被广泛应用于旅行商[23]、文本聚类[24]、基因表达数据分析[25]等领域.最小生成树聚类的第一步是构建最小生成树,图的节点对应于被分析数据的最小单元,图的边(或弧)对应于处理数据之间的相似性度量.比较经典的最小生成树求解算法有prim算法和kruskal算法,其中prim算法适用于边较多的情况.得到最小生成树后,需要对最小生成树进行分割.若聚成k个簇,则需要k-1次分割.对于有n个结点的最小生成树,共包含n-1条边.一般的分割策略是搜索权重最大(相似性最小)的边进行分割,但是这种分割不能解决数据的不平衡问题.不同的分割策略如图 1所示,虽然图中最小生成树的各边权重相同,但是考虑到平衡问题,对不同边进行分割的结果显然并不相同.

图 1 不同的分割策略 Figure 1 Different segmentation strategies

考虑到分割后数据的不平衡问题,需要引入平衡度的定义.数据集D包含n条数据,设分割某条边e后新形成两个簇为C1C2,用ab分别表示两个簇中包含样本的个数,并且ab,则边e的平衡度的计算公式为

${p_e} = \frac{a}{b} \times \frac{{a + b}}{n}.$

另外,数据本身也可能是不平衡的,因此需要引入平衡估计参数p,平衡估计参数根据先验知识设定.加入参数p后,相应平衡度调整公式为

${p_e}^{'} = \left\{ {\begin{array}{*{20}{l}} {{p_e}/p,}&{0 < {p_e} \le p,}\\ {1 - {p_e} + p,}&{p < {p_e} \le 1.} \end{array}} \right.$

平衡度的计算如图 2所示,最小生成树共包含10个样本点,若设p=0.6,计算得到pe=1.

图 2 平衡度的计算 Figure 2 Calculation of equilibrium degree

将边界权重和平衡度的乘积作为分割参数,在最小生成树分割的过程中,每次选择分割参数最大的边.经过多次分割,最终实现聚类.

2 算法描述

算法的核心是相似性矩阵的计算和最小生成树的分割.聚类算法的过程如下:

输入:数据集D,平衡参数p,簇的个数k;

输出:聚类结果.

1:利用互近邻相对距离计算距离矩阵G.

2:使用prim算法计算得到最小生成树T;最小生成树中边的权重向量为VT.

3:计算最小生成树中每条边的平衡度,生成向量PT.

4:进行k-1轮迭代.

5:VPT=VT.*PT;%“.*”表示对应相乘.

6:找到VPT中的最大值对应的边e;将边e从T中删除.

7:从VT中删除边e对应的权重;计算并更新PT.

8:根据T的划分,将数据集D划分成k个簇.

算法主要由以下三部分组成:根据互近邻相对距离得到邻接矩阵,其时间复杂度为O(n2);求解最小生成树,假设是邻接矩阵的存储方式,最大时间复杂度为O(n2);分割最小生成树,分割之前需要计算平衡度,因此需要统计边两端的子树分别包含多少点.子树包含点的信息可以事先计算存储,边分割后运行更新即可.分割最小生成树的时间复杂度为O(n).

3 实验与结果

实验分为人工数据集实验和真实数据集实验两部分.对比算法分别为DPC、AP、DBSCAN、K-means、CHAMELEON和2-MSTClus[18].其中K-means算法调用Matlab中的库函数,其他算法采用作者提供的源码或程序.聚类效果判断标准采用ACC、AMI和ARI评价指标.3种指标的取值上界为1,取值越大表示聚类结果越好.对于真实数据本文进行了预处理,均归一化到[0, 1].实验所用人工数据集和真实数据集如表 1表 2所示.

表 1 人工数据集 Table 1 Artificial data sets

表 2 真实数据集 Table 2 Real data sets
3.1 人工数据集实验结果分析

人工数据集为2维或3维数据,方便可视化.在人工数据集上进行测试,聚类结果以图的方式展示,不同灰度和形状的数据代表不同的簇.聚类数据会有多种形式,其中比较容易聚类的是明显分离的数据,如图 3图 4所示.对于比较复杂的数据,算法也可以很好地实现聚类,如图 5~图 8所示.

图 3 Twenty数据集聚类结果 Figure 3 Clustering results of Twenty data set

图 4 Hypercube数据集聚类结果 Figure 4 Clustering results of Hypercube data set

图 5 Compound数据集聚类结果 Figure 5 Clustering results of Compound data set

图 6 Impossible数据集聚类结果 Figure 6 Clustering results of Impossible data set

图 7 D31数据集聚类结果 Figure 7 Clustering results of D31 data set

图 8 Q58数据集聚类结果 Figure 8 Clustering results of Q58 data set

通过调节参数p,算法能够对不平衡数据实现很好的聚类效果,如图 9所示.此外,对于存在较好几何形状的数据,算法也有很好的聚类效果.如图 10图 11所示,算法能对数据实现比较好的聚类.因此,本文提出的算法具有非常好的性能,能聚类任意形状的簇,具有较好的鲁棒性,通过调节参数可以对不平衡数据实现较好的聚类,对具有较好几何形状的数据也有非常好的效果.

图 9 算法在不平衡数据集上的实验 Figure 9 Experiment of the algorithm on the imbalanced data set

图 10 2C数据集聚类结果 Figure 10 Clustering results of 2C data set

图 11 4B数据集聚类结果 Figure 11 Clustering results of 4B data set
3.2 真实数据集实验结果分析

真实数据集更能检验算法的性能.选用UCI数据集和Olivetti人脸数据库来验证本文算法的性能.选用的数据集从样本规模、特征个数和类簇数目都有较大差别.

3.2.1 UCI数据集实验结果分析

采用ACC、AMI和ARI评价指标来验证所提出算法的性能,并与其他算法进行比较.实验结果如表 3~表 5所示.其中由于Waveform和Waveform(noise)本身数据量较大并且属性较多,有些算法没有得到聚类结果,在表中用符号“-”表示.每个数据集实验结果的最大值都进行了加黑标注.早期的K-means算法相对其他算法较稳定,善于发现球状簇.其他近期的代表性算法如DPC和AP,在个别数据集上的表现较差,但总体表现要优于其他早期算法.通过对比可以发现,在ACC评价指标下,本文提出的算法具有明显优势.在AMI和ARI评价指标下,本文提出的算法在更多的数据集上取得最大值.聚类结果表明,本文提出的算法具有非常好的性能,具有较强鲁棒性,总体聚类性能优于其他对比算法.

表 3 真实数据集上的ACC评价指标比较 Table 3 Comparison of ACC evaluation indexes on real data sets

表 4 真实数据集上的AMI评价指标比较 Table 4 Comparison of AMI evaluation indexes on real data sets

表 5 真实数据集上的ARI评价指标比较 Table 5 Comparison of ARI evaluation indexes on real data sets
3.2.2 Olivetti数据集实验结果分析

Olivetti人脸数据库是机器学习领域广泛使用的数据库,包含40个人的人脸图像,每个人的人脸图像是10幅不同角度的图像.由于人数(类簇数)比每个人的人脸图像数(簇内样本数)多,给聚类算法带来很大挑战.

使用本文提出的算法对Olivetti数据集进行聚类,图 12展示了本文算法的聚类结果.其中图 12(a)为人脸数据集原图像,每行2个簇,共10行.图 12(b)为聚类识别结果,对其中聚类识别错误的人脸图像加了横向阴影,并在左上角留白部分标注了“×”.ACC、AMI和ARI的值分别可以达到0.818、0.830和0.728.比较优秀的算法如DPC,只能发现20个密度峰值点,即最多能够完全聚类识别20组人脸.本文提出的算法可以聚类识别35组人脸(一组中正确标签超过半数).对于未能识别的人脸,经过对比发现,同一簇内的图像本身就存在较大差异,仅仅基于距离的度量很难准确识别,可通过特征提取的方式进一步提高准确率.

图 12 Olivetti数据集聚类结果 Figure 12 Clustering results of Olivetti data set
4 小结

基于互近邻距离提出了互近邻相对距离,为距离的计算提供了一种新的非度量距离计算方式.基于互近邻相对距离,提出了一种新的最小生成树聚类算法.针对某些数据的不平衡问题,提出了兼容不平衡数据的最小生成树分割方法.算法设计简单,易于实现.经典人工数据集、UCI真实数据集以及Olivetti数据集的实验结果表明,算法能够聚类任意形状的簇和兼容处理不均衡数据,通过调节参数可以实现不同的聚类效果.如果数据本身有非常好的几何形状,算法能够达到非常好的聚类效果.算法性能良好,具有较强鲁棒性,总体聚类性能优于其他对比算法.如何使本文提出的算法适用于大数据,是需要进一步研究的问题.

参考文献
[1]
孙吉贵, 刘杰, 赵连宇. 聚类算法研究[J]. 软件学报, 2008, 19(1): 48-61. (0)
[2]
刘志勇, 邓贵仕. 一种基于矩阵变换的层次聚类算法[J]. 郑州大学学报(理学版), 2010, 42(2): 39-42. (0)
[3]
JAIN A K. Data clustering: 50 years beyond K-means[J]. Pattern recognition letters, 2010, 31(8): 651-666. DOI:10.1016/j.patrec.2009.09.011 (0)
[4]
HAN J W, KAMBER M, PEI J. Data mining concepts and techniques[M]. 3rd ed. San Francisco: Morgan Kaufmann Publishers, 2012. (0)
[5]
LLOYD S P. Least squares quantization in PCM[J]. IEEE transactions on information theory, 1982, 28(2): 129-137. DOI:10.1109/TIT.1982.1056489 (0)
[6]
KAUFMAN L, ROUSSEEUW P J. Finding groups in data: an introduction to cluster analysis[M]. Hoboken: John Wiley, 1990. (0)
[7]
KARYPIS G, HAN E H, KUMAR V. CHAMELEON: a hierarchical clustering algorithm using dynamic modeling[J]. Computer, 1999, 32(8): 68-75. DOI:10.1109/2.781637 (0)
[8]
ZHANG T, RAMAKRISHNAN R, LIVNY M. BIRCH: an efficient data clustering method for very large databases[C]//Proceedings of the ACM SIGMOD International Conference on Management of Data. Montreal, 1996:103-114. (0)
[9]
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. Oregon, 1996:22-69. (0)
[10]
ANKERST M, BREUNIG M M, KRIEGEL H P, et al. OPTICS: ordering points to identify the clustering structure[C]//Proceedings of the ACM SIGMOD International Conference on Management of Data. Philadelphia, 1999:49-60. (0)
[11]
WANG W, YANG J, MUNTZ R R. STING: a statistical information grid approach to spatial data mining[C]//Proceedings of the 23rd International Conference on Very Large Data Bases. San Francisco, 1997:186-195. (0)
[12]
RODRIGUEZ A, LAIO A. Clustering by fast search and find of density peaks[J]. Science, 2014, 344(6191): 1492-1496. DOI:10.1126/science.1242072 (0)
[13]
XIE J, GAO H, XIE W, et al. Robust clustering by detecting density peaks and assigning points based on fuzzy weighted K-nearest neighbors[J]. Information sciences, 2016, 354: 19-40. DOI:10.1016/j.ins.2016.03.011 (0)
[14]
谢娟英, 高红超, 谢维信. K近邻优化的密度峰值快速搜索聚类算法[J]. 中国科学(信息科学), 2016, 46(2): 258-280. (0)
[15]
FREY B J, DUECK D. Clustering by passing messages between data points[J]. Science, 2007, 315(5814): 972-976. DOI:10.1126/science.1136800 (0)
[16]
FAN J, NIU Z, LIANG Y, et al. Probability model selection and parameter evolutionary estimation for clustering imbalanced data without sampling[J]. Neurocomputing, 2016, 211: 172-181. DOI:10.1016/j.neucom.2015.10.140 (0)
[17]
ZAHN C T. Graph-theoretical methods for detecting and describing gestalt clusters[J]. IEEE transactions on computers, 1971, 20(1): 68-86. (0)
[18]
ZHONG C, MIAO D, WANG R. A graph-theoretical clustering method based on two rounds of minimum spanning trees[J]. Pattern recognition, 2010, 43(3): 752-766. DOI:10.1016/j.patcog.2009.07.010 (0)
[19]
ZHONG C, MIAO D, FRÄNTI P. Minimum spanning tree based split-and-merge: a hierarchical clustering method[J]. Information sciences, 2011, 181(16): 3397-3410. DOI:10.1016/j.ins.2011.04.013 (0)
[20]
GOWDA K C, KRISHNA G. Agglomerative clustering using the concept of mutual nearest neighbourhood[J]. Pattern recognition, 1978, 10(2): 105-112. DOI:10.1016/0031-3203(78)90018-3 (0)
[21]
GOWDA K C, DIDAY E. Symbolic clustering using a new similarity measure[J]. IEEE transactions on systems man & cybernetics, 1991, 22(2): 368-378. (0)
[22]
PREPARATA F P, SHAMOS M I. Computational geometry[M]. Berlin: Springer-Verlag, 1985. (0)
[23]
HELD M, KARP R M. The traveling-salesman problem and minimum spanning trees[J]. Mathematical programming, 1971, 1(1): 6-25. DOI:10.1007/BF01584070 (0)
[24]
WILLETT P. Recent trends in hierarchic document clustering: a critical review[J]. Information processing & management, 1988, 24(5): 577-597. (0)
[25]
EISEN M B, SPELLMAN P T, BROWN P O, et al. Cluster analysis and display of genome-wide expression patterns[J]. Proceedings of the national academy of sciences, 1998, 95(25): 14863-14868. DOI:10.1073/pnas.95.25.14863 (0)