Chameleon变色龙聚类算法小结

原文链接:https://blog.csdn.net/qiu1440528444/article/details/80725142
推荐代码(java代码,亲测能用):https://github.com/kstanisz/chameleon-clustering

前言

  Chameleon,变色龙算法,属于层次聚类算法领域。一种层次聚类算法,它采用动态建模来确定一对簇之间的相似度。它可以自动地、适应地合并簇,对各种奇葩的形状也能应对自如。

1. Chameleon 算法原理

一张图大致了解整个算法的思想。
在这里插入图片描述
  1) 首先由数据集构造一个 k-最近邻图 Gk;
  2) 再通过一种图的划分算法,将Gk图划分成大量较小的子图,每个子图代表一个初始的子簇;
  3) 最后使用凝聚层次聚类算法,基于子簇的相似度反复合并子簇。

  下面再看看定义的一些概念,为了引出变色龙算法的一些定义,这里先说一下以往的一些聚类算法的不足之处,如图。
在这里插入图片描述
  1) 如图4所示:忽略簇与簇之间的互连性。
  如果只看最近邻的链接,即只看近似性,则算法会倾向于合并c和d而不是a和b,但实际上a、b的临接区域较大,距离也不远(相对于a、b内部),即互连性更好,所以应该属于同一个cluster簇。
  2) 如图5所示:忽略簇与簇之间的近似性。就是过分强调临接区域的大小,倾向于合并a、c,而不是a、b。

  Chameleon算法正好弥补了这2点要求,兼具互连性和近似性。下面用公式来描述这2个概念。

2. 概念:互连性和近似性

  簇的互连性,同时考虑 两个簇之间的距离 和 簇内各元素之间的距离,用相对互联度(RI)来量化得衡量:
R I ( C i , C j ) = ∣ E C ( C i , C j ) ∣ ∣ E C ( C i ) ∣ + ∣ E C ( C j ∣ 2 RI(C_i,C_j)=\frac{|EC(C_i,C_j)|}{\frac{|EC(C_i)|+|EC(C_j|}{2}} RI(Ci,Cj)=2EC(Ci)+EC(CjEC(Ci,Cj)

其中, E C ( C i , C j ) EC(C_i,C_j) EC(Ci,Cj) 表示将簇 C C C划分为两个子簇 E C ( C i ) EC(C_i) EC(Ci) E C ( C j ) EC(C_j) EC(Cj) 割边的权重;
E C ( C i ) EC(C_i) EC(Ci)表示将 C i C_i Ci划分为大致相等的两部分的割边的权重

  簇的近似性,考虑更多的是簇与簇之间的近似性,用相对近似度(RC)指标量化:
R C ( C i , C j ) = S ˉ ∣ E C ( C i , C j ) ∣ ∣ C i ∣ ∣ C i ∣ + ∣ C j ∣ S ˉ E C ( C i ) ∣ + ∣ C j ∣ ∣ C i ∣ + ∣ C j ∣ ∣ S ˉ E C ( C j ∣ RC(C_i,C_j)=\frac{\bar{S}|EC(C_i,C_j)|}{\frac{|C_i|}{|C_i|+|C_j|}\bar{S}EC(C_i)|+\frac{|C_j|}{|C_i|+|C_j|}|\bar{S}EC(C_j|} RC(Ci,Cj)=Ci+CjCiSˉEC(Ci)+Ci+CjCjSˉEC(CjSˉEC(Ci,Cj)

其中, S ˉ E C ( C i , C j ) \bar{S}EC(C_i,C_j) SˉEC(Ci,Cj)表示将簇 C C C划分为两个子簇 E C ( C i ) EC(C_i) EC(Ci) E C ( C j ) EC(C_j) EC(Cj) 割边的平均权重,
S ˉ E C ( C i ) \bar{S}EC(C_i) SˉEC(Ci)表示将 C i C_i Ci划分为大致相等的两部分的割边的平均权重,

  定义度量公式
R I ( C i , C j ) ∗ R C ( C i , C j ) α RI(C_i,C_j) * RC(C_i,C_j)^\alpha RI(Ci,Cj)RC(Ci,Cj)α

其中 α 为是用来调节两个参量的比重的参数,α>1,更重视相对近似性,α<1更重视相对互连性。

  聚合过程中,选择使该函数值最大的簇对进行合并。重复这一过程,直到没有满足条件的子簇为止。

3. 算法流程

  合并的过程如下:
  1) 给定度量函数如下minMetric,
  2) 访问每个簇,计算他与邻近的每个簇的RC和RI,通过度量函数公式计算出值tempMetric。
  3) 找到最大的tempMetric,如果最大的tempMetric超过阈值minMetric,将簇与此值对应的簇合并
  4) 如果找到的最大的tempMetric没有超过阈值,则表明此聚簇已合并完成,移除聚簇列表,加入到结果聚簇中。
  5) 递归步骤2,直到待合并聚簇列表最终大小为空。

4. 优缺点

优点:可以发现高质量的任意形状的簇。
缺点:
  1) 需要设置的参数较多,包括knn中 k 值,度量公式中的 α \alpha α值,阈值minMetric的选取;
  2) 最坏情况下,高维数据的处理代价可能需要 O ( n 2 ) O(n^2) O(n2)的时间。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值