AP聚类算法是基于数据点间的"信息传递"的一种聚类算法。与k-均值算法或k中心点算法不同,AP算法不需要在运行算法之前确定聚类的个数。AP算法寻找的"examplars"即聚类中心点是数据集合中实际存在的点,作为每类的代表。

算法描述:

假设$\{ {x_1},{x_2}, \cdots ,{x_n}\} $数据样本集,数据间没有内在结构的假设。令是一个刻画点之间相似度的矩阵,使得$s(i,j) > s(i,k)$当且仅当$x_i$与$x_j$的相似性程度要大于其与$x_k$的相似性。

AP算法进行交替两个消息传递的步骤,以更新两个矩阵:

  • 吸引信息(responsibility)矩阵R:$r(i,k)$描述了数据对象k适合作为数据对象i的聚类中心的程度,表示的是从ik的消息;
  • 归属信息(availability)矩阵A:$a(i,k)$描述了数据对象i选择数据对象k作为其据聚类中心的适合程度,表示从ki的消息。

两个矩阵R ,A中的全部初始化为0. 可以看成Log-概率表。这个算法通过以下步骤迭代进行:

  • 首先,吸引信息(responsibility)${r_{t + 1}}(i,k)$按照

${r_{t + 1}}(i,k) = s(i,k) - \mathop {\max }\limits_{k' \ne k} \{ {a_t}(i,k') + s(i,k')\} $

的迭代。

  • 然后,归属信息(availability)${a_{t + 1}}(i,k)$按照

\[{a_{t + 1}}(i,k) = \mathop {\min }\limits_{} \left( {0,{r_t}(k,k) + \sum\limits_{i' \notin \{ i,k\} } {\max \{ 0,{r_t}(i',k)\} } } \right),i \ne k\]

\[{a_{t+1}}(k,k) = \sum\limits_{i' \ne k} {\max \{ 0,{r_t}(i',k)\} } \]

迭代。

  • 对以上步骤进行迭代,如果这些决策经过若干次迭代之后保持不变或者算法执行超过设定的迭代次数,又或者一个小区域内的关于样本点的决策经过数次迭代后保持不变,则算法结束。

为了避免振荡,AP算法更新信息时引入了衰减系数$\lambda $。每条信息被设置为它前次迭代更新值的$\lambda $倍加上本次信息更新值的1-$\lambda $倍。其中,衰减系数$\lambda $是介于0到1之间的实数。即第t+1次$r(i,k)$,$a(i,k)$的迭代值:

\[{r_{t + 1}}(i,k) \leftarrow (1 - \lambda ){r_{t + 1}}(i,k) + \lambda {r_t}(i,k)\]

\[{a_{t + 1}}(i,k) \leftarrow (1 - \lambda ){a_{t + 1}}(i,k) + \lambda {a_t}(i,k)\]

图1 算法实现过程

图2 对人脸数据库的聚类结果比较

转载于:https://www.cnblogs.com/huadongw/p/4202492.html

AP聚类算法(Affinity propagation Clustering Algorithm )相关推荐

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

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

  2. 聚类算法 距离矩阵_论文阅读9——AP聚类算法

    Affinity Learning for Mixed Data Clustering 论文提出了基于混合对数据进行聚类的学习框架,具体研究内容包括:1)如何处理具有混合类型属性的数据.2)如何学习数 ...

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

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

  4. ap聚类算法 matlab代码,AP聚类算法(转

    这几天就看这篇paper了:Brendan J. Frey* and Delbert Dueck,<clustering by Passing Message Between Data Poin ...

  5. 聚类算法:Hierarchical Clustering层次聚类

    1. 层次聚类 1.1 层次聚类的原理及分类 1)层次法(Hierarchicalmethods):先计算样本之间的距离.每次将距离最近的点合并到同一个类.然后,再计算类与类之间的距离,将距离最近的类 ...

  6. python 两阶段聚类_挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法...

    转载请标明出处:http://www.cnblogs.com/tiaozistudy/p/twostep_cluster_algorithm.html 两步聚类算法是在SPSS Modeler中使用的 ...

  7. 聚类算法(4)--Hierarchical clustering层次聚类

    目录 一.层次聚类 1.层次聚类的原理及分类 2.层次聚类的流程 3.层次聚类的优缺点 二.python实现 1.sklearn实现 2.scipy实现 树状图分类判断 一.层次聚类 1.层次聚类的原 ...

  8. 聚类算法中的K均值聚类算法(K-Means clustering)

    =======================================================================               Machine Learni ...

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

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

  10. k均值聚类算法优缺点_Grasshopper实现K均值聚类算法

    本文很长很长,有很多很多图,包含以下部分: 1.算法简介 2.如何分类平面点 3.如何分类空间点 4.如何分类多维数据 5.后记 提醒:以下内容包括:智障操作,无中生友,重复造轮子 等 1.算法简介 ...

最新文章

  1. 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载
  2. 关于质量的联想:消费示范效应
  3. HTTPS那些事(三)攻击实例与防御(转载)
  4. (笔试题)被3和5整除的数的和
  5. 第二节 数值、字符与字符串
  6. Kingston U盘 量产
  7. 运动会加油稿计算机学院150字,学校运动会加油稿150字10篇
  8. 电脑桌面云便签软件怎么显示最小化按钮?
  9. Openstack配置hyperv作为虚拟化服务器
  10. ESP通过乐为物联控制灯,微信发送数值,ESP上传传感器数据
  11. 植树节汇报之后的突发奇想
  12. 10分钟轻松定制网站日志分析大盘
  13. 【codeforces 791A】Bear and Big Brother
  14. 制造蝴蝶飓风,微众区块链的蝶变和ESG新使命
  15. ASP.Net下如何解决关于Access数据库“操作必须使用一个可更新的查询”问题
  16. SQL实战:上海二手房价分析
  17. 汤晓丹的第四版计算机操作系统--第一章总结概述
  18. 一天一天学做外挂@第八天-门当户对分清楚[武林外传]
  19. java 下载db文件_Java下载文件自定义名称和格式类型
  20. 一文详解什么是软件部署

热门文章

  1. 结对-结对编项目作业名称-测试过程
  2. 今天修了一个bug,关于debug日志的问题
  3. 在ArcScene中导入显示自己在SketchUp创建并经过修饰的模型
  4. SQL中Case的使用方法(上篇)
  5. 获取0-1的加密的随机数
  6. gpasswd 附属组管理,添加用户到附属组中
  7. oracle9i阻塞,Oracle 9i 整体性能优化概述(zt)
  8. gazebo 直接获取传感器数据_如何以最简单的方式获取传感器数据?
  9. python26章_[Python设计模式] 第26章 千人千面,内在共享——享元模式
  10. 朴素贝叶斯算法_C语言实现朴素贝叶斯算法(Naive Bayes)