CFSFDP聚类算法

聚类分析又称聚类,是把一个数据集合划分为多个集群(cluster)的过程,使得相同集群内的数据之间具有相似性,不同集群的数据之间具有差异性。聚类是数据挖掘、统计分析的主要任务之一,应用于机器学习、模式识别、图像处理、信息检索、生物信息、数据压缩和计算机图像等领域。(From 维基百科)

Clustering

1 聚类算法总结

常用的聚类算法包括:
(1)启发式分割算法:起始确定K个中心点,用距离公式来判断数据点归属,用代价函数(如最小化平方和)评价聚类结果,迭代直至最优,例如:K-Means,K-Medoids。
(2)基于模型的算法:起始随机确定若干个模型中心,用基于概率的方法判断数据点归属,通过迭代的方法找寻适合各个类的模型,例如:Gaussian Mixture Model。
(3)降维的方法:通过降维,找寻数据间的特征,再完成聚类,例如:Spectral Clustering,Normalised-Cut。
(4)基于密度的方法:定义数据点密度,从少数对象开始拓展得到集群,例如:DBSCAN,CFSFDP。

根据聚类的数据特征应合理选用聚类算法。如图1所示,包含球形集群和非球形集群两幅典型示意图,在球形集群中,数据集相对集中,且无空间分布规律特征,这时候常常采用K-means、K-medoids、Gaussian Mixture Model等方法来聚类。而对于非球形集群,数据点分布具有空间特征,图1(b)所示的是具有三个集群的数据集,三个集群的数据点分布呈现类渐开线特征,这时就不能采用传统的聚类方法,而应选择Spectral Clustering、Normalised-Cut、DBSCAN和CFSFDP等等。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MQcn2GU1-1619436787808)(\images\20170414\图1.jpg)]图1

2 CFSFDP聚类算法

CFSFDP算法即为Clustering by fast search and find of density peaks,这是由Alex Rodriguez 和Alessandro Laio于2014年发表在《Science》期刊的聚类算法。该算法的基本假设有两个,一是聚类中心附近的数据点具有较低的密度,二是数据点与其他密度更大的中心距离较远。数据点密度的定义为:

ρ i = ∑ j χ ( d i j − d c ) \rho_i=\sum_j\chi(d_{ij}-d_c) ρi=jχ(dijdc)

这里,当 x < 0 x<0 x<0时, χ ( x ) = 1 \chi(x)=1 χ(x)=1,当 x > 0 x>0 x>0时, χ ( x ) = 0 \chi(x)=0 χ(x)=0。其中, d c d_c dc为截断距离(Cutoff distance),即确定密度的重要阈值,文中提到 d c d_c dc取合适值使得平均密度为总数据量的1%-2%。数据点与密度较大点间的最小距离定义为:

δ i = { min ⁡ j : ρ j > ρ i ( d i j ) , i f ρ i < max ⁡ { ρ j } max ⁡ j ( d i j ) , i f ρ i = max ⁡ { ρ j } \delta_i=\left\{ \begin{aligned} \min_{j:\rho_j>\rho_i}(d_{ij}),\quad if\quad \rho_i<\max\{\rho_j\} \\ \max_j(d_{ij}),\quad if\quad\rho_i=\max\{\rho_j\} \end{aligned} \right. δi=j:ρj>ρimin(dij),ifρi<max{ρj}jmax(dij),ifρi=max{ρj}

在文中的例子中,数据集如图2(a)所示,分别计算出 δ \delta δ ρ \rho ρ,在所有的数据点中,有四种点,一是 δ \delta δ ρ \rho ρ大的点,包括1和10;二是 δ \delta δ ρ \rho ρ小的点,包括28,26,27;三是 δ \delta δ ρ \rho ρ大,包括7,8,3,4等等,四是 δ \delta δ ρ \rho ρ小,其余点都是这个类别。很明显,第一种点即为集群的中心,第二类则是离群点。文章中提到定义一个指标来选择中心,用 δ \delta δ ρ \rho ρ乘积的形式:
γ i = δ i ⋅ ρ i \gamma_i=\delta_i\cdot\rho_i γi=δiρi

在这里插入图片描述

图2

在确定数个中心之后,其余数据点按照密度大小,依次从属于距离最近的密度大于其自身的点。
根据该聚类算法的步骤,我自己设计了类渐开线数据集的聚类实验,聚类结果如图3所示。图3(a)是K-means的聚类结果,很明显这种方法未能实现非球形聚集的聚类问题,而CFSFDP算法则能够实现目标。然而,在实验中发现参数 d c d_c dc的选择很大程度上影响了实验结果,很难确定。

在这里插入图片描述

图3

3 阈值讨论——Data Field

由于参数 d c d_c dc是CFSFDP算法中重要的影响因素,因此其确定方法引起了一些学者的兴趣,其中有Wang等人提出了使用名为Data Filed的方法来确定。他们定义每个数据点的潜力(Pontential)为:

ϕ i = ∑ j = 1 n m j K ( x i − x j σ ) \phi_i=\sum_{j=1}^n m_jK(\frac{x_i-x_j}\sigma) ϕi=j=1nmjK(σxixj)

这里,而所以数据点潜力可组成的数据场(Data Filed),其范围由最小化的熵值H(Entropy)来确定,公式为:

H = − ∑ i = 1 n ϕ i Z ln ⁡ ϕ i Z H=-\sum_{i=1}^n\frac{\phi_i}{Z}\ln{\frac{\phi_i}{Z}} H=i=1nZϕilnZϕi

求出数据点的潜力公式中的 σ \sigma σ从而确定空间中的数据场。他们比较了数据场的热力图和CFSFDP算法得到的聚类结果图,发现二者很相近,因此就认为 d c d_c dc的确定可以由数据场的方法来实现。当潜力公示的核函数用高斯函数的时候,高斯函数具有“3 σ \sigma σ准则”,因此 d c d_c dc的取为 3 2 σ \frac{3}{\sqrt{2}}\sigma 2 3σ,表示数据点的影响范围。这里的取值较为难理解,一般都是直接用均值 ± 3 σ \pm3\sigma ±3σ的区间。然而,从他们的实验对比中,可以发现这种确定方法得到较好的聚类结果,相关成果发表的论文得到了84次的引用量。

4 改进策略1——借助Chameleon模型

Zhang等人提出CFSFDP算法不适用于一些特殊的数据集,例如图4所示的数据集合。这个数据集其实是由三个数据集群组成的,外围集群、内左集群和内右集群,但是Zhang等人用CFSFDP算法来聚类,尝试用不同的 d c d_c dc值,都难以得到好的聚类结果,如图5所示。因此,他们研究了改进的策略。

在这里插入图片描述

图4

在这里插入图片描述

图5

Zhang等人的改进策略是受Chameleon模型启发,该模型的基本思想如图6所示,包括三个步骤,一是将数据集合用k近邻图的方法,组成稀疏图,而是将稀疏图打散分成若干个小类,三是重新组合,得到最后的聚类结果。

在这里插入图片描述

图6

Chameleon算法定义了两个概念,相对互关联(Relative inner-connectivity)代表小类之间的连接区域强度的总和,相对紧密度(Relative closeness)则代表小类之间的连接区域强度的平均值。两个指标都有相应的公式,并进行标准化,然后结合两个指标来合并小类。
借助这种思想,Zhang等人设置较小的 d c d_c dc,然后用CFSFDP聚成数目较多的小类,之后再合并成集群,图7所示即为他们文中的实验。先将两个U型集群组成的数据划分为若干个小类,再用Chameleon算法来合并小类,最终得到结果。

5 改进策略2——一些改进措施

Gao等人在文章中总结了CFSFDP算法在实际应用中遇到的问题:

在这里插入图片描述

图7

(1)截断距离dc需要依靠先验经验确定;
(2)集群中心选择需要主观地从决策图中选择;
(3)相同的高密度峰会算法会失效;
(4)算法无法应用于特殊的数据集。

Gao等人在文中提出了改进的模型ICFS,模型的具体步骤如图8所示,分成:预聚类、合并、拆分三个阶段。

在这里插入图片描述

图8

预聚类阶段,他们重新定义了 d c d_c dc的确定公式、中心的选择方式和分配策略。其中,中心的选择方式是在原有算法利用 δ \delta δ ρ \rho ρ乘积的形式,将得到 γ \gamma γ值从大到小排列,然后分别再乘以密度 ρ \rho ρ,将新的决策图(decision graph)与原有的决策图对比,从新的 γ ′ \gamma^\prime γ值开始,第一次出现阶跃点(Bump point)的时候,即有 γ k ′ > γ k + 1 ′ & γ k ′ > γ k − 1 ′ \gamma_k^\prime>\gamma_{k+1}^\prime\&\gamma_k^\prime>\gamma_{k-1}^\prime γk>γk+1&γk>γk1,则将1到k所以数据点作为中心,这个过程如图9所示。

在这里插入图片描述

图9

分配策略改变原有的“从属最近的较高密度点”分配,而是“使非中心点优先从属于最近的相同密度点”,如图10所示。然而这种分配方式也不完全合理,在对于相同密度的A和B,先分配A或者先分配B得到的结果是不同的。

在这里插入图片描述

图10

完成预聚类之后,Gao等人也提出了类合并和拆分的策略,合并是根据最近邻图的方法,而拆分则是根据“同一类中不能同时含有两个阶跃点”的准则。

6 总结

聚类算法在数据挖掘中是常用且重要的算法,但应用数据集特征不同,可能要先挑选合适的算法。CFSFDP算法是新颖的基于密度的聚类算法,给我们提供了一种新的聚类思路,方式具有普适性,得到不少学者的认可。然而,算法的本身的参数阈值确定和逻辑规则还有待改进。当然,改进算法也不是越复杂越好,太过于复杂的算法可能就会失去普适性,因此,改进策略需要在后续研究中进一步尝试。

参考文献

[1] Alex Rodriguez and Alessandro Laio. Clustering by fast search and find of density peaks. Science 344, 1492 (2014).
[2] Wang S, Wang D, Li C, et al. Comment on “Clustering by fast search and find of density peaks”. Computer Science, 2015.
[3] Wang S, Wang D, Li C, et al. Clustering by fast search and find of density peaks with data field. Chinese Journal of Electronics, 2016, 25(3):1492-6.
[4] Zhang W, Li J. Extended fast search clustering algorithm: widely density clusters, no density peaks. Computer Science, 2015.
[5] Karypis G, Han E H, Kumar V. Chameleon: hierarchical clustering using dynamic modeling. Computer, 1999, 32(8):68-75.
[6] Gao J, Zhao L, Chen Z, et al. ICFS: An improved fast search and find of density peaks clustering. 2016 IEEE 14th Intl Conf on Dependable, Autonomic and Secure Computing, 14th Intl Conf on Pervasive Intelligence and Computing, 2nd Intl Conf on Big Data Intelligence and Computing and Cyber Science and Technology Congress. 2016:537-543.

  • 5
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值