You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

K-means聚类轮廓系数过低、效果不佳问题排查

现有操作流程的核心错误

K-means聚类得分异常低、和层次聚类结果差距极大,核心是流程中存在4个明确问题:

  • 轮廓系数计算传入错误数据集:K-means和层次聚类均在归一化处理后的Xnorm上完成训练,但计算轮廓系数时传入的是未缩放的原始data。轮廓系数基于样本间欧氏距离计算,未归一化数据中量纲更大的特征会完全主导距离结果,和模型训练时的特征空间完全错位,计算出的得分没有参考价值。
  • 分类变量编码逻辑存在缺陷:
    1. 教育水平的整数映射打乱了真实层级顺序:教育程度从低到高的真实排序为Partial High School(未完成高中)< High School(高中毕业)< Partial College(未完成大学)< Bachelors(本科)< Graduate Degree(研究生),自定义的映射数值和这个递进逻辑不匹配,人为扭曲了特征间的距离关系。
    2. 如果数据集包含无序分类变量(如性别、职业、婚姻状态等无大小顺序的特征),直接做整数映射会强行给类别加上等距的线性关系,比如将“男”映射为1、“女”映射为2,模型会默认两类间的距离为1,和其他数值特征的距离混同计算,彻底破坏特征空间的合理性。
  • 不同算法的对比参数不对等:运行K-means时设置簇数为10,运行层次聚类时设置簇数为3。轮廓系数对簇数量敏感度极高,不同簇数下的得分不具备可比性,无法直接据此判断算法效果的优劣。
  • 层次聚类的结果参考性不足:标准层次聚类的时间、空间复杂度在O(n²)到O(n³)区间,6万行规模的全量数据跑层次聚类会占用极高内存,常规计算资源很难正常运行。如果是在抽样得到的小样本上跑出0.54的轮廓系数,和全量数据上训练的K-means结果不存在对比基础。
K-means效果优化方案
  • 修正基础代码错误
    • 聚类评估必须传入和模型训练完全一致的数据集,计算轮廓系数时用Xnorm替换原始data,保证距离计算逻辑和训练阶段统一。
    • 对比不同聚类算法效果时,必须对齐簇数量、训练数据集、评估指标三个核心变量,否则对比结论无效。
  • 调整特征工程逻辑
    • 有序分类变量严格按照真实的层级顺序做整数映射,保证数值大小和实际等级递进关系一致。
    • 无序分类变量不要使用整数映射,改用独热编码转换;如果数据集中混合类型特征占比较高,可以直接用适配数值+分类混合数据的K-prototypes算法替代K-means,避免编码带来的距离扭曲。
    • 提前做特征相关性筛查,剔除相关性高于0.9的冗余特征,避免重复特征主导距离计算;如果噪声特征较多,可以先用PCA降维保留90%左右的方差后再开展聚类,降低噪声对结果的干扰。
  • 针对性调优K-means
    • 不要主观设置簇数,通过肘部法则、轮廓系数遍历k值在2~15区间的训练结果,选择轮廓系数最高、簇内误差平方和下降趋于平缓的k值作为最优簇数,可以先测试k=3(和层次聚类设置的簇数对齐)的效果。
    • 如果完成上述调整后K-means效果仍然不佳,说明数据分布不符合K-means的前提假设(K-means更适配凸形、大小相近、方差相近的簇),可以换用HDBSCAN、高斯混合模型(GMM)这类对簇形状适配性更强的聚类算法。

内容的提问来源于stack exchange,提问作者Fábio Pires

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 18:45:37