聚类是什么
先看一眼画面:聚类就是把「只有坐标、没有名字」的一堆点,按彼此远近自动分成几团。理解了这张图,再区分它和「分类」的关键差别。
聚类在干嘛
无标签数据 → 自动分组新手最容易混的就是聚类(clustering)和分类(classification):它们看起来都在「分组」,但一个有老师、一个没老师,目标根本不同。
- 先有标签:训练数据已经标好「这是猫 / 这是狗」。
- 学的是规则:从已知答案里学会「怎么把新样本对号入座」。
- 组是预先定好的:类别名字、有几类,事先就知道。
- 例:垃圾邮件识别、根据病历判断良性/恶性。
- 没有标签:谁都不知道每个点「正确」属于哪组。
- 找的是结构:让机器自己发现数据里天然的聚集。
- 组是跑出来的:有几组、每组什么含义,事后由人解读。
- 例:把用户按行为自动分群、给文章按主题归堆。
聚类靠什么分组
所有聚类算法的共同地基只有一个词:距离。机器没有「像不像」的直觉,它把相似度换算成空间里的远近——离得近 = 相似,离得远 = 不相似。
把每个样本看成空间里的一个点(有几个特征就是几维),两点之间的距离越小,就越相似。最常用的是欧氏距离,也就是我们最熟悉的「直线距离」——勾股定理量出来的那种。算法做的事,本质都是「让同一簇里点与点的距离尽量小」。
按距离判定归属
量到各簇,归最近的四大主流算法
它们的差别在于「怎么定义一个簇」。每张卡:左栏讲思路,右栏打个比方帮你记住,底部一行点出它的软肋与适用。
K-means · K 均值
最常用 · 基于中心先人为定好要分几簇(K),随机撒下 K 个「中心点」,然后反复做两件事:把每个点归到最近的中心(分配),再把每个中心移到自己这群点的平均位置(更新)。重复到中心不再动,就分好了。
操场上站着 K 个班主任,学生各自跑向离自己最近的老师;老师再走到自己学生堆的正中间;学生重新就近站队……来回几轮,大家就稳定地围成 K 堆。
轮数不固定,中心趋于稳定就自动停。
层次聚类 · Hierarchical
不断合并 · 出一棵树一开始把每个点当成一个独立小簇,然后反复把最近的两个簇合并成一个,簇越并越大,最终并成一棵树状图(dendrogram)。想分几簇?在树的某个高度横切一刀就行——切点决定了簇数。
像生物分类树:个体 → 物种 → 属 → 科……一路往上合并。你想要多粗的分类,就在相应高度切一刀:切得低,组多而细;切得高,组少而粗。
DBSCAN · 基于密度
连成片 · 能识别噪声不靠中心,靠密度:点扎堆密的地方,彼此能「连成片」的归为一簇;待在稀疏地带、连不上任何簇的点,直接判为噪声 / 离群点,不强行归类。因此它能找出任意形状的簇。
看夜晚的卫星地图:灯火连成一片的是城市(一个簇),哪怕城市是弯曲的带状;荒野里零星几点孤灯,就是噪声,不属于任何城市。
GMM · 高斯混合
软聚类 · 给概率假设数据是由几个高斯「钟形团」叠加而成,算法去反推每个团的位置和胖瘦,然后给每个点算出「属于各个团的概率」。所以它是软聚类:一个点不是非此即彼,而是「70% 像 A、30% 像 B」。
只知道身高,猜一个 175cm 的人是男是女:不必硬判,而是说「约 70% 像男生群、30% 像女生群」。两个群在边界处本就重叠,概率比一刀切更贴近真实。
横向对比
同一份数据,不同算法切出来可能天差地别。先看一个最能暴露差异的例子,再用一张表把四者并排。
数据是「一团核心 + 外面一圈环」。K-means 只会按到中心的距离做直线划分,硬生生把环和核心都劈成两半;DBSCAN 按密度连通,正确认出「核心是一簇、外环是一簇」。这就是为什么 K-means 不等于聚类的全部。
环形数据上的对照
K-means vs DBSCAN分几簇与分得好不好
需要定 K 的算法(K-means、GMM)绕不开两个问题:该分几簇?分完怎么判断好坏?——注意,聚类没有标准答案,这两件事给的都是「参考」。
试着把 K 取 2、3、4、5……每个 K 都算一遍「簇内的总离散程度」(点离自己中心有多散)。K 越大这个值越小,但下降会越来越不划算。把它画成曲线,会出现一个像手肘的拐点——拐点处的 K 通常就是性价比最高的选择。
对每个点问两件事:它离自己簇内的伙伴有多近?又离最近的那个别的簇有多远?「组内紧、组间远」就是好。把所有点综合成一个分数,范围 −1 ~ 1:越接近 1 越好,接近 0 说明簇之间黏在一起,负数则意味着有点被分错了组。
易混点与上手
几个最容易栽的认知坑,一张「该用谁」的决策卡,以及一条最短的实践路径。
数据大致成团 / 球状、规模大要跑得快、且能大致估计有几类——这是最省心的默认选择。
形状怪 / 带噪声 → DBSCAN;想要层级关系或不确定 K → 层次聚类;想要概率归属 / 椭圆簇 → GMM。
第 1 步
选特征 + 标准化:先想清「按什么算相似」,挑出相关特征,把它们缩放到同一尺度。这一步比选算法更影响结果。
第 2 步
按数据形态选算法:成团→K-means;带噪声/怪形状→DBSCAN;要层级→层次;要概率→GMM。先从 K-means 起步。
第 3 步
看结果再迭代:降维到 2D 画出来、算轮廓系数,再结合业务判断是否合理,然后调 K / 调参数重来。