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)[源代码]#
执行数据的亲和力传播集群。
阅读更多的 User Guide .
- 参数:
- damping浮点数,默认值=0.5
范围内的衰减系数
[0.5, 1.0)
是当前值相对于传入值保持的程度(加权1 -阻尼)。这是为了避免在更新这些值(消息)时出现数值振荡。- max_iterint,默认=200
最大迭代次数。
- convergence_iterint,默认=15
停止收敛的估计集群数量没有变化的迭代次数。
- copy布尔,默认=True
复制输入数据。
- preference形状(n_samples,)或浮点形,默认=无
每个点的偏好--偏好值较大的点更有可能被选为样本。样本(即集群)的数量受到输入偏好值的影响。如果偏好不作为参数传递,则它们将被设置为输入相似度的中位数。
- affinity'欧几里得',',',默认='欧几里得'
使用哪种亲和力。目前是“预先计算的”和
euclidean
得到支持。“欧几里得”使用点之间的负平方欧几里得距离。- verbose布尔,默认=假
是否冗长。
- random_stateint,RandomState实例或无,默认=无
伪随机数生成器来控制开始状态。使用int来实现跨函数调用的可重复结果。看到 Glossary .
Added in version 0.23: 此参数之前被硬编码为0。
- 属性:
- cluster_centers_indices_形状的nd数组(n_clusters,)
聚类中心指数。
- cluster_centers_形状的nd数组(n_classes,n_features)
聚类中心(如果亲和度!=
precomputed
).- labels_形状的nd数组(n_samples,)
每个点的标签。
- affinity_matrix_形状的nd数组(n_samples,n_samples)
存储中使用的亲和力矩阵
fit
.- n_iter_int
收敛所需的迭代次数。
- n_features_in_int
期间看到的功能数量 fit .
Added in version 0.24.
- feature_names_in_ :nd形状数组 (
n_features_in_
,)nd数组形状( Names of features seen during fit. Defined only when
X
has feature names that are all strings.Added in version 1.0.
参见
AgglomerativeClustering
以最小限度地增加给定的联动距离的方式合并这对集群。
FeatureAgglomeration
类似于AgglomerativeClustering,但递归合并特征而不是样本。
KMeans
K-Means聚类
MiniBatchKMeans
小批量K均值集群。
MeanShift
使用平坦核的均值漂移集群。
SpectralClustering
将集群应用于规范化拉普拉斯的投影。
注意到
有关使用示例,请参阅 亲和力传播分簇算法演示 .
亲和力传播的算法复杂性与点数的二次关系。
当算法不收敛时,它仍然会返回
cluster_center_indices
和标签,如果有任何样本/集群,但它们可能是退化的,应谨慎使用。当
fit
不收敛,cluster_centers_
仍然存在,但可能会退化。在这种情况下,请谨慎行事。如果fit
不会收敛并且无法产生任何cluster_centers_
然后predict
将每个样本标记为-1
.当所有训练样本具有相同的相似性和相同的偏好时,集群中心和标签的分配取决于偏好。如果偏好小于相似性,
fit
将产生单个群集中心和标签0
对于每个样本。否则,每个训练样本都会成为自己的集群中心,并被分配一个唯一的标签。引用
Brendan J. Frey和Delbert Dueck,“通过在数据点之间传递消息进行聚集”,科学2007年2月
示例
>>> 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)[源代码]#
根据特征或亲和力矩阵来适应集群。
- 参数:
- X{类数组,稀疏矩阵}的形状(n_samples,n_features),或 array-like of shape(n_samples,n_samples)
训练实例进行集群,或实例之间的相似性/亲和力,如果
affinity='precomputed'
.如果提供稀疏特征矩阵,则将其转换为稀疏特征矩阵csr_matrix
.- y忽视
未使用,此处列出是为了按照惯例实现API一致性。
- 返回:
- 自我
返回实例本身。
- fit_predict(X, y=None)[源代码]#
根据特征/亲和力矩阵匹配集群;返回集群标签。
- 参数:
- X{类数组,稀疏矩阵}的形状(n_samples,n_features),或 array-like of shape(n_samples,n_samples)
训练实例进行集群,或实例之间的相似性/亲和力,如果
affinity='precomputed'
.如果提供稀疏特征矩阵,则将其转换为稀疏特征矩阵csr_matrix
.- y忽视
未使用,此处列出是为了按照惯例实现API一致性。
- 返回:
- labels形状的nd数组(n_samples,)
集群标签。
- get_metadata_routing()[源代码]#
获取此对象的元数据路由。
请检查 User Guide 关于路由机制如何工作。
- 返回:
- routingMetadataRequest
A
MetadataRequest
封装路由信息。
- get_params(deep=True)[源代码]#
获取此估计器的参数。
- 参数:
- deep布尔,默认=True
如果为True,将返回此估计量和包含的作为估计量的子对象的参数。
- 返回:
- paramsdict
参数名称映射到其值。