Skip to main content
Version: 2.17.1

K均值聚类

  • 算法介绍

    基于距离度量的划分算法,将数据点分为k个簇,并尽可能使各簇内数据的距离平方和最小。

  • 使用场景

    数据集中存在明显的簇结构或需要快速计算聚类时较优。

  • 优势介绍

  1. 速度较快,可以处理大规模数据集;
  2. 对大多数数据集都比较适用。
  • 劣势介绍
  1. 需要先确定聚类个数k;
  2. 对于非凸形状的聚类效果欠佳。
  • 参数介绍

    仅支持通过可视化方式,配置读取该组件参数,参数详情如下表所示:

页签参数参数名称是否必选参数描述默认值
数据源表名inputTable数据表
默认参数选择特征列selectedColNames输入表中选择特征列名类型。
模型参数聚类数n_clusters生成的聚类数。2
模型参数最大迭代数max_iter执行一次k-means算法所进行的最大迭代数。300
调优参数初始化次数n_init用不同的聚类中心初始化值运行算法的次数,最终解是在inertia意义下选出的最优结果。10
调优参数初始化方法init指定初始化方法包含k-means++和random。有三个可选值:k-means++,random或者ndarray向量。k-means++用一种特殊的方法选定初始聚类中发,可加速迭代过程的收敛。random随机从训练数据中选取初始质心。如果传递的是一个ndarray,则应该形如 (n_clusters, n_features) 并给出初始质心。k-means++
调优参数收敛误差tol与inertia结合来确定收敛条件。0.0001
调优参数初始化质心random_state可选用于初始化质心的生成器。如果值为一个整数,则确定一个seed。此参数默认值为numpy的随机数生成器。1
调优参数是否不改变原数据copy_x设为True,则原始数据不会被改变。设为False,则会直接在原始数据上做修改并在函数返回值时将其还原。True
  • 推荐参数值
  1. 聚类个数k值:2-20;
  2. 初始聚类中心种子选择方式:k-means++,random等;
  3. 最大迭代次数:500。
  • 调参建议
  1. 初始化方法对聚类结果的影响很大。可以采用k-means++、random、forgy、MacQueen等初始化方法来获得最优聚类结果;
  2. 调整迭代次数和收敛条件,以保证算法的收敛性和泛化能力;
  3. 对于高维数据集,可以尝试使用PCA或其他降维技术来减少特征数量,并提高聚类效果;
  4. 可以尝试不同的距离度量,如欧氏距离、曼哈顿距离等,以找到最合适的距离度量方式;
  5. 可以采用在K-Means算法之前进行层次聚类、密度聚类或模型聚类来筛选出优质种子点,能够有效提高K-Means的聚类性能。