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)[原始碼]#
使用扁平核心對資料執行均值漂移分群。
詳情請參閱使用者指南。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
輸入資料。
- bandwidth浮點數,預設值為 None
核心頻寬。如果不是 None,則必須在 [0, +inf) 範圍內。
如果為 None,則頻寬將使用基於所有成對距離中位數的啟發式方法確定。這將花費樣本數量的平方時間。sklearn.cluster.estimate_bandwidth 函數可用於更有效率地完成此操作。
- seeds形狀為 (n_seeds, n_features) 的類陣列或 None
用作初始核心位置的點。如果為 None 且 bin_seeding=False,則每個資料點都用作種子。如果為 None 且 bin_seeding=True,請參閱 bin_seeding。
- bin_seeding布林值,預設值為 False
如果為 True,則初始核心位置不是所有點的位置,而是點的離散化版本的位置,其中點被分箱到網格上,該網格的粗糙度對應於頻寬。將此選項設定為 True 將加快演算法速度,因為將初始化較少的種子。如果 seeds 參數不是 None,則忽略此選項。
- min_bin_freq整數,預設值為 1
為了加快演算法速度,僅接受至少具有 min_bin_freq 個點的箱子作為種子。
- cluster_all布林值,預設值為 True
如果為 True,則會對所有點進行分群,即使是那些不在任何核心內的孤立點。孤立點將被分配到最近的核心。如果為 False,則會給孤立點分配群集標籤 -1。
- max_iter整數,預設值為 300
在分群操作終止(對於該種子點)之前,每個種子點的最大迭代次數(如果尚未收斂)。
- n_jobs整數,預設值為 None
用於計算的作業數量。以下任務受益於平行化
搜尋最近鄰居以進行頻寬估計和標籤分配。請參閱
NearestNeighbors
類別的 docstring 中的詳細資訊。所有種子的爬坡最佳化。
有關更多詳細資訊,請參閱詞彙表。
None
表示 1,除非在joblib.parallel_backend
環境中。-1
表示使用所有處理器。有關更多詳細資訊,請參閱詞彙表。在版本 0.17 中新增: 使用 n_jobs 進行平行執行。
- 傳回值:
- cluster_centers形狀為 (n_clusters, n_features) 的 ndarray
群集中心的座標。
- labels形狀為 (n_samples,) 的 ndarray
每個點的群集標籤。
注意
有關使用範例,請參閱均值漂移分群演算法的演示。
範例
>>> 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])