孙林 等: 基于 K 近邻和优化分配策略的密度峰值聚类算法
1391
proposed to quantify the possibility of candidate cluster centers as cluster centers, and then the cluster centers were determined. Second,
to improve the allocation precision of points, according to the shared nearest neighbors, high density nearest neighbor, density difference,
and distance between KNN, the similarity measures were constructed, and then some concepts of the neighborhood, similarity set, and
similarity domain were proposed to assist in the allocation of points. The initial clustering results were determined according to the
similarity domains and boundary points, and then the intermediate clustering results were achieved based on the cluster centers. Finally,
according to the intermediate clustering results and similarity set, the clusters were divided into multiple layers from the cluster centers to
the cluster boundaries, for which the allocation strategies of points were designed, respectively. To determine the allocation order of points
in the specific layer, the positive value was presented based on the similarity domain and positive domain. The point was allocated to the
dominant cluster in its positive domain. Thus, the final clustering results were obtained. The experimental results on 11 synthetic datasets
and 27 real datasets demonstrate that the proposed algorithm has sound clustering performance in metrics of the purity, F-measure,
accuracy, Rand index, adjusted Rand index, and normalized mutual information when compared with the state-of-the-art DPC algorithms.
Key words: density peak clustering; K-nearest neighbors (KNN); cluster center; positive value; allocation strategy
随着机器学习模型不断付诸开放应用场景, 其往往面临诸多不适
[1]
. 聚类是机器学习领域中一种重要的
无监督学习方法, 其鲁棒性的提升, 是机器学习方法亟待解决的问题. 聚类算法是处理大数据的关键技术之
一
[2,3]
, 目前可以粗略地分为 5 类: 划分、层次、网格、模型和密度
[4]
. 基于划分的聚类算法需要用户指定簇的
个数, 适用于凸状簇, 对异常点和噪音敏感
[5]
. 层次聚类算法有较高的计算复杂度, 对数据输入顺序敏感
[4]
.
基于网格的聚类算法遇到数据分布具有局部形状和局部密度的情况时, 性能会受到单元大小、边界的影响
[6]
.
基于模型的聚类算法的准确性取决于实验概率表达数据的能力
[7]
. 基于密度的聚类算法探测稠密区域, 将高
密度区域中的点识别为簇, 将低密度区域中的点识别为异常点和噪音
[8]
. 因而,基于密度的聚类算法可以识别
任意形状簇, 并且能够有效处理含有噪音的生物数据、多媒体数据、图像文本数据等. 但是, 密度聚类算法也
面临数据集密度可变和参数敏感等问题. 在真实世界中, 大多数数据集由非球形簇或者非椭圆形簇组成, 例
如一些以流形分布的人脸图像、手写数字图像以及超矩形分布的生物数据等. 事实上, 基于点的局部密度的
聚类算法很容易识别任意形状和任意尺寸的簇, 而且可以有效过滤掉噪音数据
[7]
. 近年来, 密度聚类算法吸
引了越来越多学者们的关注. 基于上述发现, 本文聚焦于基于密度策略的聚类算法, 以解决复杂数据尤其是
非球形数据的分类问题.
2014 年, Rodriguez 和 Laio
[7]
提出了一种密度峰值聚类算法(clustering by fast search and find of density
peaks, DPC), 当前已经涌现出了大量的 DPC 变体算法
[9,10]
. 总体来讲, DPC 能够有效探测任意形状的簇, 使用
简单, 具有非常好的鲁棒性, 但是也存在一些缺点: 对于簇间密度差别大或者簇中存在多密度峰的数据集,
DPC 难以为数据集选择到正确的簇中心; DPC 中点的分配方法存在多米诺骨牌效应, 针对该现象, DPC 目前无
有效措施. 近年来, 针对 DPC 存在的问题, 诸多学者已做了大量研究工作. 针对 DPC 不能为密度可变的数据
集选择正确的簇中心以及分配策略鲁棒性差等问题, Liu 等人
[11]
设计了相似度和两步点的分配方法, 提出了基
于共享最近邻的 DPC算法. 但该算法对噪声敏感, 计算复杂度高. 对于带有多密度峰的簇, DPC 难以确定这些
密度峰是否在同一个簇中, 且若一个点被错误分类, 则比这个点密度低的一系列点也容易被错误分类. 为了
解决这些问题, Jiang 等人
[12]
提出了基于 K 最近邻和基尼系数的自适应 DPC 算法. 但是, 该算法在高维数据上
的准确性较低. 对于簇间密度差别大的数据集, DPC 使用绝对密度难以选出正确的簇中心. 受此启发, Hou 等
人
[13]
构建了基于相对密度关系的簇中心识别标准增强 DPC 算法. 为了解决 DPC 不能识别多密度峰的簇以及
密度相对较低的簇的问题, Wang 等人
[14]
基于层次方法设计了一种多中心的 DPC 算法. 事实上, DPC 的分配策
略容易引起连锁反应, 即: 若一个点被分配到错误的簇中, 就很可能导致更多的点被分配到错误的簇中. 于
是, Seyedi 等人
[15]
提出了一种动态的基于图标签传播的 DPC 算法. 但是, 该算法在聚类高维数据时存在诸多
限制. 若 DPC 使用了不合适的截断距离, 则会导致簇中心的错误选择. 在某些情况下, 即使为截断距离设置
正确的值, 也难以在决策图中确定簇中心. 为了解决这个问题, Liu 等人
[16]
提出了一种基于 KNN 和合并策略
的自适应的 DPC 算法. 但是, 该算法在密度可变的数据集上性能较差. 由此, 针对 DPC 算法和现有改进算法
在簇中心的确定和点的分配方面的不足, 为了有效确定簇中心并提升点分配的正确率, 本文提出一种基于 K
评论