MeanShift#
- class sklearn.cluster.MeanShift(*, bandwidth=None, seeds=None, bin_seeding=False, min_bin_freq=1, cluster_all=True, n_jobs=None, max_iter=300)[源代码]#
使用平坦核的均值漂移集群。
均值漂移集群的目的是在平滑的样本密度中发现“斑点”。这是一种基于重心的算法,其工作原理是将重心候选更新为给定区域内点的平均值。然后在后处理阶段对这些候选项进行过滤,以消除近乎重复的,以形成最终的一组重心。
为了可扩展性,使用分类技术执行播种。
有关如何使用MeanChange集群的示例,请参阅: 均值漂移集群算法的演示 .
阅读更多的 User Guide .
- 参数:
- bandwidthfloat,默认=无
扁平内核中使用的带宽。
如果未给出,则使用sklearn. clock.estimate_bandum来估计带宽;请参阅该函数的文档,了解有关可扩展性的提示(另请参阅下面的注释)。
- seeds形状类似阵列(n_samples,n_features),默认=无
用于初始化内核的种子。如果未设置,则通过集群.get_bin_seeds来计算种子,其中带宽作为网格大小,其他参数的默认值。
- bin_seeding布尔,默认=假
如果为真,则初始核位置不是所有点的位置,而是离散化版本的点的位置,其中点被分类到粗糙度与带宽相对应的网格上。将此选项设置为True将加快算法速度,因为将初始化的种子更少。默认值为False。如果种子参数不是无,则被忽略。
- min_bin_freqint,默认=1
为了加快算法速度,请仅接受那些至少具有min_bin_freq点的bin作为种子。
- cluster_all布尔,默认=True
如果为true,则所有点都被聚类,即使是那些不在任何内核中的孤立点。孤儿被分配到最近的内核。如果为false,则孤儿被赋予集群标签-1。
- n_jobsint,默认=无
用于计算的作业数。以下任务受益于并行化:
搜索最近邻居以进行带宽估计和标签分配。请参阅文档字符串中的详细信息
NearestNeighbors
课对所有种子进行爬山优化。
看到 Glossary 了解更多详细信息。
None
意思是1,除非在a中joblib.parallel_backend
上下文-1
意味着使用所有处理器。看到 Glossary 了解更多详细信息。- max_iterint,默认=300
如果尚未收敛,则在集群操作终止(对于该种子点)之前每个种子点的最大迭代次数。
Added in version 0.22.
- 属性:
- cluster_centers_形状的nd数组(n_classes,n_features)
集群中心的坐标。
- labels_形状的nd数组(n_samples,)
每个点的标签。
- n_iter_int
对每个种子执行的最大迭代次数。
Added in version 0.22.
- 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.
参见
KMeans
K-Means聚类
注意到
可扩展性:
由于此实现使用扁平内核和Ball Tree来查找每个内核的成员,因此复杂性将趋于O(T n log(n))在较低维度中,n是样本数,T是点数。在更高维度中,复杂性将趋于O(T*n^2)。
可以通过使用更少的种子来提高可扩展性,例如通过在get_bin_seeds函数中使用更高的min_bin_freq值。
请注意,estimate_bandum函数的可扩展性比均值漂移算法小得多,并且如果使用它将成为瓶颈。
引用
Dorin Comaniciu和Peter Meer,“Mean Shift:一种面向特征空间分析的鲁棒方法”。IEEE模式分析和机器智能汇刊。2002. pp. 603-619.
示例
>>> from sklearn.cluster import MeanShift >>> import numpy as np >>> X = np.array([[1, 1], [2, 1], [1, 0], ... [4, 7], [3, 5], [3, 6]]) >>> clustering = MeanShift(bandwidth=2).fit(X) >>> clustering.labels_ array([1, 1, 1, 0, 0, 0]) >>> clustering.predict([[0, 0], [5, 5]]) array([1, 0]) >>> clustering MeanShift(bandwidth=2)
- fit(X, y=None)[源代码]#
执行集群。
- 参数:
- X形状类似阵列(n_samples,n_features)
要聚集的样本。
- y忽视
未使用,按照惯例,为了API一致性而存在。
- 返回:
- self对象
已安装实例。
- fit_predict(X, y=None, **kwargs)[源代码]#
在上执行集群
X
并返回集群标签。- 参数:
- X形状类似阵列(n_samples,n_features)
输入数据。
- y忽视
未使用,按照惯例,为了API一致性而存在。
- **kwargsdict
将传递给的论点
fit
.Added in version 1.4.
- 返回:
- labels形状的nd数组(n_samples,),dype =np.int64
集群标签。
- get_metadata_routing()[源代码]#
获取此对象的元数据路由。
请检查 User Guide 关于路由机制如何工作。
- 返回:
- routingMetadataRequest
A
MetadataRequest
封装路由信息。
- get_params(deep=True)[源代码]#
获取此估计器的参数。
- 参数:
- deep布尔,默认=True
如果为True,将返回此估计量和包含的作为估计量的子对象的参数。
- 返回:
- paramsdict
参数名称映射到其值。