请解释 k-means 聚类算法的基本流程,并说明可以用哪些指标或方法来衡量一个聚类结果的好坏?
考察说明
考查对 k-means 算法原理和聚类评估方法的理解。
回答思路
- 【回答框架 1】k-means 是一种基于划分的聚类算法,核心思想是把 n 个样本划分到 k 个簇中,使得簇内样本相似度高、簇间相似度低。流程为:先随机选 k 个初始质心,然后迭代执行两步——将每个样本分配到距离最近的质心所属簇,再重新计算每个簇的质心(即簇内样本均值),直到质心变化很小或达到最大迭代次数。
- 【回答框架 2】评估聚类效果分内部指标和外部指标两类。内部指标不需要真实标签,常见的有轮廓系数,它结合簇内紧密度和簇间分离度,取值范围是 -1 到 1,越接近 1 说明聚类越合理;还有 Davies-Bouldin 指数,其值越小表示簇间分离越好,簇内越紧凑。
- 【回答框架 3】外部指标需要知道真实类别标签,比如纯度、调整兰德指数和 NMI(归一化互信息)。调整兰德指数衡量聚类结果与真实标签的吻合程度,取值范围接近 1 时说明结果越接近真实划分;NMI 也常用于比较聚类结果的一致性。
- 【回答框架 4】实际评估中,选择内部指标可以用于选择最佳的 k 值,比如画轮廓系数随 k 变化的曲线,选取峰值对应的 k。同时要结合业务含义,观察每个簇的样本特征是否具有可解释性,不能只依赖单一指标。
- 【关键点 1】k-means 本质是迭代优化簇内平方误差和(SSE),目标函数随迭代逐步减小。
- 【关键点 2】轮廓系数、Davies-Bouldin 指数是常用的无监督评估指标,分别对应簇内紧密度和簇间分离度。
- 【关键点 3】外部指标(如调整兰德指数、NMI)需要真实标签,适合有标注的验证场景。
- 【关键点 4】选择 k 值时,可结合肘部法和轮廓系数,同时考虑计算资源和业务可解释性。
- 【易错点 1】不能只看 SSE 越小越好,因为随着 k 增大 SSE 总会下降,容易过拟合。
- 【易错点 2】轮廓系数对数据分布和距离度量敏感,不同相似度定义下结论可能不同。
- 【易错点 3】k-means 对初始质心敏感且只能发现凸形簇,评估指标再高也无法弥补算法本身的假设限制。