AP(Affinity propagation)基于近邻传播的半监督聚类算法。主要参考:AP总结

基本思想
  1. 通过信息传递机制 搜索 网络中 各个数据点的聚类中心,以及数据点与数据中心之间的隶属度关系
  2. 根据数据中心与顶点之间的隶属度关系来对待聚类数据集进行划分,形成若干个具有特定意义的子集。
优点
  1. 聚类过程中不需要明确确定与聚类个数相关的参数
  2. 聚类中心是待聚类数据的某个确切的数据点
  3. 算法的输入可以是对称或者非对称的相似性矩阵
  4. 多次执行AP算法得到的结果是一样的
缺点
  1. 算法的复杂度较高,为距离权重倒数插值法 距离权落差_聚类算法,而K-Means只是距离权重倒数插值法 距离权落差_聚类算法_02的复杂度。因此当N比较大时(N>3000),AP聚类算法往往需要算很久
名词解释及迭代理解

exemplar:指的是聚类中心。

similarity:数据点距离权重倒数插值法 距离权落差_距离权重倒数插值法_03和点距离权重倒数插值法 距离权落差_聚类算法_04的相似度记为距离权重倒数插值法 距离权落差_聚类_05。是指点距离权重倒数插值法 距离权落差_聚类算法_04作为点距离权重倒数插值法 距离权落差_距离权重倒数插值法_03的聚类中心的相似度。

preference:数据点i的参考度称为距离权重倒数插值法 距离权落差_距离权重倒数插值法_08距离权重倒数插值法 距离权落差_距离权重倒数插值法_09。是指点距离权重倒数插值法 距离权落差_距离权重倒数插值法_03作为聚类中心的参考度。

Responsibility:距离权重倒数插值法 距离权落差_聚类_11用来描述点距离权重倒数插值法 距离权落差_距离权重倒数插值法_12适合作为数据点距离权重倒数插值法 距离权落差_距离权重倒数插值法_03的聚类中心的程度。

Availability:距离权重倒数插值法 距离权落差_距离权重倒数插值法_14用来描述点距离权重倒数插值法 距离权落差_距离权重倒数插值法_03选择点距离权重倒数插值法 距离权落差_距离权重倒数插值法_12作为其聚类中心的适合程度。

Damping factor:阻尼系数,主要是起收敛作用的。

AP算法中在迭代的过程中对两种信息进行更新,可信度(Avaliability)和责任度(Responsibility)。更新公式为:距离权重倒数插值法 距离权落差_距离权重倒数插值法_17距离权重倒数插值法 距离权落差_复杂度_18将AP算法模拟为一个选举的过程,假如网络中每个人都参与选举,选举目的是从所有参与选举的顶点中推荐出最合适的几个顶点作为代表。具体选举的过程描述如图所示:

--------------------------------------------

距离权重倒数插值法 距离权落差_聚类_19

  • 所有人都参加选举,参与选举的人既是选民也是候选人,并从中选出若干个作为代表。
  • 相似性距离权重倒数插值法 距离权落差_复杂度_20可描述为选民i推荐候选人距离权重倒数插值法 距离权落差_聚类算法_21的一个偏好程度,也就是说距离权重倒数插值法 距离权落差_复杂度_20越大,距离权重倒数插值法 距离权落差_聚类_23选择距离权重倒数插值法 距离权落差_聚类算法_21的可能性就越大。
  • 距离权重倒数插值法 距离权落差_距离权重倒数插值法_25等于用距离权重倒数插值法 距离权落差_复杂度_20减去最强竞争者(候选人)的评分,可以理解为候选人距离权重倒数插值法 距离权落差_聚类算法_21对选民距离权重倒数插值法 距离权落差_聚类_23的吸引度,距离权重倒数插值法 距离权落差_距离权重倒数插值法_25的更新过程对应选民距离权重倒数插值法 距离权落差_聚类_23对各个候选人的挑选,候选人越出众就越有吸引力。
  • 距离权重倒数插值法 距离权落差_距离权重倒数插值法_31的更新过程对应候选人k的民意调查结果对选民i的影响。从公式中可以看出,责任度距离权重倒数插值法 距离权落差_聚类算法_32的值对可信度距离权重倒数插值法 距离权落差_距离权重倒数插值法_31都有正的加成。可以理解为很多人觉得候选距离权重倒数插值法 距离权落差_聚类算法_21不错,那么选民i也会觉得j不错。
  • 距离权重倒数插值法 距离权落差_距离权重倒数插值法_25距离权重倒数插值法 距离权落差_距离权重倒数插值法_31交替更新的过程也就可以理解为选民在各个候选人之间不断的进行比较,不断的参考民意调查。
  • 若最终选择出来的代表趋于稳定状态,则整个选举过程完成。
算法输入
  1. 顶点相似性
    矩阵距离权重倒数插值法 距离权落差_聚类算法_37,可对称也可不对称,是待聚类数据集的相似性矩阵,可以用不同的方法进行计算,比如欧氏距离,Jaccard相似性,余弦相似性以及各种适用于不同应用场景的相似性等。
  2. 自我相似性
    待聚类数据集中的数据点都是潜在的聚类中心,算法对潜在的聚类中心的描述主要表现在自我相似性距离权重倒数插值法 距离权落差_距离权重倒数插值法_38上.。
    在初始状态的情况下数据集中每个数据点都是潜在的数据中心,所以在进行聚类之前,需要将距离权重倒数插值法 距离权落差_距离权重倒数插值法_38进行统一设置。从文献可知,可以将距离权重倒数插值法 距离权落差_距离权重倒数插值法_38设置成为相似性矩阵的中位数,或者平均值,距离权重倒数插值法 距离权落差_距离权重倒数插值法_38的值的大小将会直接影响聚类结果数量,若距离权重倒数插值法 距离权落差_距离权重倒数插值法_38值越大,所有数据点都倾向于选择自己作为聚类中心,最终聚类数量就会越多,反之聚类数量越少。
  3. 阻尼因子距离权重倒数插值法 距离权落差_聚类算法_43
    算法在迭代更新可信度和责任度的过程中,还涉及了另外一个参数,叫做阻尼因子,用距离权重倒数插值法 距离权落差_聚类算法_43来表示。该参数的作用是让AP算法能够快速收敛。阻尼因子的取值范围为0~1。AP算法的每次迭代过程中,λ作用于责任度和可信度,针对上一次迭代的责任度和可信度进行加权更新,更新规则如下:距离权重倒数插值法 距离权落差_距离权重倒数插值法_45
结果的划分

1.聚类中心的选取
AP算法迭代完成后,首先需要确定数据集中所有的聚类中心。AP算法对聚类中心的判定主要参考责任度和可信度迭代更新完成后的值,判定为聚类中心的规则如公式4-5所示,即顶点i对自身的责任度和自身的可信度之和大于0时,则选择对应顶点作为聚类中心。
距离权重倒数插值法 距离权落差_聚类算法_46

2.数据点与聚类中心之间的隶属关系

AP算法迭代完成后,若要获得对应的聚类结果,同样需要根据算法迭代完成后的责任度和可信度进行确认,选择聚类中心的规则如公式4-6所示,即选择与当前顶点i责任度与可信度之和最大的顶点j作为其聚类中心。
距离权重倒数插值法 距离权落差_聚类算法_47

算法的流程

整个AP聚类的算法流程的描述如下:

  1. 初始化curIterNum, maxIterNum, a(i,k)=0,距离权重倒数插值法 距离权落差_聚类算法_43,δ=0,stableNum 【其中curIterNum表示当前已经迭代了的次数,maxIterNum表示算法最大迭代次数,λ为阻尼因子,默认为0.75,δ来记录聚类中心是否已经达到指定稳定次数stableNum 】
  2. 更新责任度r(i,j)距离权重倒数插值法 距离权落差_距离权重倒数插值法_49
  3. 更新可信度a(i,j) 距离权重倒数插值法 距离权落差_聚类_50
  4. 判断迭代是否稳定
    根据公式4-6获取当前第t次迭代后聚类中心集合Et,如果Et=Et−1,则稳定次数δ加1,否则δ重置为0。若此时δ=stableNum则跳转至步骤6,否则跳转至步骤5
  5. curIterNum=curIterNum+1,若curIterNum=maxIterNum,则跳转至步骤6否则跳转至步骤2
  6. 从聚类结果中获取聚类中心,以及顶点之间的隶属关系
    对500个随机生成的点进行聚类,复杂度是真的高。
    简单实现:AP python简单实现 ----------------------------------