AffinityPropagation#
- class sklearn.cluster.AffinityPropagation(*, damping=0.5, max_iter=200, convergence_iter=15, copy=True, preference=None, affinity='euclidean', verbose=False, random_state=None)[source]#
执行数据的 Affinity Propagation 聚类。
在用户指南中阅读更多内容。
- 参数:
- dampingfloat, default=0.5
范围在
[0.5, 1.0)之间的阻尼因子是当前值相对于传入值(权重为 1 - damping)保持的程度。这是为了避免在更新这些值(消息)时出现数值振荡。- max_iter整型, 默认为 200
最大迭代次数。
- convergence_iterint, default=15
估计聚类数量没有变化的迭代次数,达到此次数时停止收敛。
- copy布尔值, 默认为 True
创建输入数据的副本。
- preferencearray-like of shape (n_samples,) or float, default=None
每个点的偏好值 - 偏好值较大的点更有可能被选为代表。代表(即聚类)的数量受输入偏好值的影响。如果未将偏好值作为参数传入,则会将其设置为输入相似度的中位数。
- affinity{‘euclidean’, ‘precomputed’}, default=’euclidean’
使用哪种亲和度。目前支持“precomputed”和
euclidean。“euclidean”使用点之间负平方欧几里得距离。- verbosebool, default=False
是否启用详细模式。
- random_stateint, RandomState instance or None, default=None
用于控制起始状态的伪随机数生成器。使用整数可以在函数调用中产生可重现的结果。参见词汇表。
版本 0.23 新增: 此参数以前硬编码为 0。
- 属性:
- cluster_centers_indices_ndarray of shape (n_clusters,)
聚类中心的索引。
- cluster_centers_ndarray of shape (n_clusters, n_features)
聚类中心(如果 affinity !=
precomputed)。- labels_ndarray of shape (n_samples,)
每个点的标签。
- affinity_matrix_ndarray of shape (n_samples, n_samples)
存储
fit中使用的亲和度矩阵。- n_iter_int
收敛所需的迭代次数。
- n_features_in_int
在 拟合 期间看到的特征数。
0.24 版本新增。
- feature_names_in_shape 为 (
n_features_in_,) 的 ndarray 在 fit 期间看到的特征名称。仅当
X具有全部为字符串的特征名称时才定义。1.0 版本新增。
另请参阅
AgglomerativeClustering递归地合并使给定链接距离增加最小的聚类对。
FeatureAgglomeration类似于 AgglomerativeClustering,但递归地合并特征而不是样本。
KMeansK-Means 聚类。
MiniBatchKMeansMini-Batch K-Means 聚类。
MeanShift使用平坦核的 Mean Shift 聚类。
SpectralClustering将聚类应用于归一化拉普拉斯算子的投影。
注意事项
亲和度传播的算法复杂度是点数的平方级别。
当算法不收敛时,如果存在任何代表/聚类,它仍将返回一个
cluster_center_indices和标签数组,但它们可能是退化的,应谨慎使用。当
fit不收敛时,cluster_centers_仍然被填充,但它可能是退化的。在这种情况下,请谨慎操作。如果fit不收敛且未能生成任何cluster_centers_,则predict会将每个样本标记为-1。当所有训练样本具有相同的相似度和相同的偏好时,聚类中心和标签的分配取决于偏好。如果偏好小于相似度,
fit将导致一个单独的聚类中心,并且每个样本的标签为0。否则,每个训练样本都成为其自己的聚类中心,并被分配一个唯一的标签。References
Brendan J. Frey and Delbert Dueck, “Clustering by Passing Messages Between Data Points”, Science Feb. 2007
示例
>>> from sklearn.cluster import AffinityPropagation >>> import numpy as np >>> X = np.array([[1, 2], [1, 4], [1, 0], ... [4, 2], [4, 4], [4, 0]]) >>> clustering = AffinityPropagation(random_state=5).fit(X) >>> clustering AffinityPropagation(random_state=5) >>> clustering.labels_ array([0, 0, 0, 1, 1, 1]) >>> clustering.predict([[0, 0], [4, 4]]) array([0, 1]) >>> clustering.cluster_centers_ array([[1, 2], [4, 2]])
有关用法示例,请参见 亲和度传播聚类算法演示。
有关亲和度传播与其他聚类算法的比较,请参见 在玩具数据集上比较不同的聚类算法
- fit(X, y=None)[source]#
从特征或亲和度矩阵拟合聚类。
- 参数:
- X{array-like, sparse matrix} of shape (n_samples, n_features), or array-like of shape (n_samples, n_samples)
要聚类的训练实例,如果
affinity='precomputed',则为实例之间的相似度/亲和度。如果提供了稀疏特征矩阵,它将被转换为稀疏csr_matrix。- y被忽略
Not used, present here for API consistency by convention.
- 返回:
- self
返回实例本身。
- fit_predict(X, y=None)[source]#
从特征/亲和度矩阵拟合聚类;返回聚类标签。
- 参数:
- X{array-like, sparse matrix} of shape (n_samples, n_features), or array-like of shape (n_samples, n_samples)
要聚类的训练实例,如果
affinity='precomputed',则为实例之间的相似度/亲和度。如果提供了稀疏特征矩阵,它将被转换为稀疏csr_matrix。- y被忽略
Not used, present here for API consistency by convention.
- 返回:
- labelsndarray of shape (n_samples,)
聚类标签。
- get_metadata_routing()[source]#
获取此对象的元数据路由。
请查阅 用户指南,了解路由机制如何工作。
- 返回:
- routingMetadataRequest
封装路由信息的
MetadataRequest。
- get_params(deep=True)[source]#
获取此估计器的参数。
- 参数:
- deepbool, default=True
如果为 True,将返回此估计器以及包含的子对象(如果它们是估计器)的参数。
- 返回:
- paramsdict
参数名称映射到其值。