当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn MeanShift用法及代码示例


本文简要介绍python语言中 sklearn.cluster.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)

使用平面内核的均值移位聚类。

均值漂移聚类旨在以平滑的样本密度发现“blobs”。它是一种基于质心的算法,其工作原理是将质心候选更新为给定区域内点的平均值。然后在后处理阶段对这些候选进行过滤,以消除near-duplicates,形成最终的质心集。

使用分级技术执行播种以实现可扩展性。

在用户指南中阅读更多信息。

参数

bandwidth浮点数,默认=无

RBF 内核中使用的带宽。

如果未给出,则使用 sklearn.cluster.estimate_bandwidth 估计带宽;有关可伸缩性的提示,请参阅该函数的文档(另请参阅下面的注释)。

seeds形状类似数组(n_samples,n_features),默认=无

用于初始化内核的种子。如果未设置,则通过聚类计算种子。get_bin_seeds 以带宽为网格大小,其他参数为默认值。

bin_seeding布尔,默认=假

如果为真,则初始内核位置不是所有点的位置,而是点的离散版本的位置,其中点被分箱到粗糙度对应于带宽的网格上。将此选项设置为 True 将加速算法,因为将初始化更少的种子。默认值为假。如果种子参数不是无,则忽略。

min_bin_freq整数,默认=1

为了加快算法速度,只接受那些至少有 min_bin_freq 点的 bin 作为种子。

cluster_all布尔,默认=真

如果为真,那么所有点都会被聚集,即使是那些不在任何内核中的孤儿也是如此。孤儿被分配给最近的内核。如果为 false,则给孤儿集群标签 -1。

n_jobs整数,默认=无

用于计算的作业数。这是通过计算每个 n_init 并行运行来实现的。

None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关详细信息,请参阅词汇表。

max_iter整数,默认=300

如果尚未收敛,则在聚类操作终止(对于该种子点)之前每个种子点的最大迭代次数。

属性

cluster_centers_ndarray 形状(n_clusters,n_features)

聚类中心的坐标。

labels_ndarray 形状 (n_samples,)

每个点的标签。

n_iter_int

对每个种子执行的最大迭代次数。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

注意

可扩展性:

因为这个实现使用扁平内核和球树来查找每个内核的成员,所以复杂度将趋向于 O(T*n*log(n)) 在较低维度上,其中 n 是样本数,T 是点。在更高维度上,复杂度将趋向于 O(T*n^2)。

可通过使用更少的种子来提高可扩展性,例如在get_bin_seeds 函数中使用较高的min_bin_freq 值。

请注意,estimate_bandwidth 函数的可扩展性远低于均值偏移算法,如果使用它将成为瓶颈。

参考

Dorin Comaniciu 和 Peter Meer,“均值偏移:特征空间分析的稳健方法”。 IEEE 模式分析和机器智能汇刊。 2002. 第 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)

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.cluster.MeanShift。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。