基于图的 Affinity Propagation 聚类计算公式详解和代码示例
谱聚类和AP聚类是基于图的两种聚类,在这里我介绍AP聚类。
Affinity Propagation Clustering(简称AP算法)是2007提出的,当时发表在Science上《single-exemplar-based》。特别适合高维、多类数据快速聚类,相比传统的聚类算法,该算法算是比较新的,从聚类性能和效率方面都有大幅度的提升。
Affinity Propagation可以翻译为关联传播,它是一种基于数据点之间“消息传递”概念的聚类技术,所以我们称其为基于图的聚类方法。
该算法通过在数据点之间发送消息直到收敛来创建簇。它以数据点之间的相似性作为输入,并根据一定的标准确定范例。在数据点之间交换消息,直到获得一组高质量的范例。与k-means或k-medoids等聚类算法不同,传播在运行算法之前不需要确定或估计簇的数量。
公式详解
我们使用下面的数据集,来介绍算法的工作原理。
相似矩阵
相似度矩阵中的每一个单元格都是通过对参与者之间的差值平方和求负来计算的。
比如 Alice 和 Bob 的相似度,差的平方和为 (3–4)² + (4–3)² + (3–5)² + (2–1)² + (1– 1)² = 7。因此,Alice 和 Bob 的相似度值为 -(7)。
如果为对角线选择较小的值,则该算法将围绕少量集群收敛,反之亦然。因此我们用 -22 填充相似矩阵的对角元素,这是我们相似矩阵中的最小值。
吸引度(Responsibility)矩阵
我们将首先构造一个所有元素都设为0的可用性矩阵。然后,我们将使用以下公式计算吸引度矩阵中的每个单元格:
这里i指的是行,k指的是相关矩阵的列。
例如,Bob(列)对Alice(行)的吸引度是-1,这是通过从Bob和Alice的相似度(-7)中减去Alice所在行的最大相似度(Bob和Alice的相似度(-6)除外)来计算的。
在计算了其他参与者对的吸引度之后,我们得到了下面的矩阵。
完整文章
https://avoid.overfit.cn/post/70c0efd697ef43a6a43fea8938afff60