Clustering by Passing Messages Between Data Points 吸引力传播聚类 AP聚类

作者:BrendanJ. Frey* and Delbert Dueck

Universityof Toronto

发表:Science2007 VOL 315

由于学习原因,看到本文,翻译出来,以备后用。

水平有限,贻笑大方。

只翻译了原理部分,应用实例没有翻译。

忠实原文,表达含义,不拘泥于形式。

我们聚类的一般方法:在一组数据中寻找K个中心,使数据点与它们最近中心点之间的平方差的和最小。

    较常用的K-Centers方法必须人工指定K。算法在数据集中随机选择K个点作为初始中心点,反复提纯以使平方差之和减小。K-Centers对于初始化时的中心点十分敏感,只有在聚类数较小且幸运的至少有一个初始中心点在最优解的中心点附近。因此,使用K-Centers时要用不同的初始数据进行多次试验,在其中取最好的结果。

    在新方法中,将数据点看作网络中的一个节点,沿网络的边递归传输实数信息直到取得一个最优的中心点集和相应的聚类边。信息基于简单的公式进行更新以寻找一个最小的选择能量函数。每个信息实数的大小实时反映当前一点作为另一点中心点的可能性(吸引力)。因此新方法称为:吸引力传播。示例如下(原文截图):



    算法输入是点与点之间相似性sik)的集合。相似性sik)反映点s作为点i中心点的适应程度(可能性)。当我们将目标设置为最小化平方差之和时,相似度sik)定义为点ik之间的负的欧拉距离sik=-||xi-xk||2

    当使用中心点条件概率模型时, sik)可以设为k作为中心点关于点ilog似然函数,当合适时, sik)也可手动设置。

    该方法不再需要设置聚类数量,而需要为每个点设置个实数值skk),skk)值较大的点更有可能选为中心点。S(kk)称为首选项(preference )。中心点在信息传递的过程中浮现,其数量受preference影响。

    若已知所有的点被选为中心点的概率相同,则可将所有点的preference设置为相同的值(不同的值可能会导致不同的聚类数量),该值可以为所有相似性的中值或者最小值。


信息传播

    算法中有两种信息:响应度和可用性,每种信息都会引起一种竞争。在每个阶段,综合两种信息决定哪些点作为中心点,和所有的点归属于哪个中心点。

响应度(responsibility rik)从ik发送,反映k作为i中心点的累积迹象(cumulated evidence )(可能性)。

可用性( availability aik)自候选中心点k向点i发送,反映ik作为中心点的合适性。

开始时(第一次迭代),aik=0

rik)以下述规则更新

rkk)反映一个点是否适于作中心点,支持点多,则其值为正。

第一次r(i,k)更新时,完全是数据驱动(data-driven),不考虑每个潜在中心点有多少其他支持者(点)(即a(i,k)都为0)。
根据更新规则,若i与k的近似度比i与其他点的近似度都高,则r(i,k)为正数(k可能为i的中心点或者说i支持k成为中心点)。

aik)以下述规则更新


a(i,k)的更新中连加只加正的rik),因为只有正的r才会反映点k适于作中心点的程度。

在以后的迭代中,若k点事实上归属于某中心点时(即自身非中心点),其可用性aik)将下降到0以下(当无支持点或者支持点较少时, rkk)为负,更新公式中后面的连加较小,小于rkk)绝对值,使a变为负数)。其返回的负数可用性aik)将会削弱sik)的影响力,使k不再作为潜在中心点。

rkk)为负(当前判断k不适于作中心点)时,若其收到来自邻居的正数响应度rik),则其可用性aik)会变大。

为了防止过大的正数响应度r的影响,将可用度的和现在在阈值0以下(即公式中的min计算)。

自可用性a(k,k)按以下规则更新

基于来自邻居的正的响应度来评级k是否适于作中心点。

   信息只在有连接的点之间传播(即已知相似度的点之间,在具体应用我们可能并不需要使用所有点与其他点的相似信息),利用响应度和可用性综合评价哪个点适于作中心点。对于点i,使aik+rik)最大的ki的中心点,若k=i,则i本身即中心点。


一个迭代过称分为三个阶段:
1、根据可用性a更新响应度r2、根据响应度r更新可用性a3、根据ar综合判定当前阶段的中心点。


    设置迭代次数或者设置信息变化的阈值使迭代一定次数后终止。为防止在迭代中出现数据震荡,在更新信息时需加入一个阻尼系数pp在区间[0,1]内)。P乘以上次迭代的值加上(1-p)乘以本次迭代变化的值作为数值更新信息。








AP聚类算法的Matlab实现可以参考Frey和Dueck在科学杂志上发表的研究《Clustering by Passing Messages Between Data Points》。该算法使用点对点之间交换信息的方式来聚类数据。具体的实现步骤如下: 1. 初始化相似性矩阵S,其中S(i,j)表示数据点i与数据点j之间的相似性。 2. 初始化责任矩阵R和可用性矩阵A,其中R(i,j)表示数据点i选择数据点j作为其examplar的责任程度,A(i,j)表示数据点i被数据点j选择为其examplar的可用程度。 3. 迭代更新责任矩阵R和可用性矩阵A,直到收敛。更新规则如下: - 更新责任矩阵R:R(i,j) = S(i,j) - max{A(i,k) + S(i,k)},其中k != j。 - 更新可用性矩阵A:A(i,j) = min{0, R(j,j) + sum[max{0, R(k,j)},其中k != i。 4. 根据最终的可用性矩阵A确定每个数据点的examplar。 5. 根据examplar确定每个数据点的聚类。 以上是AP聚类算法的基本步骤,具体的Matlab实现细节可以参考相关的研究论文和代码示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [AP聚类算法(Affinity propagation Clustering Algorithm )](https://blog.csdn.net/weixin_39974409/article/details/116146959)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [AP聚类以及matlab实现](https://blog.csdn.net/Rorschach321/article/details/106552546)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [机器学习笔记-----AP(affinity propagat)算法讲解及matlab实现](https://blog.csdn.net/weixin_30396699/article/details/97529877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值