均值漂移#
- 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)[source]#
使用平面核进行数据的均值漂移聚类。
在用户指南中了解更多信息。
- 参数:
- Xarray-like of shape (n_samples, n_features)
输入数据。
- bandwidthfloat, default=None
核带宽。如果非 None,则必须在范围 [0, +inf) 内。
如果为 None,则带宽使用基于所有成对距离的中位数的启发式方法确定。这将花费样本数量的二次时间。可以使用 sklearn.cluster.estimate_bandwidth 函数更有效地执行此操作。
- seedsarray-like of shape (n_seeds, n_features) or None
用作初始核位置的点。如果为 None 且 bin_seeding=False,则每个数据点都用作种子。如果为 None 且 bin_seeding=True,请参见 bin_seeding。
- bin_seedingbool, default=False
如果为 True,则初始核位置不是所有点的位 置,而是点的离散化版本的位 置,其中点被 bin 化到一个网格上,其粗糙度对应于带宽。将此选项设置为 True 将加快算法速度,因为将初始化更少的种子。如果 seeds 参数不为 None,则忽略此选项。
- min_bin_freqint, default=1
为了加快算法速度,只接受至少有 min_bin_freq 个点的 bin 作为种子。
- cluster_allbool, default=True
如果为 True,则所有点都被聚类,即使是那些不在任何核内的孤立点。孤立点被分配到最近的核。如果为 False,则孤立点的集群标签为 -1。
- max_iterint, default=300
每个种子点在聚类操作终止(对于该种子点)之前的最大迭代次数,如果尚未收敛。
- n_jobsint, default=None
用于计算的作业数。以下任务受益于并行化:
带宽估计和标签分配的最近邻搜索。请参见
NearestNeighbors
类的文档字符串中的详细信息。所有种子的爬山优化。
有关更多详细信息,请参见词汇表。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关更多详细信息,请参见词汇表。版本 0.17 中新增: 使用 *n_jobs* 进行并行执行。
- 返回:
- cluster_centersndarray of shape (n_clusters, n_features)
聚类中心的坐标。
- labelsndarray of shape (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])