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)#
执行数据的自适应传播聚类。
更多信息请参阅 用户指南 。
- Parameters:
- S形状为 (n_samples, n_samples) 的类数组
点之间的相似度矩阵。
- preference形状为 (n_samples,) 的类数组或浮点数, 默认=None
每个点的偏好 - 偏好值较大的点更有可能被选为示例。示例的数量,即聚类的数量,受输入偏好值的影响。如果未传递偏好参数,它们将设置为输入相似度的中位数(导致适度的聚类数量)。对于较少的聚类数量,可以将其设置为相似度的最小值。
- convergence_iterint, 默认=15
在没有改变估计聚类数量的情况下停止收敛的迭代次数。
- max_iterint, 默认=200
最大迭代次数。
- dampingfloat, 默认=0.5
阻尼因子,介于 0.5 和 1 之间。
- copybool, 默认=True
如果 copy 为 False,相似度矩阵将在原地由算法修改,以提高内存效率。
- verbosebool, 默认=False
详细级别。
- return_n_iterbool, 默认=False
是否返回迭代次数。
- random_stateint, RandomState 实例或 None, 默认=None
伪随机数生成器,用于控制初始状态。使用 int 以在函数调用之间获得可重复的结果。请参阅 术语表 。
Added in version 0.23: 此参数之前硬编码为 0。
- Returns:
- cluster_centers_indices形状为 (n_clusters,) 的 ndarray
聚类中心的索引。
- labels形状为 (n_samples,) 的 ndarray
每个点的聚类标签。
- n_iterint
运行的迭代次数。仅当
return_n_iter
设置为 True 时返回。
Notes
有关示例,请参阅 examples/cluster/plot_affinity_propagation.py 。
当算法不收敛时,如果存在示例/聚类,它仍将返回
cluster_center_indices
和标签的数组,但它们可能是退化的,应谨慎使用。当所有训练样本具有相等的相似度和相等的偏好时,聚类中心和标签的分配取决于偏好。如果偏好小于相似度,将返回一个单一的聚类中心和每个样本的标签
0
。否则,每个训练样本将成为其自己的聚类中心,并被分配一个唯一的标签。References
Brendan J. Frey 和 Delbert Dueck,“通过数据点之间的传递消息进行聚类”,Science 2007 年 2 月
Examples
>>> 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])
Gallery examples#
可视化股票市场结构