本文簡要介紹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)
相關用法
- Python sklearn MDS用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn MultiTaskLasso用法及代碼示例
- Python sklearn MultiTaskLassoCV用法及代碼示例
- Python sklearn MinMaxScaler用法及代碼示例
- Python sklearn MiniBatchSparsePCA用法及代碼示例
- Python sklearn MultiTaskLasso.path用法及代碼示例
- Python sklearn MultiOutputClassifier用法及代碼示例
- Python sklearn MultiTaskElasticNet.path用法及代碼示例
- Python sklearn MultiTaskElasticNetCV.path用法及代碼示例
- Python sklearn MiniBatchKMeans用法及代碼示例
- Python sklearn MultiTaskElasticNetCV用法及代碼示例
- Python sklearn MLPRegressor用法及代碼示例
- Python sklearn MultiLabelBinarizer用法及代碼示例
- Python sklearn MultiOutputRegressor用法及代碼示例
- Python sklearn MultiTaskLassoCV.path用法及代碼示例
- Python sklearn Matern用法及代碼示例
- Python sklearn MaxAbsScaler用法及代碼示例
- Python sklearn MiniBatchDictionaryLearning用法及代碼示例
- Python sklearn MultiTaskElasticNet用法及代碼示例
- Python sklearn MinCovDet用法及代碼示例
- Python sklearn MultinomialNB用法及代碼示例
- Python sklearn MissingIndicator用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.cluster.MeanShift。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。