AP聚类算法

Affinity Propagation聚类算法简称AP,是一个在07年发表在Science上面比较新的算法。

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

在AP算法中有一些特殊名词:

  • 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。前者定了聚类数量的多少,值越大聚类数量越多;后者控制算法收敛效果。

AP聚类算法与经典的K-Means聚类算法相比,具有很多独特之处:

  1. 无需指定聚类“数量”参数。AP聚类不需要指定K(经典的K-Means)或者是其他描述聚类个数(SOM中的网络结构和规模)的参数,这使得先验经验成为应用的非必需条件,人群应用范围增加。
  2. 明确的质心(聚类中心点)。样本中的所有数据点都可能成为AP算法中的质心,叫做Examplar,而不是由多个数据点求平均而得到的聚类中心(如K-Means)。
  3. 对距离矩阵的对称性没要求。AP通过输入相似度矩阵来启动算法,因此允许数据呈非对称,数据适用范围非常大。
  4. 初始值不敏感。多次执行AP聚类算法,得到的结果是完全一样的,即不需要进行随机选取初值步骤(还是对比K-Means的随机初始值)。
  5. 算法复杂度较高,为O(N*N*logN),而K-Means只是O(N*K)的复杂度。因此当N比较大时(N>3000),AP聚类算法往往需要算很久。
  6. 若以误差平方和来衡量算法间的优劣,AP聚类比其他方法的误差平方和都要低。(无论k-center clustering重复多少次,都达不到AP那么低的误差平方和)

AP算法相对K-Means鲁棒性强且准确度较高,但没有任何一个算法是完美的,AP聚类算法也不例外:

  • AP聚类应用中需要手动指定Preference和Damping factor,这其实是原有的聚类“数量”控制的变体。

  • 算法较慢。由于AP算法复杂度较高,运行时间相对K-Means长,这会使得尤其在海量数据下运行时耗费的时间很多。

(1)吸引度迭代公式

(2)归属度迭代公式:


当t为0时A(i,k)和R(i,k)为0.

整个AP算法的过程是先迭代R(i,k),利用迭代后的R再迭代A(i,k)。一次迭代包括R和A的迭代,每次迭代后,将R(k,k)+A(k,k)大于0的数据对象k作为簇中心。当迭代次数超过设置阈值时(如1000次)或者当聚类中心连续多少次迭代不发生改变时终止迭代(如50次)。

AP算法的迭代次数和聚类数目主要受到两个参数的影响。其中聚类数目主要受参考度p(该值为负值)的影响,该值越大,聚类数目越多。参数lamd称为阻尼系数,由公式可以看出,该值越小,那么R和A相比上一次迭代的R和A会发生较大的变化,迭代次数会减少。阻尼系数一般取值为(0,1)。

算法步骤:1)先计算数据对象之间的相似度,得到相似矩阵;2)不断迭代R和A,得到簇中心;3)根据簇中心划分数据对象


猜你喜欢

转载自blog.csdn.net/qq_38096703/article/details/77949447