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

定义

在统计和数据挖掘中,近邻传播(AP)是基于数据点之间的“消息传递”概念的聚类算法。与聚类算法如ķ -means或ķ -medoids,近邻传播不需要簇的数目来确定或运行算法之前估计。类似于k -medoids,近邻传播找到“范例”,输入集的成员代表集群。

基本思想

AP算法的基本思想是将全部样本看做网络的节点,然后通过网络中各条边的消息传递计算出个样本的聚类中心。聚类过程中,共有两种消息在各节点间传递,分别是吸引度(responsibility)和归属度(availability)。AP算法通过迭代过程不断更新每一个点的吸引度和归属度,直到产生m个高质量的Exemplar(相当于质心),同时将其余的数据点分配到相应的聚类中。

AP在开始时,将所有节点都看成潜在的聚类中心,然后通过节点之间的通信,去找出最合适的聚类中心,并将其他节点划分到这些中心下去,所以我们可以认为,AP算法所要做的事情就是去发现这些聚类中心。

算法描述

AP的输入是一个节点间的相似度矩阵S,其中S(i,j)表示节点i和节点j之间的相似度,也表明了,j作为i的聚类中心的合适程度,这个相似度的计算可以根据具体应用场景,这里未免误导不作相似度的假设。其中S(k,k)表示节点k作为k的聚类中心的合适程度,可以理解为,节点k成为聚类中心合适度,在最开始时,这个值是初始化的时候使用者给定的值,会影响到最后聚类的数量。


该算法通过交替两个消息传递步骤来进行,以更新两个矩阵:

吸引度( responsibility):

吸引度是节点i传递向节点k的信息,传达了节点k对节点i的吸引度,记为r(i,k)

归属度(availability):

归属度表示节点i对节点k'的认可程度,记为a(i,k')

两个矩阵都初始化为全零。然后,算法迭代地执行以下更新:

吸引度:

归属度:

聚类算法之AP(Affinity Propagation)聚类算法(近邻传播)_第1张图片

执行迭代直到簇边界在多次迭代中保持不变,或者在一些预定次数的迭代之后。

参数解释

 

  • Exemplar:指的是聚类中心,K-Means中的质心。
  • 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(阻尼系数):主要是起收敛作用的。

在实际计算应用中,最重要的两个参数(也是需要手动指定)是Preference和Damping factor。前者定了聚类数量的多少,值越大聚类数量越多;后者控制算法收敛效果。'precomputed'表示相似度已经计算完毕,所以输入的矩阵M是相似度矩阵。当设置为'euclidean'时,输入的不是相似度矩阵,而且一个节点的list,每个节点可以通过多维坐标表示(所以是个二维list)。

应用场景

图像、文本、生物信息学、人脸识别、基因发现、搜索最优航线、 码书设计以及实物图像识别等领域。

参考文献:

https://en.wikipedia.org/wiki/Affinity_propagation

https://www.dataivy.cn/blog/%E8%81%9A%E7%B1%BB%E7%AE%97%E6%B3%95affinity-propagation_ap/

https://blog.csdn.net/lixi__liu/article/details/48470173

https://blog.csdn.net/u010161379/article/details/51636926

你可能感兴趣的:(2019年7月)