«上一篇 下一篇»
  计算机工程  2020, Vol. 46 Issue (9): 68-75  DOI: 10.19678/j.issn.1000-3428.0055574
0

引用本文  

魏文浩, 唐泽坤, 刘刚. 基于距离和密度的PBK-means算法[J]. 计算机工程, 2020, 46(9), 68-75. DOI: 10.19678/j.issn.1000-3428.0055574.
WEI Wenhao, TANG Zekun, LIU Gang. PBK-means Algorithm Based on Distance and Density[J]. Computer Engineering, 2020, 46(9), 68-75. DOI: 10.19678/j.issn.1000-3428.0055574.

基金项目

中央高校基本科研业务费专项资金重点项目"基于大数据的城市公共安全风险预警研究"(17LZUJBWZD012);教育部哲学社会科学研究重大课题攻关项目"大数据驱动的城市公共安全风险研究"(16JZD023)

通信作者

刘刚(通信作者), 讲师

作者简介

魏文浩(1993-), 男, 硕士研究生, 主研方向为数据挖掘、大数据处理;
唐泽坤, 硕士研究生

文章历史

收稿日期:2019-07-24
修回日期:2019-09-05
基于距离和密度的PBK-means算法
魏文浩 , 唐泽坤 , 刘刚     
兰州大学 信息科学与工程学院, 兰州 730000
摘要:K-means算法初始中心点选择的随机性以及对噪声点的敏感性,使得聚类结果易陷入局部最优解,为获得最佳初始聚类中心,提出一种基于距离和密度的并行二分K-means算法。计算数据集的平均样本距离,根据数据点之间的距离计算数据的权重,选择最大权重数据点作为第一个中心点,小于平均样本距离的数据点不参加下一次聚类,将剩余数据点的权重与中心点距离相乘,选择值最大的数据点作为下一个中心点,得到两个中心点后按照距离对数据进行分配,将每个中心点代表的类分为两类后在每类上继续重复上述步骤。通过模仿细胞分裂的方法对数据进行切分,构建一棵满二叉树,当叶子结点数超过类别数k时停止聚类,合并叶子结点得到k个初始聚类中心执行K-means算法。在UCI公开数据集上进行测试,结果表明,对比传统K-means算法、Canopy-Kmeans算法、二分K-means算法、WK-means算法、MWK-means算法和DCK-means算法,该算法效率更高,具有较好的聚类效果。
关键词二分K-means算法    聚类中心    初始中心点    权重    数据挖掘    
PBK-means Algorithm Based on Distance and Density
WEI Wenhao , TANG Zekun , LIU Gang     
School of Information Science and Engineering, Lanzhou University, Lanzhou 730000, China
Abstract: The randomness of the initial center point selection of the K-means algorithm and its sensitivity to noise points make the clustering result easily fall into the local optimal solution.In order to obtain the best initial clustering center, this paper proposes a parallel bisecting K-means algorithm based on distance and density.The algorithm calculates the average distance between dataset samples.Based on the distance between the data points, the weight of the data is calculated, and the most heavily weighted data is chosen as the first center point.Also, data whose distance from the first center point is less than the average sample distance do not participate in the next round of clustering.The weights of the remaining data points are multiplied with the distance from the selected center point, and the data with the largest value is chosen as the next center point.After the two center points are obtained, the data are distributed according to the distance from them.The classes represented by each center point are divided into two categories, and on each category the above steps are repeated.The algorithm simulates the way of cell division to segment the data, and constructs a full binary tree.When the number of leaf nodes exceeds the number of categories, k, the clustering is stopped and k initial clustering centers are obtained by merging leaf nodes to execute the K-means algorithm. Test results on the UCI public dataset show that the proposed algorithm has higher efficiency and better clustering performance compared with the traditional K-means algorithm, Canopy-Kmeans algorithm, Bisecting K-means algorithm, WK-means algorithm, MWK-means algorithm and DCK-means algorithm.
Key words: bisecting K-means algorithm    clustering center    initial center point    weight    data mining    
0 概述

数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程, 已广泛应用于大中型企业、军事、银行、医学等领域[1]。聚类是数据挖掘中将物理或抽象对象的集合分成由类似的对象组成的多个类的方法。由聚类所生成的簇是一组数据对象的集合, 这些对象与同一个簇中的对象彼此相似, 与其他簇中的对象相异[2]。在自然科学和社会科学中[3], 存在着大量的分类问题。

在现实世界中存在着越来越多的无标签数据, 因此使用无监督学习方法解决问题就显得非常重要[4], 而无监督学习中的聚类则可以利用数据自身特征对无标签数据进行分类。文献[5]提出一种基于简单观测的迭代方法, 由数据集导出K个簇的质心作为中心点, 即K-means聚类算法。K-means算法因思想较为简单且易实现的特点, 成为应用最广泛的聚类算法[6], 它将距离作为相似度把数据集分为若干个类[7-8], 在同一类中, 数据间的相似度更高, 在不同的类中, 数据间的相似度更低。但是K-means算法也有局限性, 如算法初始中心设置的随机性使聚类结果易陷入局部最优解, 并且聚类结果不稳定, 易受噪声点影响。

近年来, 研究人员提出了很多新的聚类算法, 其中多数是对于K-means算法初始聚类中心选择的优化。文献[9]通过将数据集划分为几个最佳子集, 然后在每个子集选择中心点, 解决了K-means算法中心点选择的随机性问题, 但中心点的合理性取决于数据集划分的好坏。文献[10]将数据集存储在kd-tree中, 根据距离选择中心点, 未考虑密度对聚类效果的影响。除使用kd-tree减小算法时间复杂度外, R*-tree[11]和X-tree[12]也被用来存储数据集, 但也相应地增加了空间复杂度。文献[13]提出基于统计相关性的区分因子算法, 通过引入Pearson指标[14]决定聚类过程, 可以自动确定簇数, 但多次BWP指标的计算增加了算法时间复杂度。文献[15-17]提出了WK-means算法, 该算法通过特征加权[18]选择中心点, 考虑了数据特征对聚类效果的影响, 但是没有考虑特征值的尺度和特征权重之间的直接关系, 因此文献[19]提出MWK-means算法, 采用异常簇初始化的方法解决上述问题, 但当数据集更加复杂时, MWK-means算法需要更多时间进行特征加权。文献[20]提出一种邻聚类算法, 利用图熵的概念可以对复杂数据集进行有效聚类, DBSCAN[21]和OPTICS[22]根据密度选择核心对象进行聚类分析, 但这3种算法都对阈值的设定存在一定敏感性。2014年, 《Science》杂志发表一篇基于密度峰值的快速聚类算法[23], 但没有给出明确的阈值设定, 文献[24]提出了DCK-means算法, 利用数据集特征选择初始聚类中心, 参数设置更加合理, 但当数据集规模变大时算法时间复杂度会大幅提升。

针对以上问题, 本文提出一种PBK-means算法。该算法考虑密度和距离对聚类效果的影响, 将得到的初始聚类中心作为K-means算法的输入参数, 解决K-means算法易陷入局部最优解和抗噪能力差的问题。同时采用构造满二叉树的方法并行产生聚类中心, 以降低算法的时间复杂度。

1 相关算法

Bisecting K-means算法是一种无监督学习算法, 由STEINBACH、KARYPIS和KUMAR于2000年提出, 该算法通过对待切分簇的选择和切分结果的优选来获得高质量的初始聚类中心。如图 1~图 3所示, 为了得到K个簇, 将数据集所有点作为一个簇, 放入簇表中, 不断地从簇表中选择簇使用K-means算法进行二分聚类, 从所有二分实验中选取具有最小SSE值和的2个簇, 更新簇表, 直到产生K个簇。

Download:
图 1 K-means算法二分聚类步骤1 Fig. 1 First step of bisecting clustering the K-means algorithm
Download:
图 2 K-means算法二分聚类步骤2 Fig. 2 Second step of bisecting clustering the K-means algorithm
Download:
图 3 K-means算法二分聚类步骤3 Fig. 3 Third step of bisecting clustering the K-means algorithm

算法1  二分K-means算法

输入  数据集D, 聚类数K

输出  聚类结果

1.initialize the Array List

2.compute the center S of mass of D

3.add S to the central point sets C

4.WHILE(size of C < K){

5.    FOR(each sample iC){

6.      K-means(Di, 2)

7.      get the data sets Di1, Di2 belonging to i1, i2

8.      compute the SSE values of D

9.    }END FOR

10.    select j1, j2 with minimum SSE values

11.    remove j in sets C

12.    add j1, j2 to sets C

13.}END WHILE

14.PRINT(sets C, D after classification)

算法具体步骤如下:

步骤1  给定聚类数K和数据集D={x1, x2, …, xn}。

步骤2  计算D的质心, 并把它加入中心点集合C中。

步骤3  遍历C中的全部中心点, 使用K-means算法将每个中心点代表的类分为两类, 并计算分类后数据集D的SSE值的和。

步骤4  选择SSE值最小的簇群, 用新生成的两个中心点覆盖C中的生成这两类的中心点。

步骤5  重复步骤3和步骤4, 直至得到K个中心点。

对于含有K个中心点的集合C, ci为簇Ci的聚类中心, x为该簇中的一个样本, d(x, ci)表示xci之间的欧氏距离, SSE指标的计算公式为:

$ {\rm{SSE}} = \sum\limits_{i = 1}^K {\sum\limits_{x \in {C_i}} {d\left( {x, {c_i}} \right)} } $

SSE指标的计算增加了算法时间开销, 同时, 使用K-means算法将簇一分为二会受到K-means算法随机性的影响, 不能保证收敛到全局最优值。因此, 本文提出一种基于距离和密度的并行二分K-means算法, 取消了SSE指标的计算, 加入权重的概念, 在保持数据集空间划分合理性的前提下解决了中心点选择的随机性问题。

2 PBK-means算法 2.1 基本定义

对于给定数据集D={x1, x2, …, xn}, 每个样本元素可表示为xm={xm1, xm2, …, xmr}, 1≤mn, 其中, r是样本元素的维度, d(xi, xj)代表样本元素xixj之间的欧氏距离。

定义1  数据集D的平均样本距离定义为[24]:

$ {\rm{MeanDis}}\left( D \right) = \frac{2}{{n\left( {n - 1} \right)}}\sum\limits_{i = 1}^n {\sum\limits_{j = i + 1}^n {d\left( {{x_i}, {x_j}} \right)} } $ (1)

定义2  数据集D的特征空间大小定义为:

$ {\rm{Range}}\left( D \right) = \sqrt {\sum\limits_{i = 1}^r {{{\left( {{{\max }_i} - {{\min }_i}} \right)}^2}} } $ (2)

其中, maxi和mini分别代表数据集第i个特征上的最大值和最小值。

定义3  样本元素i的密度参数定义为[25]:

$ p\left( i \right) = \sum\limits_{j = 1}^n {f\left( {{d_{ij}} - {\rm{MeanDis}}\left( D \right)} \right)} $ (3)

其中, $f\left( x \right) = \left\{ {\begin{array}{*{20}{c}} {1, x < 0}\\ {0, x \ge 0} \end{array}} \right.$

定义4  观察式(3)很容易发现p(i)是以数据样本i为圆心, 以MeanDis(D)为半径的圆内的数据样本数量。计算数据样本i与圆内全部数据样本的距离, 结合数据集特征空间大小, 样本元素i的距离参数定义为:

$ t\left( i \right) = \frac{2}{{p\left( i \right)\left[ {p\left( i \right) - 1} \right]}} \times \sum\limits_{i = 1}^{p\left( i \right)} {\sum\limits_{j = i + 1}^{p\left( i \right)} {\frac{{{\rm{Range}}\left( D \right) + r \times d\left( {{x_i}, {x_j}} \right)}}{{{\rm{Range}}\left( D \right)}}} } $ (4)

定义5  样本元素i的异类参数定义为:

$ a\left( i \right) = \left\{ {\begin{array}{*{20}{c}} {\frac{1}{m}\sum\limits_{j = 1}^m {d\left( {i, j} \right), \exists j, p\left( j \right) > p\left( i \right)} }\\ {\max \left\{ {d\left( {i, j} \right)} \right\}, \exists j, p\left( j \right) > p\left( i \right)} \end{array}} \right. $ (5)

其中, m是密度参数大于样本数据i的样本数据数量。

定义6  样本元素i的权重定义为:

$ w\left( i \right) = p\left( i \right) \times \frac{1}{{t\left( i \right)}} \times a\left( i \right) $ (6)

其中, w(i)的大小与p(i)和a(i)成正比, 与t(i)成反比。t(i)与a(i)的设定相对文献[24]的参数设定进行改进, 利用Range参数将每个数据对t(i)的贡献度控制在[1, 1+r]之间, a(i)计算了密度参数比i大的全部数据点与i的平均距离, 规范化密度和距离对聚类的影响, 考虑了全局的数据点分布, 有利于发现全局最优而不是局部最优。p(i)值越大, 点i的MeanDis(D)半径内的点越多, t(i)值越小, 点i的MeanDis(D)半径内的点越密集, a(i)值越大, 两个以MeanDis(D)为半径的圆差异越大。因此, 每次根据权值w选取下一个中心点可以保证数据集空间划分合理性, 同时, p(i)的设定可以明显提高算法的抗噪能力。

2.2 并行二分原则

首先将数据集一分为二得到两个簇, 然后以每个簇为起点再一分为二, 如此重复, 第r次获得2r个簇, 此过程与细胞分裂过程类似。细胞分裂式的二分给予每个簇均等的切分机会, 每次迭代都要对所有的簇进行切分, 这个过程可以并行实现, 最后会产生一棵完全二叉树。

显然, 对于K=2r的数据集, PBK-means算法可以直接得到结果, 对于2r-1 < K < 2r的数据集, 在进行r次迭代后, 将最终产生的2r个中心点通过PCA生成K个中心点。

虽然都采用了二分思想, 但二分K-means算法与本文提出的算法差别依旧明显, 二分K-means算法通过计算SSE值确定要切分的簇, 每次迭代只切分一个簇, 完成聚类需要多次计算SSE值, 增加了时耗。PBK-means算法通过结合权值保证每次对簇的切分都得到较好的效果, 第r次迭代同时对2r-1个簇进行切分, 同时并行实现的特点使本文算法的执行时间大幅减少。

2.3 最大权重原则

根据式(6)计算样本的权重, 如果满足条件max(p(i)/t(i)), 则将样本元素i作为第1个聚类中心, 计算所有样本元素与当前聚类中心的距离, 小于MeanDis(D)的样本元素不能参与下一次聚类中心的选择, 将此距离与权重相乘, 选择相乘后最大值样本元素作为第2个聚类中心。通过产生的2个中心点生成2个簇, 然后对产生的全部子簇重复上述过程, 在迭代过程中不断更新子簇的MeanDis(D), 直到产生的子簇数大于或等于需要的类数K。通过最大权重选择中心点的并行二分方法步骤如图 4图 5所示。

Download:
图 4 本文算法并行二分方法步骤1 Fig. 4 First step of parallel bisecting method of the proposed algorithm
Download:
图 5 本文算法并行二分方法步骤2 Fig. 5 Second step of parallel bisecting method of the proposed algorithm

算法2  PBK-means算法

输入  数据集D, 聚类数K

输出  聚类结果

1.initialize the Array List

2.initialize Central point sets C//创建中心点集合C

3.compute Range(D)

4.WHILE(size of C < K){

5.  get the data sets Di∈ci//将D中的元素分配给ci//生成Di

6.  computeMeansDis(Di)//计算Di相关参数

7.  FOR(each center ci∈C){

8.    FOR(each sample j∈Di){

9.      compute p(j) and t(j)

10.    }

11.  select center ci1←sample max(p(j)/t(j))//通过最//大权重原则选择2个新的中心点

12.      FOR(each sample j∈Di){

13.        compute a(j)

14.        compute w(j)=p(j)*a(j)*1/t(j)

15.      }

16.      FOR(each sample j∈Di){

17.      compute d(j, ci1)

18.      IF(d(j, ci1)>MeanDis(Di)){

19.        center ci2←sample max(d(j, ci1)*w(j))

20.    }

21.  }

22.   FOR(each center ci∈C){//更新中心点集合C

23.    remove ci in sets C

24.    add ci1, ci2 to sets C

25.  }

26.}END WHILE

27.update C//合并更新中心点集合C

28.K-means input(C, K)//将中心点集合C和类别数K//作为输入参数执行K-means算法

29.WHILE(new center!=original center){

30.  FOR(each samplei∈D){

31.    FOR(each centercj∈C){

32.      Compute d(i, cj)

33.    }

34.    IF(MinDis=d(i, cj)){

35.       centercj←sample i

36.    }

37.   }END FOR

38.   compute new center ci=Mean(sample(i & & (i∈center ci)))

39.}END WHILE

40.PRINT(Cluster C)

算法具体步骤如下:

步骤1  给定数据集, 根据式(6)计算所有样本的权重, 选择满足条件max(p(i)/t(i))的c1作为第1个聚类中心, 并将c1加入到集合C中。同时, 与c1的距离小于MeanDis(D)的样本不能参与下一次聚类中心的选择。

步骤2  计算剩余样本与c1之间的距离, 选择满足条件max(w(id(i, c1))的样本元素设为c2, 并将其加入到集合C中。

步骤3  根据距离将所有样本元素分配给c1c2, 得到2个簇。然后重新计算这2个簇的MeanDis(D)和簇中全部样本元素的w。对于产生的2个簇, 并行执行步骤1和步骤2, 产生4个新的聚类中心c3c4c5c6。删除集合C中的c1c2, 并将c3c4c5c6加入集合C中。

步骤4  根据距离将对应的样本元素分配给集合C中的m个中心点, 产生m个簇, 更新每个簇的MeanDis(D)和簇中的样本元素权重, 对产生的m个簇并行执行步骤1和步骤2, 删除集合C中原有元素, 将得到的2m个聚类中心添加到集合C中。

步骤5  重复步骤4直至集合C中的元素个数大于或等于类数K。迭代q次后会得到2q个聚类中心, 如果大于K, 则使用PCA将2q个中心点减少至K个。

2.4 算法时间复杂度

传统K-means算法的时间复杂度可以被描述为O(nKT), n是样本集中的样本元素个数, K是分类数, T是算法迭代次数。本文提出的PBK-means算法时间复杂度为O(n2+nr+nKT), 文献[24]提出的DCK-means算法时间复杂度为O(n2+nS+nKT), r是使用二分法的迭代次数, r值较小, 约等于lb K, S是寻找中心点的迭代次数, 大小约为K, T是产生的初始聚类中心执行K-means算法的迭代次数, O(n2)是使用最大权重法耗费的时间复杂度。将本文提出算法得到的初始聚类中心作为K-means算法的输入参数时, 需要的迭代次数T明显小于传统K-means算法随机选取聚类中心所需的迭代次数T, 因此, PBK-means算法的时间复杂度主要由数据集规模n决定。在处理规模中小型数据集时, 本文算法在聚类效果和耗时方面都有较好的表现。当数据集规模增大到一定程度时, 本文算法的时间复杂度约为O(n2)。目前提出的改进聚类算法由于结合密度或距离, 算法时间复杂度均在O(n2)~O(n3)之间, 本文算法由于结合了并行实现的特点, 初始中心点的选择过程耗时更短, 效率更高。

3 实验数据

对本文提出算法以及对比算法进行的实验由以下3个部分组成:

1) 算法中心点合并策略;

2) 测试本文算法与对比算法在实验数据集上的精准度等聚类指标;

3) 比较本文算法与对比算法在实验数据集上聚类所用的时间。

实验环境为8 GB内存、IntelCoreTMi5-7500、3.40 GHz, Windows10操作系统。

3.1 实验数据集参数

本文实验用到了UCI数据集, 从UCI网站获取, 数据集参数如表 1所示。

下载CSV 表 1 实验数据集参数 Table 1 Experimental dataset parameters
3.2 实验结果 3.2.1 中心点合并策略

当实际聚类数为k时, 若k正好为2r, 则本文提出算法在r次迭代后得到的中心点可直接作为初始中心点执行K-means算法。若2r-1 < k < 2r, 则通过中心点合并策略使用k个数据点代表产生的2r个中心点。本文的中心点合并策略候选集主要有:利用CF对2r个中心点代表的簇进行合并, 使用PCA、LLE、t-SNE、MDS将每个中心点数据看作一个特征, 通过降维方法生成k个中心点。图 6是上述方法在类别数不等于2r的数据集上的聚类结果精度。

Download:
图 6 不同合并方法精度 Fig. 6 Accuracy of different merge methods

图 6可以看出, PCA在合并策略中表现最好, 在5个UCI数据集上均取得了最高的聚类精度, PCA方法的原理是将中心点集数据矩阵转置后把原先的2r个特征用数目更少的k个特征取代, 从旧特征到新特征的映射保持原有数据特性。t-SNE比其他3种方法表现都好, 但与使用PCA时的聚类精度平均相差2.36%。在类别数和样本数较少时, 通过聚类特征对簇进行合并产生的聚类效果较差。

3.2.2 聚类效果

聚类效果通过准确率、兰德系数(Rand)、轮廓系数(Silhouette)、Jaccard系数、SSE指标评判。Canopy-Kmeans算法表示为CK-means, 二分K-means算法表示为BK-means, 本文提出的算法表示为PBK-means。本文算法与DCK-means算法得到的聚类结果是固定的, 对其他5种对比算法分别进行100次实验, 取实验结果的平均值。表 2~表 9为算法在UCI数据集上的实验结果。

下载CSV 表 2 Soybean-small数据集聚类结果指标 Table 2 Clustering results indicators of Soybean-small dataset
下载CSV 表 3 Iris数据集聚类结果指标 Table 3 Clustering results indicators of Iris dataset
下载CSV 表 4 Wine数据集聚类结果指标 Table 4 Clustering results indicators of Wine dataset
下载CSV 表 5 Seeds数据集聚类结果指标 Table 5 Clustering results indicators of Seeds dataset
下载CSV 表 6 Hepatitis数据集聚类结果指标 Table 6 Clustering results indicators of Hepatitis dataset
下载CSV 表 7 Pima数据集聚类结果指标 Table 7 Clustering results indicators of Pima dataset
下载CSV 表 8 Glass数据集聚类结果指标 Table 8 Clustering results indicators of Glass dataset
下载CSV 表 9 Segmentation数据集聚类结果指标 Table 9 Clustering results indicators of Segmentation dataset

通过表 2~表 9对聚类结果各项指标的比较发现:本文提出的算法在Segmentation数据集上与DCK-means算法基本相同, 原因是Segmentation数据集不同类别的数目差异较大, 数据分布分隔明显, 由于DCK-means算法与本文算法都考虑了距离与密度, 因此都能得到较好的结果。而在其他数据集上PBK-means算法各项指标均是最优的, 本文提出算法在上述8个UCI数据集上的聚类结果准确率比传统K-means算法高27.1%, 比Canopy-Kmeans算法高13.6%, 比Bisecting K-means算法高14%, 比WK-means算法高9.4%, 比MWK-means算法高5.8%, 比DCK-means算法高3.3%。无论是二分类任务或者多分类任务, PBK-means算法都能得到较好的聚类效果, 证明了算法思想和参数设置的合理性。本文提出的PBK-means算法通过结合距离与密度, 每次将选择的向量空间一分为二, 相比于其他算法, 更好地考虑了样本集全部数据的分布情况, 初始中心点的选择结合了距离与密度, 可以更快地收敛至全局最优。

3.2.3 聚类时耗

本节比较了PBK-means算法与6种对比算法在UCI数据集上聚类所用的时间, 具体耗时如表 10所示。

下载CSV 表 10 UCI数据集聚类耗时 Table 10 Clustering time consumption in UCI dataset

通过对表 10的分析, 可以得出以下结论:

1) 传统的K-means算法随机选择初始聚类中心, Canopy-Kmeans算法已选取中心点固定半径内的点不能选为中心点, 但中心点的选取仍是随机的, Bisecting K-means算法第1个中心点选取数据集质心, 但后续对簇的二分过程相当于面对二分类任务时的传统K-means算法。以上3种算法选取初始中心点的随机性造成后续迭代多次才能得到稳定的聚类结果, 因此聚类耗时较大。

2) 在面对多分类任务时, 二分K-means算法计算SSE指标值的大量耗时使其聚类时间最长。由于并行实现的特点, 本文提出的PBK-means算法所需聚类时间最少, 通过权衡距离与密度, 在保证聚类效果的前提下避免了SSE指标的计算耗时。在面对二分类任务时, PBK-means算法略优于DCK-means算法, 明显优于WK-means算法和MWK-means算法, 得到的初始聚类中心在执行K-means算法时迭代次数明显小于其他算法。

4 结束语

由于标签信息的缺乏, 无监督学习在数据挖掘中越来越重要, 聚类在网络入侵检测、自然灾害监测等方面有广泛的应用。本文提出一种PBK-means算法, 根据数据分布情况对数据集进行分类, 将距离和密度相结合从而快速处理中小型规模的数据集。实验结果表明, 该算法面对大型数据集时在效率和精度方面都有较好的表现。为获得最佳初始聚类中心, 将PBK-means算法与Mapreduce框架相结合以及寻找更好的中心点合并策略将是后续研究的内容。

参考文献
[1]
FAYYAD U M, PIATETSKY-SHAPIRO G, SMYTH P, et al. Advances in knowledge discovery and data mining[M]. [S.1.]: AAAI/MIT Press, 1996.
[2]
KUNAR K M, REDDY A R M. An efficient k-means clustering filtering algorithm using density based initial cluster centers[J]. Information Sciences, 2017, 411.
[3]
HAN J, KAMBER M, PEI J, et al.Data mining: concepts and technology[M].3rd ed.Translated by FAN Ming, MENG Xiaofeng.Beijing: Mechanical Industry Press, 2012.(in Chinese) HAN J, KAMBER M, PEI J, et al.
数据挖掘: 概念与技术[M].3版.范明, 孟小峰, 译.北京: 机械工业出版社, 2012.
[4]
SALEHI M, RASHIDI L. A Survey on anomaly detection in evolving data[J]. SIGKDD Explorations, 2018, 20(1): 13-23. DOI:10.1145/3229329.3229332
[5]
LLOYD S P. Least Squares Quantization in PCM[J]. IEEE Transactions on Information Theory, 1982, 28(2): 129-136. DOI:10.1109/TIT.1982.1056489
[6]
JAIN A K.Data clustering: 50 years beyond k-means, pattern recognition letters[EB/OL].[2019-07-20].http://dx.doi.org/10.1016/j.patrec.2009.09.011.
[7]
BU Yuanyuan, GUAN Zhongren. Research of clustering algorithm based on k-means[J]. Journal of Southwest University for Nationalities(Natural Science Edition), 2009, 35(1): 198-200. (in Chinese)
步媛媛, 关忠仁. 基于k-means聚类算法的研究[J]. 西南民族大学学报(自然科学版), 2009, 35(1): 198-200.
[8]
WANG Jun, WANG Shitong, DENG Zhaohong. A novel text clustering algorithm based on feature weighting distance and soft subspace learning[J]. Chinese Journal of Computers, 2012, 35(8): 1655-1665. (in Chinese)
王骏, 王士同, 邓赵红. 特征加权距离与软子空间学习相结合的文本聚类新方法[J]. 计算机学报, 2012, 35(8): 1655-1665.
[9]
ZHANG Jianpei, YANG Yu, YANG Jing, et al. Algorithm for initialization of K-Means clustering center based on optimized-division[J]. Journal of System Simulation, 2009, 21(9): 2586-2590. (in Chinese)
张健沛, 杨悦, 杨静. 基于最优划分的K-Means初始聚类中心选取算法[J]. 系统仿真学报, 2009, 21(9): 2586-2590.
[10]
ALSABTI K, RANKA S, SINGLY V.An efficient k-means clustering algorithm[C]//Proceedings of the 1st Workshop on High Performance Data Mining.Washington D.C., USA: IEEE Press, 1998: 35-43.
[11]
BECKMANN N, KRIEGEL H P, SCHNEIDER R, et al.The r-tree: an efficient and robust access method for points and rectangles[C]//Proceedings of ACMSIGMOD International Conference on Management of Data.Washington D.C., USA: IEEE Press, 1990: 322-331.
[12]
BERCHTOLD S, KEIM D, KRIEGEL H P.The x-tree: an efficient and robust access method for points and rectangles[C]//Proceedings of International Conference on Very Large Data Bases.Washington D.C., USA: IEEE Press, 1996: 28-39.
[13]
XIE Juanying, GAO Hongchao. Statistical correlation and K-Means based distinguishable gene subset selection algorithms[J]. Journal of Software, 2014, 25(9): 2050-2075. (in Chinese)
谢娟英, 高红超. 基于统计相关性与K-means的区分基因子集选择算法[J]. 软件学报, 2014, 25(9): 2050-2075.
[14]
SOROOSH A, STEPHEN M S, THOMAS E N. Effective degrees of freedom of the Pearson's correlation coefficient under autocorrelation[J]. NeuroImage, 2019, 199: 609-625. DOI:10.1016/j.neuroimage.2019.05.011
[15]
HUANG J Z, XU J, NG M, et al.Weighting method for feature selection in k-means[C]//Proceedings of Computational Methods of Feature Selection.[S.1.]: CRC Press, 2008: 193-209.
[16]
CHAN Y, CHING W K, NG M K, et al. An optimization algorithm for clustering using weighted dissimilarity measures[J]. Pattern Recognition, 2004, 37(5): 943-952. DOI:10.1016/j.patcog.2003.11.003
[17]
HUANG J Z, NG M K, RONG H, et al. Automated variable weighting in K-Means type clustering[J]. IEEE Transactions on Pattern Analysis and Machine Learning, 2005, 27(5): 657-668. DOI:10.1109/TPAMI.2005.95
[18]
MAKARENKOV V, LEGENDRE P. Optimal variable weighting for ultrametric and additive trees and K-Means partitioning[J]. Journal of Classification, 2001, 18: 245-271. DOI:10.1007/s00357-001-0018-x
[19]
DE AMORIM R C, MIRKIN B, METRIC M. Feature weighting and anomalous cluster initializing in K-Means clustering[J]. Parttern Recognition, 2012, 45: 1061-1075. DOI:10.1016/j.patcog.2011.08.012
[20]
AN Jingmin, LI Guanyu. Domain concept clustering method based on graph entropy extreme value theory[J]. Computer Engineering, 2020, 46(6): 88-93. (in Chinese)
安敬民, 李冠宇. 基于图熵极值化理论的领域概念聚类方法[J]. 计算机工程, 2020, 46(6): 88-93.
[21]
ESTER M, KRIEGEL H, 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.[S.1.]: AAAI Press, 1996: 226-231.
[22]
ANKERST M, BREUNIG M, KRIEGEL H P.OPTICS: ordering points to identify the clustering structure[C]//Proceedings of International Conference on Management of Data.Philadelphia, USA: [s.n.], 1999: 49-60.
[23]
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
[24]
ZHANG Geng, ZHANG Chengchang, ZHANG Huayu. Improved K-Means algorithm based on density canopy[J]. Knowledge-Based Systems, 2018, 145: 289-297. DOI:10.1016/j.knosys.2018.01.031