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

不需要事先指定聚类数目,将所有的数据点都作为潜在的聚类中心,称为 exemplar。

以 S 矩阵的对角线上的数值s (k, k)作为 k 点能否成为聚类中心的评判标准,该值越大,这个点成为聚类中心的可能性越大,称为参考度 p ( preference) 。聚类的数量受到参考度 p 的影响,如果每个数据点都有可能作为聚类中心,则 p 取相同的值。如果取输入的相似度的均值作为 p 的值,聚类数量是中等的;如果取最小值,得到较少的聚类。

AP算法传递的两种消息类型,responsibility 和 availability;r(i,k) 表示从点 i 发送到候选聚类中心 k的数值消息,反映 k 点是否适合作为 i 点的聚类中心。a(i,k) 则从候选聚类中心 k 发送到 i 的数值消息,代表 i 点是否选择 k 作聚类中心。

r (i, k)与a (i, k)越强,则 k 点作为聚类中心的可能性就越大,且 i 点属于 k 点的可能性也越大。

AP算法不断更新每个点的吸引度和归属度,直到产生m个高质量的exemplar,同时将其余的数据点分配到相应的聚类中。

优点有:

不需要制定最终聚类族的个数

已有的数据点作为最终的聚类中心,而不是新生成一个族中心。

模型对数据的初始值不敏感。

对初始相似度矩阵数据的对称性没有要求。

相比k-centers,其结果的平方差误差较小。

在聚类的过程中有两种不同的信息进行交换,每一种信息代表一种竞争。

名词解释

exemplar:聚类中心。

similarity:点 i 和 j 的相似度,记为S(i,j)。j 为 i 的聚类中心的相似度。

preference:点 i 的参考度称为 P(i) 或 S(i,i)。点 i 作为聚类中心的参考度。可取S相似度中值。

responsibility:r(i,k) 代表点 k 适合作为点 i 的聚类中心的程度。

availability:a(i,k) 描述点 i 选择点 k 作为其聚类中心的适合程度。

damping factor:阻尼系数,主要是起收敛作用的。防止数据震荡,引入地衰减系数,每个信息值等于前一次迭代更新的信息值的λ倍加上此轮更新值得1-λ倍,其中λ在0-1之间,默认为0.5。

s(i,k):点i和点k之间的相似性,表示点k适合作为点i的聚类中心的程度,越大表示越适合。

s(k,k):参考度(Preference),是相似度矩阵中横轴和纵轴坐标相同的点,如:s(k,k),表示的是点k作为聚类中心的可能程度。最终的类别数目受初始参考度影响,参考度越大聚类中心的数目越多。

如果迭代开始之前所有点成为聚类中心的可能性相同,参考度设定为一个公共值:相似度矩阵的平均值或者相似度矩阵的最小值。

r(i,k):吸引度,点i发送至候选聚类中心点k。点k适合作为点 i 的聚类中心的程度。

a(i,k):归属度,从候选聚类中心点 k 发送至点 i, 点 i 选择点 k 作为聚类中心的合适程度。

算法流程

1.在给定归属度的条件下,更新相似度矩阵中的每个点的吸引度信息
2.在给定吸引度的条件下,更新每个点的归属度信息
3.对每个点的吸引度信息和归属度信息进行求和,进行决策;判断迭代是否停止

AP聚类算法将每个数据看成图中的一个节点,迭代的过程是在图中通过传播信息找到聚类集合。计算两个数据点的相似度采用距离的负数距离越近,相似度越大

相似矩阵S中 i 到 j 的相似度就是距离的负数。但是主对角线上的那些数表示的是某个点和自身的相似度,根据算法要求,主对角线上的值s(k,k)一般称为偏向参数,通常对所有 k,s(k,k) 都是相等(是其自身),取非主对角线上的所有数的中位数(其大小与最后得到的类的数目有关,通常这个数越大,得到的类的数目就越多)。

如此设定可能是因为AP聚类算法是要用图论理解,把所有的点都看成一个图中的节点,通过节点之间的信息传递来达到聚类的效果。

聚类就是个不断迭代的过程,迭代的过程主要更新两个矩阵,

代表(Responsibility)矩阵R = [r(i,k)]N×N 和适选 (Availabilities)矩阵A=[a(i,k)]N×N。

这两个矩阵初始化为0,N是所有样本的数目。

r(i,k)表示第k个样本适合作为第i个样本的类代表点的代表程度,

a(i,k)表示第i个样本选择第k个样本作为类代表样本的适合程度。

每次更新后就可以确定当前样本 i 的代表样本(exemplar)点k,k 是使 {a(i,k)+r(i,k)} 取得最大值的那个 k 点,如果 i=k,代表样本 i 就是这个簇的类代表点。

迭代停止的条件就是所有的样本的所属都不在变化为止,或者迭代了n次没有变化(n 自定义)。

还有一种判断点属于哪一类的方法,找出所有决策矩阵主对角线元素 {a(k,k)+r(k,k)} 大于 0 的所有点,这些点全部都是类代表点,之后在决定其余的点属于这里面的一类。

AP聚类算法迭代过程很容易产生震荡,因此每次迭代都加上一个阻尼系数 λ。

公式解释

a(i,k’) 表示除 k外,其他点对 i 点的归属度值,初始为0;

s(i,k’) 表示除 k 外,其他点对 i 的吸引度,即 i 外其他点都在争夺 i 点的 所有权;

r(i,k)表示点 k 成为点 i 的聚类中心的累积证明,r(i,k)值大于0 表示点 k 成为聚类中心的能力强。

此时只考虑哪个点 k 成为点 i 的聚类中心的可能性最大,但是没考虑这个吸引度最大的 k 是否也经常成为其他点的聚类中心(即归属度),若点 k 只是点 i 的聚类中心,不是其他任何点的聚类中心,则会造成最终聚类中心个数大于实际的中心个数。

a(i,k):归属度信息,表示点 i 选择点 k 为其聚类中心的合适程度;

r(i’,k) 表示点 k 作为除 i 外其他点的聚类中心的相似度值,取所有大于等于0的吸引度值,加上k作为聚类中心的可能程。即点 k 在这些吸引度值大于 0 的点的支持下,点 i 选 k 为中心的累积证明。

:算法复杂度较高,为O(N*N*logN),而K-Means只是O(N*K)的复杂度。当N较大时(N>3000),

AP聚类算法往往需要算很久。

若以误差平方和衡量优劣,AP聚类比其他方法的误差平方和都低。

AP通过输入相似度矩阵来启动算法,允许数据呈非欧拉分布,及非常规的点-点度量方法。

参考:

AP近邻传播聚类算法(Affinity Propagation)_船长工作室的博客-CSDN博客

Affinity Propagation: AP聚类算法_winkake的博客-CSDN博客

AP聚类算法(Affinity propagation) - 知乎

迭代更新说明:近邻传播 Affinity Propagation(AP) 聚类算法原理及实现_scott198510的博客-CSDN博客_ap近邻传播聚类算法

Affinity Propagation (AP)近邻传播聚类相关推荐

  1. AP近邻传播聚类算法原理及Matlab实现

    AP近邻传播聚类算法原理及Matlab实现    Affinity Propagation (AP)聚类是2007年在Science杂志上提出的一种新的聚类算法.它根据N个数据点之间的相似度进行聚类, ...

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

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

  3. 【老生谈算法】matlabAP近邻传播聚类算法源码——聚类算法

    AP近邻传播聚类算法原理及Matlab实现 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]AP近邻传播聚类算法原理及Matl ...

  4. R语言Affinity Propagation+AP聚类实战

    R语言Affinity Propagation+AP聚类实战 目录

  5. 基于DTW相似度的Affinity Propagation(AP)聚类

    基于DTW相似度的Affinity Propagation(AP)聚类 完整代码:https://github.com/SongDark/DTW_AP 数据 时序序列数据集 CharacterTraj ...

  6. java实现近邻聚类算法,近邻传播聚类算法 - osc_t74tdxrl的个人空间 - OSCHINA - 中文开源技术交流社区...

    近邻传播聚类算法 1.算法简介 AP(Affinity Propagation)通常被翻译为近邻传播算法或者仿射传播算法,是在2007年的Science杂志上提出的一种新的聚类算法.AP算法的基本思想 ...

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

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

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

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

  9. Affinity propagation 近邻传播算法

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

最新文章

  1. php五只猴子分椰子_PHP实现的猴王算法(猴子选大王)示例
  2. 理解与理论:人工智能基础问题的悲观与乐观
  3. java ui调试_如何使用 IBM i System Debugger 调试 Java 程序
  4. 每周学算法/读英文/知识点心得分享 2.25 - 3.1
  5. 成功解决AttributeError: ‘int‘ object has no attribute ‘encode‘
  6. 【学术相关】谈谈国自然申请中标的经验
  7. servlet多重映射_关于多重映射问题,很奇怪
  8. 大话synchronize底层原理
  9. Redsi和Memcached区别总结
  10. JMeter正则表达式-学习(3)
  11. centos8.2安装ovirt
  12. 使用priority_queue实现Dijkstra
  13. 内燃机设计课设 过量空气系数与温度表对应关系自动查询
  14. 2010年下半年11月份系统架构设计师上午试题以及参考答案之六
  15. 音频合并的步骤有哪些
  16. 降低OLED屏幕功耗的方法
  17. 如何利用ps去除图片水印和绘制图案
  18. 软件架构师的培养与认证
  19. Chrome清除某一个网站的Cookie
  20. 生日祝福html_说祝福 | 祝4月的你生日快乐

热门文章

  1. 【RTT实现printf重定向——Keil5】
  2. rpm强行安装rpm包
  3. 假如遇到一个注入点如何利用sqlmap这款工具如何去写webshell
  4. 【愚公系列】2021年11月 攻防世界-简单题-MISC-008(掀桌子)
  5. 如何快速从零开始学习建模?
  6. 并发编程(叁):synchronize
  7. springboot中使用mybatis只打印sql和总条数不打印查询结果的yml配置
  8. ainol 6000hda avi不能挂载srt字幕问题的解决
  9. 《go语言圣经》之程序结构
  10. 增加按键功能(Camera按键)。确认OK键和挂断ENDCALL能在工模按键测试时正常使用。挂断键日常是电源键,监听power键