当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。