其他聚类算法


sklearn提供了其他很多聚类算法

一、Agglomerative clustering

1.1 凝聚聚类算法简介

  • cluster的层次结构是自下而上构建的。想象许多微小的气泡漂浮在水上并逐渐彼此附着,直到只有一个大的气泡为止。
  • 在每次迭代中,凝聚聚类连接最近的一对聚类(从单个样本开始)。
  • 如果为合并的每对clusters绘制一棵带有分支的树,则会得到一个二叉树,其中leaves是各个样本实例。
  • 这种方法可以很好地扩展到大量实例或集群,它可以捕获各种形状的cluster,它生成灵活且信息丰富的cluster树,而不是强迫您选择特定的cluster规模,并且可以与任何成对的距离一起使用
  • 如果提供连接矩阵(connectivity matrix),它可以很好地扩展到大量样本。
  • connectivity matrix 是一个稀疏的m×m矩阵,指出哪些样本对(pairs of instances)是邻居,通过sklearn.neighbors.kneighbors_graph() 获得
  • 没有连接矩阵,该算法就无法很好地扩展到大型数据集。

二、Birch 聚类算法

2.1 简介

这个算法专门为大型数据集设计的,它可以比KMeans还快,且结果差不多。
但要注意的是属性数量不能太大( features < 20)

它在训练过程中构建了一个树结构,其中仅包含足够的信息来把每个新样本快速分配给cluster,而不必将所有样本存储在树中:这允许它使用有限的内存,同时处理庞大的数据集。

三、Mean-shift 算法

3.1简介

  • 该算法首先在每个实例上放置一个圆心,然后为每个圆计算其中所有实例的均值,然后移动圆,使其以均值为中心。
  • 接下来,迭代此均值平移(mean-shift)步骤,直到所有圆都停止移动为止。(即,直到每个圆都以其包含的样本的均值为中心)
  • 该算法将圆向更高密度的方向移动,直到每个圆都找到了局部最大密度。
  • 最后,那些样本的圆落在同一位置(或足够近)的,都分配给同一cluster。Finally, all the instances whose circles have settled in the same place (or close enough) are assigned to the same cluster.

这个算法和DBSCAN很像,它也能找出任何数量任何形状的clusters,且只有一个超参数–就是圆的半径
叫做bandwidth,并且基于局部密度估计。
然而这个算法,当簇具有内部密度变化时,倾向于将簇切成碎片。并且它的计算复杂度是O(m^2),所以不适合大规模数据

四、Affinity propagation

4.1 简介

这个算法使用一种投票系统(voting system)。在该系统中,样本对相似的样本进行投票以作为其代表,一旦算法收敛,每个代表及其选民将组成一个集群。
该算法可以检测任意数量的大小不同的簇,然而计算复杂度是O(m^2),所以不适合大规模数据

五、Spectral clustering

5.1简介

  • 本算法采用的样本之间的相似性矩阵,并从中产生一个低维嵌入this algorithm takes a similarity matrix between the instances and creates a low-dimensional embedding from it. 这个算法能降低维度
  • 然后在这个低维空间中使用其他聚类算法(sklearn中使用KMeans)
  • spectral clustering可以捕获复杂的聚类结构,也可以用于剪切图片cut graphs(例如,识别社交网络上的朋友聚类),但是它无法很好地扩展到大量实例,并且在各个clusters的大小差异很大时表现不好。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值