mean_shift#
- sklearn.cluster.mean_shift(X, *, bandwidth=None, seeds=None, bin_seeding=False, min_bin_freq=1, cluster_all=True, max_iter=300, n_jobs=None)[源代码]#
使用扁平核执行数据的均值漂移集群。
阅读更多的 User Guide .
- 参数:
- X形状类似阵列(n_samples,n_features)
输入数据。
- bandwidthfloat,默认=无
核心带宽。如果不是无,则必须在[0,+inf)范围内。
如果无,则使用基于所有成对距离的中位数的启发式来确定带宽。这将花费样本数量的二次时间。sklearn. clock.estimate_bandband函数可以用于更有效地实现这一目标。
- seeds形状类似阵列(n_seeds,n_features)或无
用作初始内核位置的点。如果无且bin_seeding=False,则每个数据点都用作种子。如果无且bin_seeding=True,请参阅bin_seeding。
- bin_seeding布尔,默认=假
如果为真,则初始核位置不是所有点的位置,而是离散化版本的点的位置,其中点被分类到粗糙度与带宽相对应的网格上。将此选项设置为True将加快算法速度,因为将初始化的种子更少。如果种子参数不是无,则被忽略。
- min_bin_freqint,默认=1
为了加快算法速度,请仅接受那些至少具有min_bin_freq点的bin作为种子。
- cluster_all布尔,默认=True
如果为true,则所有点都被聚类,即使是那些不在任何内核中的孤立点。孤儿被分配到最近的内核。如果为false,则孤儿被赋予集群标签-1。
- max_iterint,默认=300
如果尚未收敛,则在集群操作终止(对于该种子点)之前每个种子点的最大迭代次数。
- n_jobsint,默认=无
用于计算的作业数。以下任务受益于并行化:
搜索最近邻居以进行带宽估计和标签分配。请参阅文档字符串中的详细信息
NearestNeighbors
课对所有种子进行爬山优化。
看到 Glossary 了解更多详细信息。
None
意思是1,除非在a中joblib.parallel_backend
上下文-1
意味着使用所有处理器。看到 Glossary 了解更多详细信息。Added in version 0.17: 并行执行使用 n_jobs .
- 返回:
- cluster_centers形状的nd数组(n_classes,n_features)
集群中心的坐标。
- labels形状的nd数组(n_samples,)
每个点的集群标签。
注意到
有关使用示例,请参阅 均值漂移集群算法的演示 .
示例
>>> import numpy as np >>> from sklearn.cluster import mean_shift >>> X = np.array([[1, 1], [2, 1], [1, 0], ... [4, 7], [3, 5], [3, 6]]) >>> cluster_centers, labels = mean_shift(X, bandwidth=2) >>> cluster_centers array([[3.33..., 6. ], [1.33..., 0.66...]]) >>> labels array([1, 1, 1, 0, 0, 0])