當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。