sklearn.cluster.MiniBatchKMeans?

class sklearn.cluster.MiniBatchKMeans(n_clusters=8, *, init='k-means++', max_iter=100, batch_size=100, 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)

[源碼]

Mini-Batch K-Means聚類

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

參數 方法
n_clusters int, default=8
要形成的簇數以及要生成的質心數。
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和一個隨機狀態,并返回一個初始化。
max_iter int, default=300
相對容忍度與Frobenius范數, 連續兩次迭代之間的聚類中心的差異聲明收斂。不建議將其設置為tol=0,因為由于舍入錯誤,可能永遠不會聲明收斂。用一個很小的數字代替。
batch_size int, default=100
小批次的大小
verbose int, default=0
詳細模式
compute_labels bool, default=True
一旦小批優化在合適的情況下收斂,計算完整數據集的標簽分配和inertia。
random_state int, RandomState instance, default=None 確定用于質心初始化的隨機數生成。使用整數使隨機性確定。見Glossary
tol float, default=0.0
根據平均中心平方位置變化的平滑、方差歸一化所測量的相對中心變化來控制早期停止。這種早期停止啟發式方法更接近于算法的批處理變體,但在inertia啟發式的基礎上引起了較小的計算和內存開銷。
max_no_improvement int, default=10
根據連續的小批數控制早期停止,這些小批次不會改善平滑的inertia。
若要禁用基于inertia的收斂檢測,請將max_no_improvement設置為None。
init_size int, default=None
為加速初始化而隨機抽樣的樣本數(有時以犧牲準確性為代價):唯一的算法是通過在數據的隨機子集上運行批處理KMeans來初始化的。需要大于n_clusters。
如果為Noneinit_size= 3 * batch_size
n_init int, default=3
嘗試的隨機初始化數。與KMeans相比,該算法只運行一次,使用inertia度量的n_init初始化中的最佳值。
reassignment_ratio float, default=0.01
控制要重新分配的中心的最大計數數的分數。較高的值意味著低計數中心更容易重新分配,這意味著模型將需要更長的時間來收斂,但應該在更好的聚類中收斂。
參數 屬性
cluster_centers_ ndarray of shape (n_clusters, n_features)
簇中心坐標
labels_ int
每個點的標簽(如果計算標簽設置為True)。
inertia_ float
與所選分區相關聯的inertia準則的值(如果計算標簽設置為True)。inertia被定義為樣本到最近鄰居的平方距離之和。

另見

  • KMeans

    基于勞埃德算法的聚類方法的經典實現。它在每次迭代時消耗整個輸入數據集。

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

示例

>>> from sklearn.cluster import MiniBatchKMeans
>>> import numpy as np
>>> X = np.array([[12], [14], [10],
...               [42], [40], [44],
...               [45], [01], [22],
...               [32], [55], [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.54.5]])
>>> kmeans.predict([[00], [44]])
array([01], 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([[3.959183672.40816327],
       [1.121951221.3902439 ]])
>>> kmeans.predict([[00], [44]])
array([10], dtype=int32)

方法

方法 說明
fit(self, X[, y, sample_weight]) 將其分塊成小批, 計算X上的質心,
fit_predict(self, X[, y, sample_weight]) 計算聚類中心并預測每個樣本的聚類索引
fit_transform(self, X[, y, sample_weight]) 計算聚類并將X變換成簇距離空間
get_params(self[, deep]) 獲取此估計器的參數
predict(self, X[, sample_weight]) 預測X中每個樣本所屬的最接近的聚類
score(self, X[, y, sample_weight]) K-均值目標上X值的相反
set_params(self, **params) 設置此估計器的參數
transform(self, X) 將X轉換為簇距離空間
__init__(self, n_clusters=8, *, init='k-means++', max_iter=100, batch_size=100, 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)

[源碼]

初始化self。請參閱help(type(self))以獲得準確的說明。

fit(self, X, y=None, sample_weight=None)

[源碼]

通過把它分塊成小批,計算X上的質心

參數 說明
X array-like or sparse matrix, shape=(n_samples, n_features)
要對訓練實例進行聚類。必須注意的是,數據將轉換為C順序,如果給定的數據不是C-連續的,這將導致內存副本
y Ignored
未使用,在此按約定呈現為API一致性。
sample_weight array-like, shape (n_samples,), optional
X中每個觀測值的權重。如果沒有,則所有觀察值都被賦予相同的權重(默認值:None)。

New in version 0.20.
返回值 說明
self -
fit_predict(self, X, y=None, sample_weight=None)

[源碼]

計算聚類中心并預測每個樣本的聚類索引

方便方法;等價于調用 fit(X)后接predict(X)。

參數 說明
X {array-like, sparse matrix} of shape (n_samples, n_features)
要轉換的新數據
y Ignored
未使用,在此按約定呈現為API一致性。
sample_weight array-like of shape (n_samples,), default=None
X中每個觀測值的權重,如果沒有,則所有觀測值都被賦予相同的權重。
返回值 說明
labels ndarray of shape (n_samples,)
每個樣本所屬的聚類索引
fit_transform(self, X, y=None, sample_weight=None)

[源碼]

計算聚類并將X變換成簇距離空間

等效于 fit(X).transform(X),但更有效地實現。

參數 說明
X {array-like, sparse matrix} of shape (n_samples, n_features)
要轉換的新數據
y Ignored
未使用,在此按約定呈現為API一致性。
sample_weight array-like of shape (n_samples,), default=None
X中每個觀測值的權重,如果沒有,則所有觀測值都被賦予相同的權重。
返回值 說明
labels array of shape (n_samples, n_clusters)
X在新空間中的變換
get_params(self, deep=True)

[源碼]

獲取此估計器的參數

參數 說明
deep bool, default=True
如果為True,則將返回此估計器的參數和所包含的作為估計量的子對象。
返回值 說明
params mapping of string to any
映射到其值的參數名稱
partial_fit(self, X, y=None, sample_weight=None)

[源碼]

在單個小型批次X上更新k均值的估計

參數 說明
X array-like of shape (n_samples, n_features)
聚類數據點的坐標。必須注意的是,如果X不是C-連續的,它就會被復制。
y Ignored
未使用,在此按約定呈現為API一致性。
sample_weight array-like of shape (n_samples,), default=None
X中每個觀測值的權重,如果沒有,則所有觀測值都被賦予相同的權重。(默認值:None)
返回值 說明
self -
predict(self, X, sample_weight=None)

[源碼]

預測X中每個樣本所屬的最近簇。

在矢量量化文獻中,cluster_centers_稱為==代碼簿==,返回的每個值predict都是代碼簿中最接近的代碼的索引。

參數 說明
X {array-like, sparse matrix} of shape (n_samples, n_features)
用于預測的新數據。
sample_weight array-like, shape (n_samples,), optional
X中每個觀測值的權重。如果為None,則為所有觀測值分配相等的權重(默認值:None)。
返回值 說明
labels array, shape [n_samples,]
每個樣本所屬的簇的索引。
score(self, X, y=None, sample_weight=None)

[源碼]

K-均值目標上X值的相反

參數 說明
X {array-like, sparse matrix} of shape (n_samples, n_features)
新數據
y Ignored
未使用,在此按約定呈現為API一致性。
sample_weight array-like of shape (n_samples,), default=None X中每個觀測值的權重,如果沒有,則所有觀測值都被賦予相同的權重。
返回值 說明
score float
與K-均值目標上的X值相反.
set_params(self, **params)

[源碼]

設置此估計器的參數

該方法適用于簡單估計器以及嵌套對象(例如pipelines)。后者具有表單的 <component>__<parameter>參數,這樣就可以更新嵌套對象的每個組件。

表格 說明
**params dict
估計器參數
返回值 說明書
self object
估計器實例
transform(self, X)

[源碼]

將X轉換為簇距離空間

在新空間中,每個維度都是到聚類中心的距離。注意,即使X是稀疏的,通過transform返回的數組通常也是密集的。

參數 說明
X {array-like, sparse matrix} of shape (n_samples, n_features)
新數據
返回值 說明
X_new ndarray of shape (n_samples, n_clusters)
X在新空間中的變換