K均值聚类
算法介绍
基于距离度量的划分算法,将数据点分为k个簇,并尽可能使各簇内数据的距离平方和最小。
使用场景
数据集中存在明显的簇结构或需要快速计算聚类时较优。
优势介绍
- 速度较快,可以处理大规模数据集;
- 对大多数数据集都比较适用。
- 劣势介绍
- 需要先确定聚类个数k;
- 对于非凸形状的聚类效果欠佳。
参数介绍
仅支持通过可视化方式,配置读取该组件参数,参数详情如下表所示:
页签 | 参数 | 参数名称 | 是否必选 | 参数描述 | 默认值 |
---|---|---|---|---|---|
数据源 | 表名 | 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 |
- 推荐参数值
- 聚类个数k值:2-20;
- 初始聚类中心种子选择方式:k-means++,random等;
- 最大迭代次数:500。
- 调参建议
- 初始化方法对聚类结果的影响很大。可以采用k-means++、random、forgy、MacQueen等初始化方法来获得最优聚类结果;
- 调整迭代次数和收敛条件,以保证算法的收敛性和泛化能力;
- 对于高维数据集,可以尝试使用PCA或其他降维技术来减少特征数量,并提高聚类效果;
- 可以尝试不同的距离度量,如欧氏距离、曼哈顿距离等,以找到最合适的距离度量方式;
- 可以采用在K-Means算法之前进行层次聚类、密度聚类或模型聚类来筛选出优质种子点,能够有效提高K-Means的聚类性能。