sklearn.cluster.AffinityPropagation¶
class sklearn.cluster.AffinityPropagation(*, damping=0.5, max_iter=200, convergence_iter=15, copy=True, preference=None, affinity='euclidean', verbose=False, random_state='warn')
执行数据的亲和传播聚类。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
damping | float, default=0.5 阻尼系数(0.5到1之间)是当前值相对于传入值(加权1-阻尼)保持的程度。这是为了在更新这些值(消息)时避免数值振荡。 |
max_iter | int, default=200 最大迭代次数 |
convergence_iter | int, default=15 停止收敛时, 估计的聚类数目不再变化时的迭代次数 |
copy | bool, default=True 做一个输入数据的副本 |
preference | array-like of shape (n_samples,) or float, default=None 每个点的偏好值越大,就越有可能被选择作为样本。样本数,聚类的数目, 受输入偏好值的影响。如果偏好不是作为参数传递,它们将被设置为输入相似性的中位数。 |
affinity | {‘euclidean’, ‘precomputed’}, default=’euclidean’ 用哪种亲和。目前支持‘precomputed’和 euclidean 。‘euclidean’使用点之间的负平方欧几里德距离。 |
verbose | bool, default=False 是否冗长 |
random_state | int or np.random.RandomStateInstance, default: 0 伪随机数生成器控制起动状态。对跨函数调用的可重复结果使用int。See the Glossary 新版本0.23:此参数以前被硬编码为0。 |
属性 | 说明 |
---|---|
cluster_centers_indices_ | ndarray of shape (n_clusters,) 聚类中心的索引 |
cluster_centers_ | ndarray of shape (n_clusters, n_features) 聚类中心(if affinity != precomputed ) |
labels_ | ndarray of shape (n_samples,) 每个点的标签 |
affinity_matrix_ | ndarray of shape (n_samples, n_samples) 储存在 fit 中使用的亲和矩阵。 |
n_iter_ | int 用于收敛的迭代次数 |
注:
一个例子: examples/cluster/plot_affinity_propagation.py.
亲和传播的算法复杂度在点数上是二次型的。
当fit
不收敛时 cluster_centers_
变成一个空数组,所有训练样本都被标记为-1。此外,预测将标记每个样本为-1。
当所有训练样本具有相同的相似性和相同的偏好时,聚类中心和标签的分配取决于偏好。如果偏好小于相似点,则fit
将导致单个聚类中心,并为每个样本标记0。否则,每个训练样本都会成为自己的聚类中心,并被分配一个唯一的标签。
参考
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 (self, X[, y]) |
根据特征或亲和矩阵对聚类进行拟合。 |
fit_predict (self, X[, y]) |
根据特征或亲和矩阵对聚类进行拟合,并返回聚类标签。 |
get_params (self[, deep]) |
获取此估计器的参数 |
predict (self, X) |
预测X中每个样本所属的最接近的聚类 |
set_params (self, **params) |
设置此估计器的参数 |
__init__(self, *, damping=0.5, max_iter=200, convergence_iter=15, copy=True, preference=None, affinity='euclidean', verbose=False, random_state='warn')
初始化self。请参阅help(type(self))以获得准确的说明。
fit(self, X, y=None)
根据特征或亲和矩阵进行聚类。
参数 | 说明 |
---|---|
X | array-like or sparse matrix, shape (n_samples, n_features), or array-like, shape (n_samples, n_samples) 对实例进行聚类训练,如果 affinity='precomputed' ,训练实例之间的相似性/亲和关系。如果提供的是一个稀疏矩阵,将会收敛成csr_matrix 。 |
y | Ignored 未使用,在此按约定呈现为API一致性。 |
返回值 | 说明 |
---|---|
self | - |
fit_predict(self, X, y=None)
根据特征或亲和矩阵对聚类进行拟合,并返回聚类标签。
参数 | 说明 |
---|---|
X | array-like or sparse matrix, shape (n_samples, n_features), or array-like, shape (n_samples, n_samples) 对实例进行聚类训练,如果 affinity='precomputed' ,训练实例之间的相似性/亲和关系。如果提供的是一个稀疏矩阵,将会收敛成csr_matrix 。 |
y | Ignored 未使用,在此按约定呈现为API一致性。 |
返回值 | 说明 |
---|---|
labels | ndarray, shape (n_samples,) 聚类标签 |
get_params(self, deep=True)
获取此估计器的参数
参数 | 说明 |
---|---|
deep | bool, default=True 如果为True,则将返回此估计器的参数和所包含的作为估计器的子对象。 |
返回值 | 说明 |
---|---|
params | mapping of string to any 映射到其值的参数名称 |
predict(self, X)
预测X中每个样本所属的最接近的聚类
参数 | 列表 |
---|---|
X | array-like or sparse matrix, shape (n_samples, n_features) 要预测的新数据。如果提供稀疏矩阵,则将其转换为稀疏 csr_matrix 。 |
返回值 | 说明 |
---|---|
labels | ndarray, shape (n_samples,) 聚类标签 |
set_params(self, **params)
设置此估计器的参数
该方法适用于简单估计器以及嵌套对象(例如pipelines)。后者具有表单的 <component>__<parameter>
参数,这样就可以更新嵌套对象的每个组件。
表格 | 说明 |
---|---|
**params | dict 估计器参数 |
返回值 | 说明书 |
---|---|
self | object 估计器实例 |