sklearn.cluster.affinity_propagation¶
sklearn.cluster.affinity_propagation(S, *, preference=None, convergence_iter=15, max_iter=200, damping=0.5, copy=True, verbose=False, return_n_iter=False, random_state='warn')
执行数据的亲和传播聚类
在用户指南中阅读更多内容
参数 | 说明 |
---|---|
S | array-like, shape (n_samples, n_samples) 点之间的相似矩阵 |
preference | array-like, shape (n_samples,) or float, optional 每个点的偏好值越大,就越有可能被选择作为样本。样本数,即聚类的样本数,受输入偏好值的影响。如果首选项不是作为参数传递,则它们将被设置为输入相似点的中位数(从而导致适度的聚类数目)。对于较小数量的簇,可以将其设置为相似性的最小值。 |
convergence_iter | int, optional, default: 15 停止收敛的估计簇数目不变的迭代次数 |
max_iter | int, optional, default: 200 最大迭代次数 |
damping | float, optional, default: 0.5 阻尼系数在0.5到1之间。 |
copy | boolean, optional, default: True 如果copy是False,则通过该算法对亲和矩阵进行修改,以提高内存效率。 |
verbose | boolean, optional, default: False 详细程度 |
return_n_iter | bool, default False 是否返回迭代次数 |
random_state | int or np.random.RandomStateInstance, default: 0 伪随机数发生器控制起动状态。对跨函数调用的可重复结果使用整数。见Glossary。 |
返回值 | 说明 |
---|---|
cluster_centers_indices | array, shape (n_clusters,) 簇中心指数 |
labels | array, shape (n_samples,) 每个点的聚类标签 |
n_iter | int 运行的迭代数。只有当 return_n_iter 设置为True时才返回。 |
注:
举个例子,参见examples/cluster/plot_affinity_propagation.py.
当算法不收敛时,为每个训练样本返回一个空数组作为cluster_center_indices
, -1
作为标签。
当所有训练样本具有相同的相似性和相同的偏好时,聚类中心和标签的分配取决于偏好。如果偏好小于相似性,则将返回每个样本的单个中心聚类和标签0。否则,每个训练样本都会成为自己的聚类中心,并被分配一个唯一的标签。
参考
Brendan J. Frey and Delbert Dueck, “Clustering by Passing Messages Between Data Points”, Science Feb. 2007