【Python实例第18讲】affinity propagation聚类算法

机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)

在统计和数据挖掘里,affinity propagation(AP)是一种基于数据点之间的“信息传递”的聚类算法。与k-means等其它聚类算法不同的是,AP不需要在聚类前确定或估计类的个数。类似于k-medoids, AP需要寻找原型(exemplars), 即,代表类的输入集里的成员。AP算法广泛应用于计算机视觉和计算生物学领域。

算法描述

x 1 , x 2 , … , x n x_1, x_2, \dots, x_n x1,x2,,xn 组成数据点集合,这里并不需要假设数据集的结构。令 s s s 是一个量化任何两点相似度的函数。对任意 x i x_i xi, s ( x i , x j ) > s ( x i , x k ) s(x_i, x_j)>s(x_i, x_k) s(xi,xj)>s(xi,xk), 当且仅当
x i x_i xi x j x_j

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Affinity Propagation是一种聚类算法,其基本思想是通过数据点之间的相似度或“亲和力”,自动发现数据点的聚类结构。与一些传统聚类算法不同,Affinity Propagation不需要预先设定聚类数量,因此适用于在没有先验知识的情况下进行聚类。 ### 回答2: Affinity Propagation是一种聚类算法,它是基于信息传播的想法而设计出来的。它通过信息传播的过程来寻找相似性较高的数据点,并把它们聚到一起。跟其他聚类算法不同的是, Affinity Propagation没有预先设定簇的数量。在归纳出每个点与其他点的相似性分数以后,它会自动收敛。 Affinity Propagation的核心是“相似性矩阵”,相似性矩阵包含了每个数据点与其他点的相似性分数。这个相似性分数可以定义为如何衡量两个数据点相似或不相似的度量方法,例如欧几里得距离、余弦相似度、相关系数等。算法从中随机地选择了一个样本点,然后开始将每个点与这个样本点进行比较。将样本点作为聚类中心,并构建一些信息传递的规则(kernels),通过不断更新候选聚类中心,最终选出一些合适的聚类中心,在每个聚类中心下进行更细致的分组。 与k-means相比,Affinity Propagation算法具有以下优点: 首先,Affinity Propagation算法不需要预先指定聚类的数量,而是根据数据自身的相似性来确定聚类数量,减轻了人为干预的工作量。 其次,相对于k-means来说,Affinity Propagation算法的计算效率要低一些,但在多数情况下更加准确,且可以保证收敛性。 最后,Affinity Propagation算法对数据的分布不必要求是凸集, 比如聚类后产生的簇是非线性的,效果也会很好。 总结一下,Affinity Propagation算法是一种新兴的聚类算法,在处理一些复杂数据集上获得了不错的表现,然而相对过程比其他聚类算法稍微繁琐一些。因此,合适的算法要根据实际情况和实际需求进行选择。 ### 回答3: Affinity propagation是一种聚类算法,它是基于消息传递的方法来实现的,与传统的聚类算法如K-means等不同,它不需要事先定义聚类簇的个数,而是对数据点之间的相似度进行计算,从而确定簇心,最终将数据点分配到簇中。该算法适用于数据点数量较多时,特别是当数据点之间具有高度相关性时效果非常好。 Affinity propagation聚类在处理数据方面具有很强的优势,其主要优点包括以下三个方面: 1. 不需要预先设定聚类中心的个数,而且能够自动判断聚类中心的个数。在传统的聚类算法中,需要先设定聚类簇的个数,但是这样的设定往往需要先验知识或者是通过试错法来完成,对于数据结构未知或者是簇的个数会随着数据变化而变化的数据集来说,这种预先设定簇个数的聚类算法,显然无法很好地适应。 2. 能够处理非线性可分问题。对于传统的线性聚类算法,数据点的分类往往是在经过了线性变化之后才能很好地进行分类,这样的分类能力还是存在一些缺陷的,尤其是对于非线性可分问题来说,就需要通过更加高级的聚类算法来进行分析。 3. 能够自适应地调整聚类中心和簇的分配。在Affinity propagation聚类过程中,会同时计算出每个点作为聚类中心的概率和每个点与聚类中心之间的相似度值,然后根据这两者之和来确定真正的聚类中心,并分配数据点到相应的簇中。因此,该算法在对于簇的分配方面较为灵活,能够快速适应数据的变化。 总之,Affinity propagation聚类是一种基于消息传递的聚类算法,具有自动确定聚类中心的能力,并且能够很好地处理非线性可分问题,因此在处理大规模数据时,该算法更加适合进行数据分析和聚类

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值