sklearn.cluster.k_means?

sklearn.cluster.k_means(X, n_clusters, *, sample_weight=None, init='k-means++', precompute_distances='deprecated', n_init=10, max_iter=300, verbose=False, tol=0.0001, random_state=None, copy_x=True, n_jobs='deprecated', algorithm='auto', return_n_iter=False)

[源碼]

K-均值聚類算法。

用戶指南中閱讀更多內容。

參數 說明
X {array-like, sparse} matrix of shape (n_samples, n_features)
將聚類的觀察值。必須注意的是,數據將轉換為C順序,如果給定的數據不是C-連續的,這將導致內存副本。
n_clusters int
要形成的簇數以及要生成的質心數。
sample_weight array-like of shape (n_samples,), default=None
X中每個觀測值的權重。如果為None,則所有的觀察都被賦予同等的權重。
init {‘k-means++’, ‘random’, ndarray, callable}, default=’k-means++’
初始化方法:
‘k-means++’:明智地選擇初始聚類中心進行k均值聚類,加快收斂速度。有關詳細信息,請參閱k_init中的Notes部分。

‘random’:從初始的數據中隨機選擇n_clusters個觀察值。

如果一個ndarray被傳遞,它應該是形狀的(n_clusters, n_features)并給出初始中心。

如果傳遞了一個可調用函數,它應該接受參數X、n_clusters 和 random state,并返回一個初始化。
precompute_distances {‘auto’, True, False}
預計算距離(速度更快,但占用更多內存)
‘auto’:如果n_samples * n_clusters>1,200萬,不要預先計算距離。這相當于使用雙精度的每個任務大約100 MB的開銷。

True:總是預先計算距離

False:從不預先計算距離

自版本0.23起已棄用: 'precompute_distances'在版本0.23中已棄用,并將在0.25中刪除。沒有作用。
n_init int, default=10
k-均值算法將使用不同的質心種子運行的次數。最后的結果將是inertia方面n_init連續運行的最佳輸出。
max_iter int, default=300
運行的k-均值算法的最大迭代次數。
verbose bool, default=False
詳細模式
tol float, default=1e-4
相對容忍度與Frobenius范數, 連續兩次迭代之間的聚類中心的差異聲明收斂。不建議將其設置為tol=0,因為由于舍入錯誤,可能永遠不會聲明收斂。用一個很小的數字代替。
random_state int, RandomState instance, default=None 確定用于質心初始化的隨機數生成。使用整數使隨機性確定。見Glossary
copy_x bool, default=True
當預計算距離時,首先對數據進行中心化比較精確.如果copy_x為True(默認值),則不會修改原始數據。如果為False,則對原始數據進行修改,并在函數返回之前將其放回,但可以通過減去和添加數據均值來引入較小的數值差異。注意,如果原始數據不是C-contiguous的,即使copy_x為False,也會復制。如果原始數據稀疏,但不采用CSR格式,即使copy_x為false,也會復制。
n_jobs int, default=None
用于計算的OpenMP線程數。并行性是在主cython循環上按示例順序進行的,該循環將每個樣本分配到其最近的中心。

None-1意味著使用所有處理器。

從0.23版n_jobs開始不推薦使用*:從0.23版*開始不推薦使用,并將在0.25版中刪除。
algorithm {“auto”, “full”, “elkan”}, default=”auto”
表示K-means要使用的算法。經典的EM式算法是“full”的。通過三角不等式,對于具有定義良好的簇的數據,“elkan”變化更為有效。但是,由于分配了一個額外的形狀數組(n_samples, n_clusters),所以內存更多。
目前,“auto”(為向后兼容而保留)選擇了“Elkan”,但它將來可能會改變,以獲得更好的啟發式。
return_n_iter bool, default=False
是否返回迭代次數
參數 說明
centroid ndarray of shape (n_clusters, n_features)
在k均值的最后一次迭代中發現的質心
label ndarray of shape (n_samples,)
label[i]是第i次觀察到的質心最接近的代碼或索引。
inertia float
inertia準則的最后值(訓練集中所有觀測到最近質心的平方距離之和)。
best_n_iter int
與最佳結果相對應的迭代次數。只有當return_n_iter被設置為True才會返回。