吸引子传播算法(Affinity Propagation, AP)
将数据点对之间的相似性度量作为输入,不需要人工选择聚类数量和初始点
算法核心:信息传播
基本思想:将全部样本看做网络的节点,通过网络中各边的消息传递,计算得到各样本点的聚类中心。
聚类过程中有两个消息在节点间传播:
1)吸引度(responsibility)
r(i,k)
r
(
i
,
k
)
:表示点
k
k
视作点的聚类中心的适合程度,表示
i→k
i
→
k
的消息
2)归属度(availability)
a(i,k)
a
(
i
,
k
)
:表示点
i
i
选择点作为其聚类中心的适合程度,表示
k→i
k
→
i
的消息。
r(i,j)
r
(
i
,
j
)
和
a(i,j)
a
(
i
,
j
)
越大,表示点
k
k
作为最终聚类中心的可能性越大
· 相似度:两个数据点之间的匹配程度。
· 偏好程度:一个数据点对于某个样例适用性的依赖程度
算法:通过不断迭代更新每个点的吸引度和归属度,知道收敛,产生m个聚类中心,并将其余点分配到相应的聚类中。
算法实现:
输入:相似矩阵S
s(k,k)
s
(
k
,
k
)
表示点
k
k
被选为聚类中心的可能性,又称为参考度p(preference)
若认为每个点作为聚类中心的可能性相同,则p取相同值
p值可取相似矩阵的中位数或最小值
· 当p值取中位数时,得到的聚类中心的数目相对适中
· 当p值取最小值时,得到的聚类中心数目相对较少
初始化:设置归属度矩阵A为0
迭代:更新吸引度矩阵R和归属度矩阵A直至收敛