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])