Chameleon : Hierarchical Clustering Using Dynamic Modeling及其改进

基本思想:

Chameleon 算法没有固定的模型,它动态的考察自身和其他簇,然后动态的适应、合并簇。
回忆一下,聚类算法只要考察的两点:
(1) 簇中元素的连接情况
(2) 簇与簇之间的邻近性
当且仅当合并后的结果簇,与原来的两个簇的形状与连接结构极为相似时,即合并后的结果簇与自己的局部具有自相似性时,此情形下合并这两个簇。
通过考虑集群的连通性以及紧密性来决定最相似的两子簇,它使用了一种新颖的方法来对每一对簇之间的连通性和紧密度进行建模,从而考虑到集群本身的内部特征。因此,它不依赖于静态用户提供的模型,并且能够自动适应集群的内部特性。
在这里插入图片描述
簇的互联性可以用相对互联度(RI)来量化

在这里插入图片描述

簇的邻近性考虑更多的是簇与簇之间的近似性,用相对近似度(RC)指标量化

在这里插入图片描述

算法流程

在这里插入图片描述

(1)使用 KNN 算法将数据点与其最近 K 个点相连,建立连接边,将距离的倒数作为连接边权重。
(2)使用Metis算法,迭代选取当前点数最多的子簇作为输入,将输入子簇分割为两个子簇,使得两子簇点数相近且被切断连接边权重和最小。当子簇点数最大值小于设定值时,进入下一步。
(3)计算子簇两两间相对连接度与相对紧密度,并以此计算子簇间相似度,迭代选取相似性最大两子簇合并,直到簇类数量达到设定值或相似性最大值小于设定值时结束

改进算法

chameleon改进一:一种 CHAMELEON 改进算法2017

单纯提高了运算效率

1、分割簇不再利用复杂度高的hMetis,而是用kmeans,定大一点的K值,进行预处理。得到K个小簇。尽管kmeans受初始中心影响大,但是只要定大一点的K值,就可以近似代替hMetis算法得到的最优分割子簇。毕竟h算法分割的也不一定是最优中心。

2、chameleon算法在合并簇时,是对所有簇都进行两两计算。离得远的就没有必要了,本来就不挨着,计算出来也没用。所以本文采用“网格结构”,所谓网格结构,就是说kmeans预处理数据时,“每点按网格向外搜索找到最近的聚类中心”,对找到的聚类中心进行记录,确保知道谁与谁离得最近。这样远的,后面合并的时候就不用计算了。

chameleon改进二:Study of chameleon clustring algorithm 2017

chameleon局限性:chameleon的动态模型着力于子簇的合并,如果子簇分割的不好,则在后期合并过程中,即使合并错误,也不会再次拆开,而一错再错下去。

1、基于SK-Means的chameleon改进
中心思想和上一篇论文一样,都是通过kmeans简化metis割图部分。
区别在于:进行了两次kmeans聚类过程。
(1)先随机抽样,对多个样本进行一次kmeans,得到多个初始中心
(2)将多个初始中心合并为一个集合,进行二次kmeans聚类
(3)对比选择最优解决方案

2、基于dpc的chameleon改进
通过dpc找到初始中心,然后划分小簇。
chameleon代码请点击此处

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值