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

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

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《AP近邻传播聚类算法原理及Matlab实现

AP近邻传播聚类算法原理及Matlab实现Affinity Propagation (AP)聚类是2007年在Science杂志上提出的一种新的聚类算法。它根据N个数据点之间的相似度进行聚类,这些相似度可以是对称的,即两个数据点互相之间的相似度一样(如欧氏距离);也可以是不对称的,即两个数据点互相之间的相似度不等。这些相似度组成N×N的相似度矩阵S(其中N为有N个数据点)。AP算法不需要事先指定聚类数目,相反它将所有的数据点都作为潜在的聚类中心,称之为exemplar。以S矩阵的对角线上的数值s(k, k)作为k点能否成为聚类中心的评判标准,这意味着该值越大,这个点成为聚类中心的可能性也就越大,这个值又称作参考度p( preference)。聚类的数量受到参考度p的影响,如果认为每个数据点都有可能作为聚类中心,那么p就应取相同的值。如果取输入的相似度的均值作为p的值,得到聚类数量是中等的。如果取最小值,得到类数较少的聚类。AP算法中传递两种类型的消息,(responsiility)和(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,同时将其余的数据点分配到相应的聚类中。在这里介绍几个文中常出现的名词: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:阻尼系数,主要是起收敛作用的。机器学习中一个很重要的方面就是聚类算法。聚类算法说白了就是给你一大堆点的坐标(维度可以是很高的),然后给你一个距离度量的准则(比如欧拉距离,马氏距离什么的),然后你要自动把相近的点放在一个集合里面,归为一类。继续科普:一个比较传统的聚类算法就是k-Means聚类,算法很简单,哦,说起这件事,我刚刚在整理东西时就发现了一篇讲到k-Means的论文,里面又是一大堆看不懂的符号,我说你们真的有必要那么装逼么??比如说下面这幅图,有这么多个点,我们强大的大脑可以瞬间分辨出这里有三个团簇,一般术语叫cluster。但是K-Means算法是怎么实现的呢?首先我们已经知道有三个类了,所以呢就随机的选三个点(上图最左),作为三个类的中心,也可以叫做代表点,之后呢把图中所有的点归于离他最近的那个点,认为这个点就是属于这一类(上图左二),显然这样分类是不行的,然后我们计算每个类的那些点的中心(或者称为重心),把每个类的代表点的位置移到这个类的重心处(上图右二),然后再把全图中所有点都归于他们最近的那个类代表点,这时有些点的归属就会发生变化,然后不断的这么迭代,知道所有点的归属都不再变化为止,我们就认为这个算法收敛了。显然这个算法很简单,比较简陋,但是大部分情况下都很实用!!要说缺点的话,第一,我们必须先知道总共有多少个类,其次就是算法最后能否收敛和收敛的速度对开始随机挑的那几个点很敏感。好吧,扯远了,我这篇博文不是为了讲K-Means的,想介绍的是近邻传播聚类算法。近邻传播,英文是affinity propagation,它是一种半监督聚类算法。比起传统的像K-Means,它有很多别的算法所望尘莫及的优势,比如不需事先指定类的个数,对初值的选取不敏感,对距离矩阵的对称性没要求等。AP聚类算法是将每个数据看成图中的一个节点,迭代的过程即是在图中通过传播信息来找到聚类集合。本文计算两个数据点的相似度采用距离的负数,也就是说距离越近,相似度越大。相似矩阵S中i到j的相似度就是刚刚所说的距离的负数。但是主对角线上的那些数表示的是某个点和自身的相似度,但是这里我们不能直接用0来表示。根据算法要求,主对角线上的值s(k,k)一般称为偏向参数,一般情况下对所有k,s(k,k)都相等,取非主对角线上的所有数的中位数。这个值很重要,他的大小与最后得到的类的数目有关,一般而言这个数越大,得到的类的数目就越多。这里为什么要设定一个偏向参数而不直接用0来算呢,估计是因为AP聚类算法是要用图论的一些东西来理解的,它把所有的点都看成一个图

您可能关注的文档

文档评论(0)

wangz118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档