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=None)[源代码]#

执行数据的亲和力传播集群。

阅读更多的 User Guide .

参数:
Sarray-like of shape(n_samples,n_samples)

点之间的相似性矩阵。

preference形状(n_samples,)或浮点形,默认=无

每个点的偏好--偏好值较大的点更有可能被选为样本。样本(即集群)的数量受到输入偏好值的影响。如果偏好不作为参数传递,则它们将被设置为输入相似度的中位数(导致适度数量的集群)。对于较少数量的集群,可以将其设置为相似度的最小值。

convergence_iterint,默认=15

停止收敛的估计集群数量没有变化的迭代次数。

max_iterint,默认=200

最大迭代次数。

damping浮点数,默认值=0.5

衰减系数在0.5和1之间。

copy布尔,默认=True

如果copy为False,则算法会就地修改亲和矩阵,以提高内存效率。

verbose布尔,默认=假

冗长程度。

return_n_iter布尔,默认=假

是否返回迭代次数。

random_stateint,RandomState实例或无,默认=无

伪随机数生成器来控制开始状态。使用int来实现跨函数调用的可重复结果。看到 Glossary .

Added in version 0.23: 此参数之前被硬编码为0。

返回:
cluster_centers_indices形状的nd数组(n_clusters,)

集群中心指数。

labels形状的nd数组(n_samples,)

每个点的集群标签。

n_iterint

运行的迭代次数。只有在以下情况下才返回 return_n_iter 设置为True。

注意到

有关使用示例,请参阅 亲和力传播分簇算法演示 .您还可以查看, 股票市场结构可视化

当算法不收敛时,它仍然会返回 cluster_center_indices 和标签,如果有任何样本/集群,但它们可能是退化的,应谨慎使用。

当所有训练样本具有相同的相似性和相同的偏好时,集群中心和标签的分配取决于偏好。如果偏好小于相似性,则使用单个集群中心和标签 0 每个样本都会被退回。否则,每个训练样本都会成为自己的集群中心,并被分配一个唯一的标签。

引用

Brendan J. Frey和Delbert Dueck,“通过在数据点之间传递消息进行聚集”,科学2007年2月

示例

>>> import numpy as np
>>> from sklearn.cluster import affinity_propagation
>>> from sklearn.metrics.pairwise import euclidean_distances
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [4, 2], [4, 4], [4, 0]])
>>> S = -euclidean_distances(X, squared=True)
>>> cluster_centers_indices, labels = affinity_propagation(S, random_state=0)
>>> cluster_centers_indices
array([0, 3])
>>> labels
array([0, 0, 0, 1, 1, 1])