跳到主内容
快讯直播
AI智模界
AI 词典

K-Means 聚类:给没有标签的数据自动分堆

一句话定义:K-Means 聚类(K-Means Clustering)是一种无监督学习方法,它把一堆没有标注的数据按"彼此离得近"的原则分成 K 个组,每个组用一个中心点(质心,centroid)代表。

它怎么工作的

想象一场活动结束后,会议室里散落着几十把椅子,位置乱七八糟。你被要求把它们归成 5 堆,要求是"同一堆里的椅子尽量挨着"。你会怎么做?很自然的做法是:先随便找 5 个位置当作临时堆放点,然后每把椅子就近归队;归完之后,每堆重新算一个"平均位置"作为新的堆放点,再让所有椅子重新就近归队。反复几轮,堆放点基本不动了,分组也就稳定了。

K-Means 就是这套动作的数学版:

1. 先选定 K 个初始质心(K 由人指定);

2. 把每个数据点分给离它最近的质心;

3. 每个簇重新计算均值,作为新质心;

4. 重复 2、3,直到质心几乎不再移动。

这里的"近"通常指欧氏距离(Euclidean distance)。它优化的是"每个点到所属质心的距离平方和"最小,这个目标函数一路单调下降,所以一定会收敛,但收敛到的可能是局部最优,不一定全局最优。

和相邻概念的区别

概念有没有标签干什么典型特点
K-Means分成 K 个簇快、可扩展,但要点 K、怕异常值
KNN(K 近邻)分类/回归预测是监督学习,别和 K-Means 混为一谈
层次聚类生成一棵聚类树不用先定 K,但数据量大时慢
DBSCAN按密度分簇能识别噪声点和不规则形状

两个敏感的软肋

一是初始点。 如果 5 个临时堆放点恰好都落在同一片角落,结果很可能分得很歪。实践中常用 K-Means++ 这类策略让初始质心尽量互相分散,并且用不同随机种子多跑几次取最好的结果。

二是异常值。 因为每轮用的是"均值",一个远离大部队的点会把质心整个拽偏。所以用 K-Means 之前通常要先看分布、处理极端值;如果数据里噪声本来就多,K-Medoids 或 DBSCAN 往往更合适。

另外,K 本身要人来定。常用肘部法(elbow method)看"再增加一个簇还能不能明显降低距离平方和",或者用轮廓系数(silhouette score)衡量分得紧不紧、分得开不开。

对实际工作的意义

K-Means 是"没有标准答案时先看出结构"的入门工具:电商用它把用户按消费行为分成几类人群,运维用它把日志或指标归成几种模式,图像处理用它做颜色量化压缩。它算得快、好实现、结果好解释,适合当探索数据的第一步。

但要记住它的性格:它假设簇是"团状、大小差不多"的,对量纲、初始值和异常值都敏感。所以真正落地时,标准化数据、选好 K、多跑几次,这三步几乎跑不掉。具体实现细节和参数默认值,以所用库的官方文档为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。