☰
10分钟掌握《机器学习》第九章-聚类
2026/10/28 6:07:46 网站建设 项目流程

📖《机器学习》第9章·通俗解读 | 聚类:让数据自己“物以类聚”

前面几章(分类、回归)都是有“标准答案”的监督学习。
这一章我们进入无监督学习——数据没有标签,没有人告诉你哪个是好瓜、哪个是坏瓜。
聚类的任务就是:让计算机自动把相似的数据归到一起。
就像你收拾衣柜:不用别人告诉你怎么分,你自己就会把上衣、裤子、袜子分开。
聚类就是这个“自动分类”的过程。


1. 聚类任务:没有答案的分组

给定一堆西瓜,只有特征(色泽、根蒂、敲声、密度、含糖率),没有“好瓜/坏瓜”的标签。
聚类算法会根据特征相似度,自动把它们分成几个簇(cluster)。

  • 每个簇里的瓜彼此相似

  • 不同簇之间的瓜差异较大

至于每个簇代表什么意义(比如“早熟品种”、“晚熟品种”、“耐存储品种”),需要你来解读。

聚类常用于:

  • 客户分群(电商把用户分成几类:价格敏感型、品牌忠诚型、冲动消费型……)

  • 图像分割(把图片里的前景、背景分开)

  • 异常检测(孤零零的点可能是异常)


2. 性能度量:怎么判断聚类好不好?

没有标准答案,怎么评价聚类结果?
从两个角度:

  • 外部指标:如果有外部“参考答案”(比如专家事先分好的类),可以对比聚类结果与参考答案的吻合程度。

  • 内部指标:没有任何参考答案,只从聚类结果自身判断。

内部指标的核心思想:
簇内越紧凑越好(组内样本距离小),簇间越分离越好(不同组距离大)。

常见内部指标:

  • DBI(Davies-Bouldin Index):所有簇中,“每对最相似的簇” 的(簇内分散度之和 ÷ 簇间距离)的平均值,越小越好

  • DI(Dunn Index):簇间最小距离 / 簇内最大距离,越大越好

通俗理解:
你希望班上分组讨论时,组内同学坐得近(方便讨论),组与组离得远(不互相干扰)。
DBI 小 = 组内紧、组间远;DI 大 = 同样意思。


3. 距离计算:相似度的“尺子”

聚类的基础是距离(或相似度)。
常用距离:

  • 欧氏距离:直线距离(最常见的)

  • 曼哈顿距离:沿着坐标轴走的“街区距离”

  • 闵可夫斯基距离:欧氏和曼哈顿的广义形式

属性类型不同,处理方法也不同:

  • 有序属性(如“大、中、小”):可以直接用数字差值,因为大小关系天然存在。

  • 无序属性(如“红、绿、蓝”):不能直接数字差,要用 VDM 等方法,通过比较各取值在各类中的出现频率来算距离。

如果属性之间重要性不同,可以给每个特征加权。


4. 原型聚类:用“中心点”代表一个簇

4.1 k-means(最经典的聚类算法)

步骤超简单:

  1. 随机选 k 个点作为初始“中心”

  2. 把每个样本分配给最近的中心

  3. 重新计算每个簇的中心(均值)

  4. 重复 2-3 直到中心不再变化

就像选班长:先随机选几个候选人,然后大家选离自己最近的班长,选完后重新计算每个班长的“代表位置”,再重新分班,直到稳定。

k-means 的缺点:

  • 要提前指定 k(分成几组)

  • 对初始中心敏感(不同起点可能得到不同结果)

  • 只适合“凸形”簇(球状),不适合细长、环状等复杂形状

4.2 学习向量量化(LVQ)

LVQ 假设样本有标签(但聚类时不用标签,而是用它来辅助找到更好的原型)。
它和 k-means 类似,但更新规则不同:
如果样本和最近的原型标签相同,原型向样本靠近;否则远离。

这是“半监督”聚类的雏形(后面会有专门的半监督章节)。

4.3 高斯混合聚类(GMM)

k-means 用“点”代表簇,GMM 用“概率分布”代表簇——每个簇是一个高斯分布(钟形曲线)。
一个样本属于哪个簇不是“非黑即白”,而是概率(软聚类)。

就像说一个人“60% 像南方人,40% 像北方人”,而不是硬说他是南方人。
训练 GMM 常用EM 算法(第七章学过),迭代估计每个高斯分布的均值和方差,以及每个样本属于各个簇的概率。

GMM 能处理椭圆形的簇,比 k-means 更灵活。


5. 密度聚类:按“拥挤程度”分组

k-means 这类算法对形状敏感,如果数据像“月牙”或“圆环”,它们就分不好了。
密度聚类不看距离中心,看的是局部密度:
哪里密集,哪里就成一个簇;稀疏的地方就是边界或噪声。

DBSCAN是代表算法。
它有两个参数:

  • ε(半径):多大范围算“邻居”

  • MinPts(最小点数):多少个邻居才算“核心点”

核心思想:

  • 如果一个点周围 ε 内有至少 MinPts 个点,它就是核心点

  • 核心点能“密度直达”邻居点

  • 通过密度直达传播,形成密度相连的区域 → 一个簇

  • 不被任何核心点覆盖的点就是噪声

就像在人群里找团伙:
每个人有一个“社交距离”,如果一个人周围一臂距离内有超过 5 个人,他就是“核心人物”;
核心人物的朋友也加入团伙;
落单的人就是“噪声”。

DBSCAN 不用预先指定 k,能发现任意形状的簇,还能自动识别噪声点。


6. 层次聚类:画一棵“家族树”

层次聚类不直接给出分组,而是画一棵树状图(dendrogram),你可以从不同高度“切割”得到不同数量的簇。

有两种策略:

  • 自底向上(凝聚式):每个样本先自成一簇,然后每次合并距离最近的两个簇,直到只剩一个簇。

  • 自顶向下(分裂式):所有样本在一个簇,然后每次分裂最“散”的簇。

就像做家族谱:你可以从最底层(每个人)开始,把最像的人合并成小家庭,小家庭合并成大家族,最后成一整个村;你从哪个高度砍一刀,就得到不同精细度的分组。

AGNES是自底向上的典型。
簇间距离的计算方式不同,得到不同性质的结果:

  • 单链接:两个簇最近样本的距离(容易形成长链)

  • 全链接:两个簇最远样本的距离(倾向于球形簇)

  • 均链接:所有样本对距离的平均值(折中)


📌 第九章总结(背下这5句就够了)

  1. 聚类= 无监督学习,自动把相似样本归为一簇

  2. 性能度量:簇内紧凑、簇间分离(DBI 越小越好,DI 越大越好)

  3. 距离计算:欧氏距离最常用;有序/无序属性要区别对待

  4. k-means:最经典,用中心点代表簇,但需指定 k 且只适合球形簇

  5. DBSCAN:密度聚类,能发现任意形状簇,自动识别噪声


👇 下章预告

第十章讲降维与度量学习。
高维数据有“维度灾难”问题——太稀疏、难计算。
降维就是把高维数据压缩到低维,同时尽量保留重要信息。
你会学到 PCA(主成分分析)、流形学习(t-SNE 等),以及怎么学习一个“定制”的距离度量。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询