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


Python sklearn MiniBatchKMeans用法及代碼示例


本文簡要介紹python語言中 sklearn.cluster.MiniBatchKMeans 的用法。

用法:

class sklearn.cluster.MiniBatchKMeans(n_clusters=8, *, init='k-means++', max_iter=100, batch_size=1024, verbose=0, compute_labels=True, random_state=None, tol=0.0, max_no_improvement=10, init_size=None, n_init=3, reassignment_ratio=0.01)

小批量K-Means 聚類。

在用戶指南中閱讀更多信息。

參數

n_clusters整數,默認=8

要形成的簇數以及要生成的質心數。

init{‘k-means++’, ‘random’},可調用或類似數組的形狀 (n_clusters, n_features),默認=‘k-means++’

初始化方法:

‘k-means++’:以智能方式為k-mean聚類選擇初始聚類中心以加速收斂。有關更多詳細信息,請參閱 k_init 中的注釋部分。

‘random’:從初始質心的數據中隨機選擇 n_clusters 觀測值(行)。

如果傳遞了一個數組,它的形狀應該是 (n_clusters, n_features) 並給出初始中心。

如果傳遞了一個可調用對象,它應該接受參數 X、n_clusters 和一個隨機狀態並返回一個初始化。

max_iter整數,默認=100

在獨立於任何早期停止標準啟發式停止之前,對完整數據集的最大迭代次數。

batch_size整數,默認=1024

小批量的大小。對於更快的計算,您可以將batch_size 設置為大於 256 * 內核數以在所有內核上啟用並行性。

verbose整數,默認=0

詳細模式。

compute_labels布爾,默認=真

一旦小批量優化收斂到合適的位置,計算整個數據集的標簽分配和慣性。

random_stateint、RandomState 實例或無,默認=無

確定質心初始化和隨機重新分配的隨機數生成。使用int 來確定隨機性。請參閱詞匯表。

tol浮點數,默認=0.0

根據平均中心平方位置變化的平滑 variance-normalized 測量的相對中心變化來控製提前停止。這種早期停止啟發式更接近用於算法的批處理變體的啟發式,但在慣性啟發式上會產生輕微的計算和內存開銷。

要禁用基於歸一化中心變化的收斂檢測,請將 tol 設置為 0.0(默認值)。

max_no_improvement整數,默認=10

根據不會對平滑慣量產生改進的小批量的連續數量來控製提前停止。

要禁用基於慣性的收斂檢測,請將max_no_improvement 設置為無。

init_size整數,默認=無

為加快初始化而隨機采樣的樣本數(有時會犧牲準確性):唯一的算法是通過在數據的隨機子集上運行批處理 KMeans 來初始化的。這需要大於 n_clusters。

如果 None ,則啟發式為 init_size = 3 * batch_size 如果 3 * batch_size < n_clusters ,否則為 init_size = 3 * n_clusters

n_init整數,默認=3

嘗試的隨機初始化次數。與 KMeans 相比,該算法僅運行一次,使用按慣性測量的最佳 n_init 初始化。

reassignment_ratio浮點數,默認=0.01

控製要重新分配的中心的最大計數的分數。較高的值意味著更容易重新分配低計數中心,這意味著模型將需要更長的時間來收斂,但應該收斂到更好的聚類中。但是,過高的值可能會導致收斂問題,尤其是在小批量的情況下。

屬性

cluster_centers_ndarray 形狀(n_clusters,n_features)

聚類中心的坐標。

labels_ndarray 形狀 (n_samples,)

每個點的標簽(如果 compute_labels 設置為 True)。

inertia_浮點數

如果 compute_labels 設置為 True,則與所選分區關聯的慣性標準的值。如果 compute_labels 設置為 False,則它是基於批量慣性 index 加權平均值的慣性近似值。慣性被定義為樣本到其聚類中心的平方距離之和,如果提供,則由樣本權重加權。

n_iter_int

整個數據集的迭代次數。

n_steps_int

處理的小批量數量。

counts_ndarray 形狀 (n_clusters,)

已棄用:屬性 counts_ 在 0.24 中已棄用,並將在 1.1 中刪除(重命名為 0.26)。

init_size_int

已棄用:屬性 init_size_ 在 0.24 中已棄用,並將在 1.1 中刪除(重命名為 0.26)。

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

擬合期間看到的特征名稱。僅當 X 具有全為字符串的函數名稱時才定義。

注意

參看https://www.eecs.tufts.edu/~dsculley/papers/fastkmeans.pdf

例子

>>> from sklearn.cluster import MiniBatchKMeans
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
...               [4, 2], [4, 0], [4, 4],
...               [4, 5], [0, 1], [2, 2],
...               [3, 2], [5, 5], [1, -1]])
>>> # manually fit on batches
>>> kmeans = MiniBatchKMeans(n_clusters=2,
...                          random_state=0,
...                          batch_size=6)
>>> kmeans = kmeans.partial_fit(X[0:6,:])
>>> kmeans = kmeans.partial_fit(X[6:12,:])
>>> kmeans.cluster_centers_
array([[2. , 1. ],
       [3.5, 4.5]])
>>> kmeans.predict([[0, 0], [4, 4]])
array([0, 1], dtype=int32)
>>> # fit on the whole data
>>> kmeans = MiniBatchKMeans(n_clusters=2,
...                          random_state=0,
...                          batch_size=6,
...                          max_iter=10).fit(X)
>>> kmeans.cluster_centers_
array([[1.19..., 1.22...],
       [4.03..., 2.46...]])
>>> kmeans.predict([[0, 0], [4, 4]])
array([0, 1], dtype=int32)

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.cluster.MiniBatchKMeans。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。