Affinity Propagation 聚类算法的通俗解释

1. 前言

一开始的时候看AP聚类,两个公式的更新看的云里雾里的,不知道代表的什么意思,后来看了一下论文原文和配图终于有点理解了。下面将个人理解写一下。
论文: https://www.psi.toronto.edu/affinitypropagation/FreyDueckScience07.pdf

2. 解释

假设我们有n个数据,需要进行聚类,我们可以想象为有n个人,要投票投出几个leader来,那么怎么投票呢?

首先任何人之间有一个固定的映像了,比如a和b比较熟悉,或者a比较认可b,那么a投票投给b的可能性就大一点。那么我们用s矩阵s[a,b]表示a和b的熟悉程度,这个是已经存在的了。(那么对应到数据里面就是a和b的相似度)

现在开始投票:

第一个阶段(投票)(r矩阵的更新):
在这里插入图片描述
甲在投票的时候,每一个人都会仔细考虑。在考虑要不要投给乙的时候,就会有其他人丙来告诉甲,“如果你投了我的话,我会给你什么什么好处,而且你看,有这么些个人有意向投给我(这时就向甲展示有谁谁谁有意向投给丙,这个值就是算法中的a[])”

于是甲在经过考虑和听取了所有来向他介绍的人之后,就告诉乙,“我本来投给你的意向是什么什么,在经过考虑之后,现在我投给你的意向是什么什么”。

甲就轮流这样告诉所有人。
Affinity Propagation 聚类算法的通俗解释_第1张图片
比如上面这张图,Data point i 的红色的线段就是告诉别人我投给你的意向是多少,黑色的线段就是听取了别人的游说。

第二个阶段(拉票)(a矩阵的更新):
在这里插入图片描述
这一个是每一个人拉票的阶段,他会统计上一次投票的时候有多少人有意愿投给我,统计完之后就会告诉选民们,你看,有这么多人选择支持我,说明我很厉害,你们投票投我吧blablabla。
Affinity Propagation 聚类算法的通俗解释_第2张图片
上面这幅图就是拉票的阶段,红色的线段是k向i拉票,黑色的线段是k在收集民意。

结束
经过很多轮的投票和拉票的阶段之后,直到这个leader选出来了,大家都不再有意见了,或者超过一定的轮数了,就结束。

3. 参考

  1. https://blog.csdn.net/u010161379/article/details/51636926
  2. https://www.zhihu.com/question/25384514/answer/47636054

你可能感兴趣的:(机器学习算法)