亲和力传播#
- 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]#
- 执行数据的亲和传播聚类。 - 更多信息请参见 用户指南。 - 参数:
- damping浮点数,默认为 0.5
- 阻尼因子,范围在 - [0.5, 1.0)之间,表示当前值相对于传入值的保持程度(加权为 1 - damping)。这是为了避免更新这些值(消息)时出现数值振荡。
- max_iter整数,默认为 200
- 最大迭代次数。 
- convergence_iter整数,默认为 15
- 估计聚类数量无变化的迭代次数,用于停止收敛。 
- copy布尔值,默认为 True
- 是否复制输入数据。 
- preference形状为 (n_samples,) 的类数组或浮点数,默认为 None
- 每个点的偏好 - 偏好值较大的点更有可能被选为示例。示例的数量,即聚类的数量,受输入偏好值的影响。如果偏好值不是作为参数传入,则将设置为输入相似度的中位数。 
- affinity{'euclidean', 'precomputed'},默认为 'euclidean'
- 使用哪种亲和度。目前支持 'precomputed' 和 - euclidean。'euclidean' 使用点之间负平方欧几里得距离。
- verbose布尔值,默认为 False
- 是否显示详细信息。 
- random_state整数、RandomState 实例或 None,默认为 None
- 伪随机数生成器,用于控制初始状态。使用整数可在函数调用之间获得可重复的结果。参见 词汇表。 - 0.23 版本新增: 此参数以前硬编码为 0。 
 
- 属性:
- cluster_centers_indices_形状为 (n_clusters,) 的 ndarray
- 聚类中心的索引。 
- cluster_centers_形状为 (n_clusters, n_features) 的 ndarray
- 聚类中心(如果 affinity != - precomputed)。
- labels_形状为 (n_samples,) 的 ndarray
- 每个点的标签。 
- affinity_matrix_形状为 (n_samples, n_samples) 的 ndarray
- 存储在 - fit中使用的亲和矩阵。
- n_iter_整数
- 收敛所需的迭代次数。 
- n_features_in_整数
- 在 拟合期间看到的特征数量。 - 0.24 版本新增。 
- feature_names_in_形状为 (n_features_in_,) 的 ndarray
- 在 拟合期间看到的特征名称。仅当 - X的特征名称全部为字符串时定义。- 1.0 版本新增。 
 
 - 另请参见 - AgglomerativeClustering
- 递归地合并最小化给定连接距离的聚类对。 
- FeatureAgglomeration
- 类似于 AgglomerativeClustering,但递归地合并特征而不是样本。 
- KMeans
- K 均值聚类。 
- MiniBatchKMeans
- 小批量 K 均值聚类。 
- MeanShift
- 使用平面核的均值漂移聚类。 
- SpectralClustering
- 将聚类应用于归一化拉普拉斯算子的投影。 
 - 备注 - 有关使用方法示例,请参见 亲和传播聚类算法演示。 - 亲和传播算法的算法复杂度与点数的平方成正比。 - 当算法不收敛时,如果存在任何示例/聚类,它仍将返回 - cluster_center_indices和标签的数组,但是它们可能是退化的,应谨慎使用。- 当 - fit不收敛时,- cluster_centers_仍然会被填充,但是它可能是退化的。在这种情况下,请谨慎操作。如果- fit不收敛并且未能产生任何- cluster_centers_,则- predict将将每个样本标记为- -1。- 当所有训练样本具有相同的相似性和相同的偏好时,聚类中心和标签的分配取决于偏好。如果偏好小于相似性,则 - fit将导致单个聚类中心和每个样本的标签- 0。否则,每个训练样本都成为它自己的聚类中心,并被分配一个唯一的标签。- 参考文献 - Brendan J. Frey 和 Delbert Dueck,“通过在数据点之间传递消息进行聚类”,Science 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)[source]#
- 根据特征或亲和矩阵拟合聚类。 - 参数:
- X形状为 (n_samples, n_features) 的 {类数组, 稀疏矩阵},或形状为 (n_samples, n_samples) 的类数组
- 要聚类的训练实例,或者如果 - affinity='precomputed',则为实例之间的相似性/亲和性。如果提供稀疏特征矩阵,它将被转换为稀疏- csr_matrix。
- y忽略
- 未使用,出于 API 一致性约定而在此处显示。 
 
- 返回:
- self
- 返回实例本身。 
 
 
 - fit_predict(X, y=None)[source]#
- 根据特征/亲和矩阵拟合聚类;返回聚类标签。 - 参数:
- X形状为 (n_samples, n_features) 的 {类数组, 稀疏矩阵},或形状为 (n_samples, n_samples) 的类数组
- 要聚类的训练实例,或者如果 - affinity='precomputed',则为实例之间的相似性/亲和性。如果提供稀疏特征矩阵,它将被转换为稀疏- csr_matrix。
- y忽略
- 未使用,出于 API 一致性约定而在此处显示。 
 
- 返回:
- labels形状为 (n_samples,) 的 ndarray
- 聚类标签。 
 
 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看 用户指南,了解路由机制的工作原理。 - 返回:
- routingMetadataRequest
- 一个 - MetadataRequest封装了路由信息。
 
 
 - get_params(deep=True)[source]#
- 获取此估计器的参数。 - 参数:
- deepbool,默认值为 True
- 如果为 True,则将返回此估计器和包含的作为估计器的子对象的参数。 
 
- 返回:
- paramsdict
- 参数名称与其值的映射。 
 
 
 
 
     
