这段时间因为工作需要,了解了一些聚类算法,发现目前国内的一些资料中对于AP(Affinity Propagation)聚类算法的描述和理解局限在列举公式,说明计算流程层面,没有去深入解读,为什么要这样设计公式,以及AP的核心思想。
首先简要介绍一下AP算法,跟其他聚类算法的不同之处是,AP在开始时,将所有节点都看成潜在的聚类中心,然后通过节点之间的通信,去找出最合适的聚类中心,并将其他节点划分到这些中心下去,所以我们可以认为,AP算法所要做的事情就是去发现这些聚类中心。
AP的输入是一个节点间的相似度矩阵,S,其中S(i,j)表示节点i和节点j之间的相似度,也表明了,j作为i的聚类中心的合适程度,这个相似度的计算可以根据具体应用场景,这里未免误导不作相似度的假设。其中S(k,k)表示节点k作为k的聚类中心的合适程度,可以理解为,节点k成为聚类中心合适度,在最开始时,这个值是初始化的时候使用者给定的值,会影响到最后聚类的数量。
AP中节点间传递的消息为两类:吸引度和归属度。