dask_ml.cluster.KMeans

dask_ml.cluster.KMeans

class dask_ml.cluster.KMeans(n_clusters=8, init='k-means||', oversampling_factor=2, max_iter=300, tol=0.0001, precompute_distances='auto', random_state=None, copy_x=True, n_jobs=1, algorithm='full', init_max_iter=None, n_init='auto')[源代码]

可扩展的 KMeans 用于聚类

参数
n_clustersint, 默认 8

最终得到的聚类数量

初始化{‘k-means||’, ‘k-means++’ 或 ndarray}

中心初始化方法,默认为 ‘k-means||’。

‘k-means||’ : 选择 gg

‘k-means++’ : 以一种智能的方式选择初始聚类中心,以加快收敛速度。使用scikit-learn的实现。

警告

如果使用 'k-means++' ,整个数据集将被一次性读入内存。

一个形状为 (n_clusters, n_features) 的数组可以用来给出一个显式的起点

oversampling_factorint, 默认值为 2

k-means|| 算法中使用的过采样因子。

max_iter整数

尝试的最大 EM 迭代次数。

init_max_iter整数

初始步骤的迭代次数。

tol浮动

关于惯性的相对容差以声明收敛

算法‘完整’

用于EM步骤的算法。仅允许使用“full”(Lloyd算法)。

random_stateint, RandomState 实例或 None, 可选, 默认: None

如果为整数,random_state 是随机数生成器使用的种子;如果为 RandomState 实例,random_state 是随机数生成器;如果为 None,随机数生成器是 np.random 使用的 RandomState 实例。

n_init‘auto’ 或 int, 默认值=10

k-means 算法将以不同的质心种子运行多次。最终结果将是 n_init 次连续运行中惯性最小的输出。当 n_init=’auto’ 时,如果使用 init=’random’,运行次数将为 10,如果使用 init=’kmeans++’,运行次数将为 1。 .. versionadded:: 1.2

n_init 添加了 ‘auto’ 选项。

在 1.4 版更改: n_init 的默认值将在版本 1.4 中从 10 更改为 ‘auto’

属性
cluster_centers_np.ndarray [n_clusters, n_features]

包含聚类中心的NumPy数组

标签_da.array [n_samples,]

一个dask数组,包含该样本所属的``cluster_centers_``中的索引位置。

inertia_浮动

样本到其最近聚类中心距离的总和。

n_iter_整数

达到收敛所需的EM步骤数

注释

此类实现了 k-Means 的并行和分布式版本。

使用k-means||进行初始化

KMeans 的默认初始化方法是 k-means||,与 scikit-learn 中的 k-means++ 不同。这是在 Scalable K-Means++ (2012) 中描述的算法。

k-means|| 设计用于在分布式环境中表现良好。它是 k-means++ 的一个变体,专为并行工作设计(k-means++ 本质上是顺序的)。目前,如果您的整个数据集适合单台机器的内存,这里的 k-means|| 实现比 scikit-learn 的 k-means++ 慢。如果是这种情况,请考虑使用 init='k-means++'

并行Lloyd算法

Lloyd 算法(scikit-learn 中使用的默认期望最大化算法)是自然可并行化的。在简单的基准测试中,这里的实现比 scikit-learn 快 2-3 倍。

初始化步骤和EM步骤都会对数据进行多次遍历。如果可能,在运行 .fit 之前,请将您的dask集合持久化到(分布式)内存中。

参考文献

方法

fit_transform(X[, y])

拟合数据,然后进行转换。

get_metadata_routing()

获取此对象的元数据路由。

get_params([deep])

获取此估计器的参数。

predict(X)

预测X中的每个样本最接近的簇。

set_output(*[, transform])

设置输出容器。

set_params(**params)

设置此估计器的参数。

拟合

变换

__init__(n_clusters=8, init='k-means||', oversampling_factor=2, max_iter=300, tol=0.0001, precompute_distances='auto', random_state=None, copy_x=True, n_jobs=1, algorithm='full', init_max_iter=None, n_init='auto')[源代码]