最近在学习AP聚类算法,网上找了好多资料(http://blog.csdn.net/dreamd1987/article/details/8923035, http://www.doc88.com/p-239796915955.html, http://www.doc88.com/p-886680412462.html),对于AP的迭代公式都不太相同,后经过验证找到了正确的迭代公式,总结一下,以后备用:
算法原理:
AP算法是一种根据数据对象之间的相似度自动进行聚类的方法,隶属于划分聚类方法的一种。数据对象之间的相似度根据不同的场景选择不同的衡量准则,如欧式距离,随相似准则的不同,数据对象之间的相似度可能是对称的,也可能是非对称的。这些相似度组成N*N(N为数据对象的数目)的相似矩阵S,利用该矩阵进行自动迭代计算。注:相似度矩阵应该是一个负值矩阵,即每个元素的值不能大于0,如果用欧式距离,那么取负值即可。
AP算法根据S对角线的数值最为某个点能否成为聚类中心的评判标准,该值越大,该点成为簇中心的可能性越大,对角线上的值称为参考度p。p的大小影响簇中心的数目,若认为每个数据对象都有可能作为簇中心,那么p就应该取相同的值(此时S对角线的值都为p),当然可以根据不同点成为簇中心的可能性大小,取不同的p值(此时S对角线上的值就会不同)。如果p等于S矩阵中所有元素的均值,那么得到的簇中心数目是中等的;如果取最小相似度,那么得到较少的聚类。
AP算法有两个重要的消息,Responsibility和Availability。R(i,k)描述了数据对象k适合作为数据对象i