AP算法诞生于2007年,由于其算法的简单性以及性能的优越性,得以广泛应用,成为K-Means外的又一大常用聚类算法;

K-Means聚类自身的缺陷在于要人为选取聚类数量以及初始点,算法的性能也完全依赖于上述选择,与K-Means相比,AP避免了此类人工选择,将数据点对之间的相似性度量作为输入,它的核心在于“message passing信息传播”,主要目的为了找到一个样例的典型,即能够代表每一个聚类的样本。

首先给出两个定义:

1)数据点之间的相似度表示;它表示两个点之间的匹配程度,如果两个点差别很大,比如不属于同一个聚类,那么这个相似度可以忽略或者直接置为-Inf;

2)偏好程度;它表示一个数据点对于某个样例适用性的依赖程度,通常可以通过先验知识来设置;

设有n个数据点:

每两个点之间的相似度:S(i,j);

AP算法同样利用多次迭代,并且每一次迭代都进行两个信息传播的过程,来更新两个矩阵:

1)矩阵R,元素为r(i,k),这个值用来反映相对于点i的其他样例,数据点k充当i的样例的适合程度;

传播方向:i -> k

2)矩阵A,元素为a(i,k),这个值用来反映,在其他点都偏好样例k的条件下,选择k作为数据点i的样例的可靠性;

传播方向:k -> i

初始化:两个矩阵都设为全零矩阵,按照如下方式更新:

首先,更新矩阵R:

然后,更新矩阵A:

 for  and
.

具体请看下图:

关于迭代终止条件,可以有多种不同的选择,比如可以当小于某一个阈值或者达到迭代最大次数等等;另外我们可以通过对两个矩阵求和得到很多有用信息:对于点i,当r(i,k)+a(i,k)有最大值时,表明k是i的样例;或者可以利用矩阵主对角线上的元素值信息,如果r(i,i)+a(i,i)>0,则点i就是一个样例。

AP算法中,我们无需指定聚类数量,但是当我们得到的聚类达不到最优时,就需要对参数作出调节;幸运的是,在AP算法中,只需要调节偏好程度就可以改变聚类数量,偏好程度高聚类数就多,因为一个数据点对于一个确定样例适用的依赖性越高,其被其他样例介入的可能性就越低,也就不会被其他样例的聚类所吸收;反之,偏好程度越低,就会导致聚类数越少,就好比许多数据点都在对同一个样例说“不,不,你已经是一个很好的榜样了,我要加入到你的聚类中去”。一般来说,如果希望聚类数偏大,可以把偏好程度设为中等相似度,如果希望聚类数适中,那么久把偏好程度设为最小相似度,但是具体情况,还需要多次调参以满足需要。

参考:Clustering by passing messages between data points

吸引子传播(Affinity Propagation)算法相关推荐

  1. 近邻传播 Affinity Propagation(AP) 聚类算法原理及实现

    1.概述 机器学习中 AP(Affinity Propagation)通常被称为近邻传播算法或者密切度传播或类同传播算法,由 Frey 与Dueck于2007年在Science首次提出.AP算法的基本 ...

  2. Affinity propagation 近邻传播算法

    终日乾乾,与时偕行. - 周易⋅\cdot乾⋅\cdot文言 近邻传播算法是一种基于代表点的聚类方法,它会同时考虑所有数据点都是潜在的代表点,通过结点之间的信息传递,最后得到高质量的聚类.这个信息的传 ...

  3. Affinity Propagation (AP)近邻传播聚类

    近邻传播聚类:根据 N 个数据点之间的相似度聚类,相似度可以是对称的,即两个数据点互相之间的相似度一样(如欧氏距离):也可以是不对称的,即两个数据点互相之间的相似度不等.这些相似度组成 N×N 的相似 ...

  4. AP近邻传播聚类算法(Affinity Propagation)

    Affinity Propagation (AP) 聚类是2007年在Science杂志上提出的一种新的聚类算法.它根据N个数据点之间的相似度进行聚类,这些相似度可以是对称的,即两个数据点互相之间的相 ...

  5. AP(Affinity Propagation)亲和力传播算法

    原文链接 https://www.cnblogs.com/lc1217/p/6908031.html 1.算法简介 AP(Affinity Propagation)通常被翻译为近邻传播算法或者亲和力传 ...

  6. 常见聚类算法及使用--Affinity Propagation(AP)

    文章目录 前言 一些准备 亲和力传播(Affinity Propagation) 相似度矩阵(Similarity Matrix) 吸引度矩阵(Responsibility Matrix) 归属度矩阵 ...

  7. Affinity Propagation聚类算法详解

    欢迎关注"生信修炼手册"! Affinity Propagation简称AP, 称之为近邻传播算法, 是一种基于图论的聚类算法.将所有样本点看做是一个网络中的节点,图示如下 在样本 ...

  8. 聚类算法实践——PCCA、SOM、Affinity Propagation

    转载自:http://www.itongji.cn/article/0R52E22013.html 这篇日志是这个系列里算法部分的最后一篇,关注的是几个相对另类一点的聚类算法:PCCA.SOM和Aff ...

  9. 如何直观的解释back propagation算法?

    作者:Evan Hoo 链接:http://www.zhihu.com/question/27239198/answer/89853077 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非 ...

  10. 谱聚类、Chameleon聚类、PCCA、SOM、Affinity Propagation

    原文链接:中国统计网-谱聚类.Chameleon聚类 A是n × n矩阵,λi是其特征值,i = 1,2,--,n.称ρ(A)=max{|λi|,i=1,2,--n}为A的谱半径.即矩阵A的谱半径等于 ...

最新文章

  1. java 声明静态类_java静态类声明--java类可以声明为static吗
  2. linux读取nand的文件,Linux Kernel 之AP读写Nand Flash上的Yaffs2文件的全过程浅析
  3. Linux 系统查看硬件配置信息
  4. delphi面向对象(1)
  5. js的时间函数实现一个电子表
  6. 【推荐系统入门】一窥推荐系统的原理
  7. Hibernate中使用未映射为主键的“id”字段进行查询的场景分析
  8. Hibernate问题浅析
  9. String s=hello;s+=world;s变化了吗?原始的String对象的内容变了吗?
  10. DZNEmptyDataSet,优秀的空白页或者出错页封装
  11. java中double类型显示两个小数,比如12.00
  12. 算法笔记_面试_0.刷leetcode攻略
  13. VS2005无法调试,绑定句柄无效问题的解决方法
  14. 深入解读Linux进程调度系列(3)——调度的执行过程
  15. 213.打家劫舍II(力扣leetcode) 博主可答疑该问题
  16. Java项目演示第23期在线购书商城系统
  17. Java 纸牌游戏 牛牛 逻辑代码 实现
  18. tableau 集动作_举个栗子!Tableau技巧(59):学做两个集合的维恩图(文氏图)Venn diagram...
  19. FreeSWITCH对接MRCP Server
  20. Vue - 网站首屏加载等待动画(极简解决方案)

热门文章

  1. [玩转UE4动画系统>基础篇] 之 什么是射线检测
  2. Java SimpleDateFormat 中英文时间格式化转换
  3. 使用calibration_toolkit进行相机和三维激光雷达的联合标定(详细步骤)
  4. 做问卷调查最基本的注意事项
  5. 高德地图登陆显示服务器忙,用高德地图导航时,登录账号和不登录账号有很大区别?你知道吗?...
  6. 对音频信号作短时傅里叶变换(STFT)/小波变换处理(python + matlab)
  7. 卡方列联表的独立性检验
  8. centos7+docker+安装mysql5.7
  9. ffmpeg实例,drawtext在视频上添加文字
  10. 扑克牌发牌游戏python_Python随机扑克牌生成器游戏