1. 近邻传播聚类算法(AP算法)概述
近邻传播聚类算法(Affinity Propagation, AP算法)是一种基于消息传递机制的聚类方法,由Frey和Dueck于2007年在Science杂志上首次提出。与传统聚类算法不同,AP算法最大的特点是不需要预先指定聚类数目,而是通过数据点之间的"消息传递"自动确定最佳聚类中心。
算法核心思想是:将每个数据点视为潜在聚类中心(称为"范例"),通过迭代计算两个关键指标——吸引度(responsibility)和归属度(availability),最终确定哪些点最适合作为聚类中心。这种自组织的特性使其特别适合数据分布未知的场景。
提示:AP算法在生物信息学、图像识别和社交网络分析等领域有广泛应用,尤其当数据集中存在非球形分布或聚类大小差异较大时表现优异。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. AP算法原理深度解析
2.1 相似度矩阵构建
AP算法的输入是一个N×N的相似度矩阵S,其中S(i,k)表示点k作为点i的聚类中心的适合程度。对于欧氏空间中的数据,通常采用负平方欧氏距离:
matlab复制S(i,k) = -||x_i - x_k||² (i ≠ k)
对角线元素S(k,k)称为"偏好"(preference),表示点k成为聚类中心的可能性,通常设置为所有相似度的中位数或最小值。
2.2 消息传递机制
算法通过交替更新两种消息实现聚类:
- 吸引度r(i,k):从点i发送到候选中心k,反映k适合作为i的聚类中心的程度,相对于其他候选中心
matlab复制r(i,k) = S(i,k) - max{a(i,k') + S(i,k')} (k' ≠ k)
- 归属度a(i,k):从候选中心k发送到点i,反映i选择k作为其中心的适合程度,考虑其他点对k的支持
matlab复制a(i,k) = min{0, r(k,k) + Σmax{0,r(i',k)}} (i'∉{i,k})
2.3 收敛判断
迭代过程持续到聚类中心集合稳定或达到最大迭代次数。最终对于每个点i,选择使a(i,k)+r(i,k)最大的k作为其聚类中心。
3. MATLAB实现详解
3.1 基础实现步骤
matlab复制% 生成示例数据
