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。 如果為 None ,init_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被定義為樣本到最近鄰居的平方距離之和。 |
另見
基于勞埃德算法的聚類方法的經典實現。它在每次迭代時消耗整個輸入數據集。
注
參見: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([[3.95918367, 2.40816327],
[1.12195122, 1.3902439 ]])
>>> kmeans.predict([[0, 0], [4, 4]])
array([1, 0], 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在新空間中的變換 |