P1-8.2 无监督学习:结构与表征¶
Section ID:
P1-8.2Version:v2026.07.20
8.1 已经把 label 说明成贴在数据上的区分标记。监督学习则是在同时给出 input 与 label 的例子中,去拟合输入与输出的关系。
这一节从相反的一侧开始。unsupervised learning 是一种不依赖人事先贴好标签,而是试图在数据内部寻找 structure、cluster 和 representation 的学习方式。
这一节的核心问题是:
当没有标签时,
模型到底试图在数据里找到什么?无监督学习并不是“完全没有标准地乱学”,
而是在没有人提供标签的情况下,去寻找数据内部的结构。
这一节会把 unsupervised learning、structure、clustering、dimensionality reduction 和 cluster label 统一放到一个视角下理解:在没有标签的数据里寻找结构。label 与 supervised learning 的基线已经在 8.1 固定,representation 的基础感觉则在 3.3 和 4.3 先出现过。
这一节不会计算具体的无监督学习算法。K-means、hierarchical clustering、PCA、t-SNE 和 autoencoder 只会以名称和作用的形式略过。
这一节也先固定 没有标签时模型试图在数据里寻找什么。Distance function、the curse of dimensionality 和 cluster evaluation metric 会在 Part 4 的 clustering 与 dimensionality reduction 章节回来;manifold learning 的细部数学这里先不展开。
这里也不会再次长篇定义 label。它的基础区分已经在 8.1 固定。这里聚焦的是 没有标签时什么会成为学习标准。representation 也不是这一节第一次引入的新词;这里只抓住无监督学习可以为了显露结构而改变表示这一连接。
这里先采用一个工作定义:
无监督学习,就是在没有人附加标签的情况下,
从数据内部寻找结构、聚类或表征的方法。
不依靠标签寻找结构与表征的方式¶
- 把无监督学习说明成“从无标签数据中寻找结构”的学习方式。
- 理解“没有标签”并不等于“没有目标”或“没有标准”。
- 在入门层面区分 clustering 与 dimensionality reduction。
- 避免把
cluster label和人附加的监督学习标签混为一谈。 - 不把无监督学习和监督学习、强化学习、深度学习压成同一种分类。
三个基准¶
| 基准 | 为什么重要 | 本节需要达到的理解程度 |
|---|---|---|
| 无监督学习是在没有标签时寻找数据内部结构 | 这是它和监督学习最基础的边界。 | 理解它是在没有现成答案标签时寻找“相似、聚合或隐藏轴”即可。 |
| 结果不会自动自带意义,仍然需要人解释 | 这能减少把 cluster 或降维结果直接读成真相的错误。 | 理解即使模型分出了组,给这些组起什么业务名字仍然是人的工作。 |
| clustering、dimensionality reduction 等问题问的并不一样 | 这能防止把“无监督学习”当成某一种单独技术。 | 至少先能区分“什么彼此相似”“怎样把维度压缩下来看”“结构在哪里变得密集”。 |
先做一个角色分拆:
| 术语 | 极短含义 | 本节里的作用 |
|---|---|---|
| unsupervised learning | 不依赖标签,通过寻找结构来学习 | Chapter 8 的第二个基准点 |
| structure | 数据内部的关系与模式 | 这一节的中心概念 |
| clustering | 把相似的东西聚在一起 | 代表性的无监督学习问题 |
| dimensionality reduction | 用更少的轴重新看高维数据 | 让结构更容易被看见的代表问题 |
| representation | 数据在模型内部呈现出来的形式 | 让结构可见的角度 |
| cluster label | 算法生成的分组编号或标记 | 必须和监督学习标签区分开的对象 |
没有标签,不等于没有目标¶
很多人第一次听到 unsupervised,会以为这里什么引导都没有。更准确的说法只是:这里没有人预先贴好的标签。
人没有事先贴好标签,
但目标仍然存在:要从数据内部找到结构。
Google 的 Machine Learning Glossary 也把 unsupervised learning 说明成:让模型在 unlabeled examples 中寻找模式。如果监督学习是按给定标签去拟合输出,那么无监督学习看的就是数据本身的排布与关系。
假设我们有这样一组客服消息:
| 客服句子 | 人提供的标签 |
|---|---|
| “我想退款。” | 无 |
| “配送什么时候到?” | 无 |
| “商品寄来时是坏的。” | 无 |
| “可以取消订单吗?” | 无 |
| “我想修改地址。” | 无 |
这里没有 配送、退款、换货 这样的标签。但句子之间仍然可能存在相似性。无监督学习试图去找的,就是这类相似、重复模式或隐藏轴。
structure 指的是数据内部的关系¶
在无监督学习里,structure 指的是:数据并不是完全随机散落的,而是内部带着某种关系。
例如:
| 数据 | 可能找到的结构 |
|---|---|
| 客户购买历史 | 购买倾向相似的客户群 |
| 商品浏览记录 | 经常被一起浏览的商品集合 |
| 客服句子 | 意图相近的句子组 |
| 服务器日志 | 与平时不同的请求模式 |
| 图像特征 | 视觉上相近的形状或纹理集合 |
关键在于:这些结构并不是人预先贴好的 A 组、配送咨询 之类标签。算法通常是通过距离、相似度、密度或方差之类的标准去找结构。
监督学习是按标签去拟合;
无监督学习是在没有标签时寻找结构。
clustering 会把相似的东西聚在一起¶
clustering 是无监督学习最典型的例子之一。scikit-learn 也说明,unlabeled data 的 clustering 可以通过 sklearn.cluster 来完成。
这里说的 clustering,并不等于“人看一眼再手工分类”。人在业务分析或统计整理里当然也会自己分组;但在机器学习语境中,clustering 更接近一种数值程序:先把数据变成可计算的特征表示,再用 distance、similarity、density 或 variance 之类的标准去形成分组。
| 区分 | 人手工分组 | 算法式 clustering |
|---|---|---|
| 标准 | 人的阅读理解、业务经验、先验知识 | 选定的特征、距离、相似度、密度、方差 |
| 结果 | 人命名的业务组或类别 | cluster 编号、中心点或分组结构 |
| 优点 | 容易直接引入上下文与意图 | 适合用一致的可计算标准扫大量数据 |
| 注意点 | 不同人标准可能不同 | 算出来的分组未必直接等于业务意义 |
所以,clustering 并不是“机器自动懂得真正分类”。更准确地说,它是在给定表示与标准下,把“看起来相似”的数据聚在一起。
例如 K-means 会把数据划分成若干 cluster,并反复把每个样本分配到最近的 centroid。Stanford CS229 把 k-means 说明成:在无标签数据中构造 cohesive clusters 的问题,并说明每个训练样本会被分配给最近的 cluster centroid。scikit-learn 也说明,k-means 会把样本分成若干组,并试图最小化 within-cluster sum-of-squares 标准。
| 输入数据 | clustering 想找出的东西 |
|---|---|
| 客户购买历史 | 购买模式相近的客户群 |
| 新闻文章 | 主题相近的文章群 |
| 句子 embedding | 语义接近的句子群 |
| 图像特征 | 视觉上相近的图像群 |
| 传感器记录 | 相似运行状态的集合 |
最重要的问题永远是:
我们究竟是按什么样的“相似”来把它们视作一组的?
这个答案会随着特征选择而改变。即使是同一份数据,只要比较的特征不同,聚出来的结果也可能不同。
| 场景 | 可以比较的特征 | 可能聚出的组 | 注意点 |
|---|---|---|---|
| 商城客户 | 购买频率、平均订单金额、回访间隔 | 经常购买的客户、偶尔大额消费的客户、只浏览不怎么买的客户 | VIP、流失风险 之类的名字,是人后面加上的解释 |
| 客服消息 | 句子 embedding、高频词、消息长度 | 接近配送的消息、接近退款的消息、接近瑕疵投诉的消息 | 聚类结果未必和业务部门划分完全一致 |
| 新闻文章 | 标题与正文 embedding、人物、地点、主题词 | 政治文章组、经济文章组、体育文章组 | 同一事件和同一主题可能会混在一起 |
| 商品图片 | 颜色、形状、纹理、特征向量 | 色调相近的商品、形状相近的商品、拍摄角度相近的商品 | 结果可能和人熟悉的商品分类不同 |
| 服务器日志 | 请求时间、状态码、延迟、路径 | 正常请求模式、慢请求模式、错误偏多的模式 | 它只是异常候选,不等于原因分析已经完成 |
比如把客服句子的 embedding 拿来聚类:
| 聚类 | 可能包含的句子 |
|---|---|
| cluster 1 | “什么时候发货?”,“我订的商品还没到。” |
| cluster 2 | “我想退款。”,“可以取消付款吗?” |
| cluster 3 | “商品寄来时是坏的。”,“可以换货吗?” |
算法一开始并不知道 配送、退款、换货 这些名字。它先是按相似性把句子聚起来,之后人才可能看着结果说:“这一组看起来接近配送咨询。”
这也是为什么 cluster label 和监督学习里的 label 不是同一个概念。
cluster label 是算法为了表示分组结果而生成的编号或标记;
它不等于人事先贴好的监督学习标签。
dimensionality reduction 是用更少的轴重新看复杂数据¶
无监督学习不只用于分组,也常用来把复杂数据放到更少的轴上重新观察,这就叫 dimensionality reduction。
这里的 dimension 可以先理解成描述数据的一条轴。图像可能带着大量像素维度,文本可能带着大量词或 embedding 维度,客户数据则可能包含购买次数、金额、访问时间、地区等许多变量。
dimensionality reduction 的目标,是在尽量保留重要结构的前提下,用更少的轴去重新观察这些高维数据。
| 数据 | dimensionality reduction 能帮什么 |
|---|---|
| 高维图像特征 | 看相似图像是否彼此靠近 |
| 句子 embedding | 观察语义接近的句子群 |
| 客户行为数据 | 找出主要行为轴并可视化 |
| 传感器数据 | 查看正常模式与异常模式的区别 |
scikit-learn 对 PCA 的说明指出,PCA 会把多变量数据分解成能解释较多方差的正交成分。对入门阶段来说,先保留下面这条基线就够了:
降维,就是用更少的轴重新看复杂数据,
同时尽量保住重要结构。
representation 是数据在模型里呈现出来的形状¶
这里 representation 这个词也很重要。它表示原始数据被转换成某种更适合模型或算法处理的形式。
例如,句子原样拿来并不容易直接计算;把句子变成数值向量后,句子之间的距离和相似性就可以计算了。图像原本是像素数组,但在模型内部,它可能会以形状、颜色、边界或纹理特征的形式出现。
在无监督学习里,模型不一定是为了拟合标签,它也可能是在寻找一种能让数据结构显现出来的 representation。
| 原始数据 | representation 例子 |
|---|---|
| 客服句子 | sentence embedding |
| 商品图像 | 图像特征向量 |
| 客户行为日志 | 行为模式向量 |
| 文档集合 | 与主题相关的低维表示 |
无监督学习也可以和“在没有标签时,通过改变数据表示让结构更可见”这件事联系起来。后面的章节会把它和深度学习、embedding 更直接地连起来。
无监督学习结果需要解释¶
因为没有预先标签,把无监督学习结果直接读成业务真相是有风险的。
假设某次聚类结果是这样:
| 聚类 | 包含的客户 |
|---|---|
| cluster 1 | 购买金额高、访问频率高 |
| cluster 2 | 访问很多但购买少 |
| cluster 3 | 只在特定季节购买 |
如果立刻把它们命名成 VIP、流失风险、季节型客户,就太快了。那些名字是人后来加上的解释,不是算法直接给出的真理。无监督学习能做的是揭示“候选结构”,而不是自动给出业务意义。
因此,读无监督学习结果时,至少要继续问:
这个结构是按什么标准形成的?
如果换了距离函数或变量选择,结果会不会变?
这个结果能否被业务解释?
人后来贴上的名字是不是过度解释?
它和其他学习类型的边界¶
第 8 章在区分三种基本学习类型。重新压缩一下:
| 学习类型 | 数据与信号 | 核心问题 | 本章位置 |
|---|---|---|---|
| supervised learning | 输入与标签 | 这个输入该预测什么标签? | 8.1 |
| unsupervised learning | 无标签数据 | 数据内部有什么结构? | 8.2 |
| reinforcement learning | 状态、动作、奖励 | 哪些动作会提高长期奖励? | 8.3 |
deep learning 不在这张表同一条分类轴上。它可以被用于无监督学习,但它本身不等于无监督学习。
检查清单¶
- 能把无监督学习说明成“从无标签数据中寻找结构”的学习方式。
- 能说明“没有标签”并不等于“没有目标”。
- 能把 clustering 说明成“把相似的东西聚在一起”的方式。
- 能把 dimensionality reduction 说明成“用更少的轴重新看复杂数据”的方式。
- 能区分 cluster label 和人附加的监督学习 label。
- 能说明无监督学习结果仍然需要人的解释与复核。
- 能把“什么算相似”“要找什么结构”“结果由谁来解释”分开来说明。
- 能说明不该把 cluster 编号或降维坐标直接读成业务意义或真相。
来源与参考资料¶
- Google for Developers, Machine Learning Glossary, 确认日期:2026-06-23.
- scikit-learn, 2. Unsupervised learning, 确认日期:2026-06-23.
- scikit-learn, 2.3. Clustering, 确认日期:2026-06-23.
- scikit-learn, 2.5. Decomposing signals in components, 确认日期:2026-06-23.
- Stanford CS229, K-means, 2022, 确认日期:2026-07-19.