P1-3.2 从数据中学习模式意味着什么¶
Section ID:
P1-3.2Version:v2026.07.20
3.1 看过人直接写规则这种方式的优势与限制。这一节继续进入下一个问题。如果人很难把每一条有用规则都写出来,系统又怎样才能从数据中获得判断标准?
这里要做的,不是详细解释机器学习算法,而是先理解 learning patterns from data 这句话到底指向什么结构,以及它为什么和规则式系统不同。像线性回归、决策树这样的算法会在 Part 4 回来,神经网络与深度学习结构会在 Part 5 再展开。
这一节围绕 example、feature、label、model、training 与 generalization 来整理模式学习的基本结构。representation 的内部结构,以及它与规则式方法的对照,会在 3.3 继续说明。
这一节整理以下问题:
- “从数据中学习模式”到底指向什么结构?
example、feature、label和model分别扮演什么角色?- 为什么模式学习不能被理解成单纯记忆?
这一节先固定 从数据中学习模式 这句话到底指向什么结构。规则式方法与表征学习的差异会在 P1-3.3 继续展开,具体算法会在 Part 4 和 Part 5 继续处理。
区分模式学习、记忆与泛化的基准¶
- 理解“从数据中学习模式”这句话背后的基本结构。
- 区分 example、feature、label 与 model 的角色。
- 看见 training 与后续实际使用(inference) 的基本差别。
- 理解为什么模式学习不同于单纯记忆。
- 看清为什么数据质量与 generalization 很重要。
- 为 3.3 中规则式方法与表征学习的差异做连接。
三个基准¶
这一节整理的是机器学习最基本的思维方式。下面三个点是结构上的基准线。
| 基准 | 为什么重要 | 这一节需要达到的理解程度 |
|---|---|---|
学习是 在例子中寻找关系,而不是 把所有规则都直接写出来 | 这样能先看见它和规则式系统的差异。 | 区分模型是看着输入例子与答案例子来调整标准。 |
example、feature、label 和 model 处在 不同角色位置 | 这些是之后阅读 Part 4 机器学习章节需要的最低限度术语。 | 整理出 feature 是输入线索,label 是答案,model 是计算这种关系的结构。 |
学习不是 记忆,而是找出也能用在新数据上的模式 | 这样会自然连到 generalization 和 overfitting。 | 连接“好的学习”要能处理没见过的输入。 |
example、feature、label、model、training 和 generalization 是拖着整节走的核心术语。首先要留下的大区分是:example 是案例,feature 是线索,label 是答案,model 是计算关系的结构,training 是调整标准,generalization 是这种标准也能在新输入上成立的状态。下面正文会再把这些词重新绑一次。
先用一个小例子来读¶
如果一开始只用抽象定义,学习模式 这句话会显得很空。所以先看一个小例子:客户咨询分类。
假设客户中心会收到下面这些消息。
| 咨询句子 | 人工贴上的类别 |
|---|---|
| “我想退款。” | 退款 |
| “可以取消付款吗?” | 退款 |
| “配送什么时候到?” | 配送 |
| “如果明天还不到我就取消。” | 配送 |
| “商品寄来时是坏的。” | 换货或补发 |
| “请再寄一次。” | 换货或补发 |
| “我想修改地址。” | 配送信息修改 |
| “我想修改收件人电话号码。” | 配送信息修改 |
如果用规则来处理,人就必须直接写出类似下面这样的规则。
如果句子里有 “退款” 或 “取消”,就分到退款。
如果句子里有 “配送” 或 “明天”,就分到配送。
如果句子里有 “坏了” 或 “再寄”,就分到换货或补发。
如果句子里有 “地址” 或 “电话号码”,就分到配送信息修改。
一开始这看起来也说得通,但模糊句子很快就会出现。
如果配送晚了,我可以不要退款而改成补发吗?
这句话里同时带着 配送、退款 和 补发 这些线索。如果系统只盯着某一个词,就很容易分错。所以学习式方法会把问题换掉。
它不再问“只要出现某个词,就一定该送到哪个类别”,
而是问:看过很多过去的咨询和分类之后, 这条新咨询在结构上最像哪一类?
这一节剩下的说明,都可以围绕这个小例子来理解。这里把 example、feature、label、model、training 与 inference 只当成说明训练数据和后续模型使用的最小词汇。特征和表征在模型内部如何不同,会在 3.3 单独整理。
它不是写规则,而是找关系¶
规则式系统从显式条件开始工作。
if condition A and condition B are satisfied, produce result C
机器学习换掉了这个工作中心。它不是让人把所有条件都直接写出来,而是去找过去数据或例子里输入和输出之间的关系。
example data -> training -> model -> prediction for a new input
如果再回到前面的客户咨询例子,它可以这样来看。
| 方法 | 问题 | 工作 |
|---|---|---|
| 规则式 | 如果某些词出现,系统应该把咨询送到哪个类别? | 由人写词、条件和例外规则 |
| 学习式 | 过去的咨询句子和分类之间,什么关系在重复出现? | 收集咨询句子和类别,让模型去学习边界 |
两种方法都仍然会接收输入、产出输出。差别在于判断标准到底从哪里来。规则式系统让人显式写标准,机器学习模型则让标准通过数据被调整。
flowchart TD
Rule输入[输入]
Rules[人工编写的规则]
RuleOutput[结果]
Data[示例数据]
Train[训练]
Model[训练好的模型]
New输入[新输入]
Pred[预测]
Rule输入 --> Rules --> RuleOutput
Data --> Train --> Model
New输入 --> Model --> Pred
这个图让我们并排比较 人直接写标准的流程 和 用例子数据来调整标准的流程。关键对比是:在规则式流程里,标准写在模型外面,而 在学习式流程里,标准是通过数据被调整出来的。
模式是一种会重复出现的关系¶
这一节里的 pattern,不是指旧数据里任何看起来重复的东西,而是指一种到了新数据上仍然有帮助的关系。
放回客户咨询例子里,简单重复看起来可能像这样。
| 观察 | 为什么需要小心 |
|---|---|
词 取消 常出现在退款咨询中 | “如果配送晚了我就取消” 仍然可能主要是配送问题 |
词 再 常出现在补发请求里 | “我又登录了一次还是失败” 可能其实是账号问题 |
词 地址 常出现在配送信息修改里 | “地址填错了所以现在想退款” 也可能主要是退款问题 |
所以,一个模式更接近于:单词、上下文、句子结构与过去分类一起形成的重复关系,而不是某个孤立词本身。
Fayyad、Piatetsky-Shapiro 与 Smyth 的 KDD 综述论文把从数据中找到的 pattern 描述为一种能解释部分数据的表达或模型,并且默认这种 pattern 在新数据上也应当仍有一定效用。这个视角对于理解机器学习很重要。如果一个关系只对旧数据成立,而在新数据上立刻失效,那么它很难被看成“学到了好的模式”。
例如,下面这种关系表面上也可能很像 pattern。
上个月点击蓝色图标的用户,流失率更低。
但还要继续检查:这个关系到底是偶然的、是因为某个短期活动,还是之后也会重复。机器学习要做的,不只是解释旧数据,还要找到能用在新输入上的关系。
| 区分 | 说明 |
|---|---|
| 简单重复 | 可能只是旧数据里偶然同时出现的现象 |
| 有用模式 | 在新数据上也仍有助于预测或分类的关系 |
| overfitting | 太紧贴旧数据,到了新数据上就变弱的状态 |
| underfitting | 连主要关系都没有学到,因此在训练数据上也弱的状态 |
| generalization | 在没见过的新数据上也还能工作得比较合理的状态 |
这一节只把 overfitting、underfitting 和 generalization 介绍成“学习出来的模式质量如何”的基本状态名称。更详细的评价方法和验证过程会在 Part 4 再展开。
example、feature、label 和 model¶
从 supervised learning 的角度看,数据通常可以被想成一组 examples。每个 example 里都会同时放着输入信息,以及它要预测的答案。
Google 的机器学习入门材料说明:在 supervised learning 中,example 包含 features 和一个 label。Features 是模型用来预测 label 的值,label 则是模型要猜中的正确答案或目标值。
| 术语 | 英文表达 | 含义 |
|---|---|---|
| example | example | 一条观测案例或一行数据 |
| feature | feature | 模型拿来当输入使用的值 |
| label | label | 模型想预测的正确答案或目标值 |
| model | model | 接收 features 并产出预测的计算结构 |
| training | training | 利用 examples 去调整模型内部值的过程 |
| inference | inference | 把训练好的模型运行到新输入上以得到输出的过程 |
这里首先要固定的结构是:一个 example 里会同时包含多个 features 和一个 label。Example 指的是整条案例,features 是模型从这条案例里读取的输入线索,label 则是贴给整条案例的答案。后面几段在继续解释模式学习和 generalization 时,都默认这个结构。
| 术语 | 极简含义 | 在客户咨询例子中的样子 |
|---|---|---|
| example | 一条案例 | 一句咨询文本加上它的分类结果 |
| feature | 模型读取的输入线索 | 和 退款、配送、地址修改 相关的单词或表达线索 |
| label | 人给出的答案 | 退款、配送、换货或补发 |
| model | 计算 feature 与 label 关系的结构 | 给新咨询打出各类别得分的结构 |
| parameter | 训练中会变化的内部值 | 影响每条线索被看得多重要的值 |
| training | 调整内部值的过程 | 看着过去咨询来校准分类标准的阶段 |
| inference | 在实际中使用训练后模型的阶段 | 新咨询来了之后预测类别的阶段 |
这一节首先应留下的区分是:example 是案例,feature 是线索,label 是答案,model 是写关系的结构,而 parameter 是在训练里会改变的内部值。
放回客户咨询例子,它会变成下面这样。这里的 features 是为了让初学者理解结构而简化出来的线索,并不等于真实模型最终一定采用的输入表示。
| Example | Features | Label |
|---|---|---|
| 咨询 1 | 退款、想要 | 退款 |
| 咨询 2 | 配送、什么时候 | 配送 |
| 咨询 3 | 坏了、寄来 | 换货或补发 |
| 咨询 4 | 地址、想修改 | 配送信息修改 |
模型会看很多 examples,从中学习 features 和 labels 之间的关系。训练结束之后,它就可以对还没有 label 的新咨询,预测哪个类别更合理。
对初学者来说,这里还有一步很重要。真实工作里,example、feature 和 label 往往并不是一开始就干净排好的。通常首先存在的是粗糙数据,例如原始咨询文本、处理记录、结果备注。然后才需要决定什么算一条 example,哪一个结果算 label,句子中的什么线索该变成 feature。因此,从数据中学习模式 并不等于把原始数据直接扔进模型,而是也包含把现实记录整理成 可学习的 example 结构 的准备工作。
所以,像 咨询 1、咨询 2 这样整句文本才是 example,而像 退款、配送、坏了 这样的线索是从 example 里取出的 feature。Label 是人对整条 example 贴上的答案,而模型是在很多 examples 中一起学习这些特征组合与 label 之间的关系。
flowchart TD
Ex[带标签示例]
特征[特征]
标签[标签]
Train[训练]
模型[模型]
New[新咨询的特征]
Output[预测]
Ex --> 特征
Ex --> 标签
特征 --> Train
标签 --> Train
Train --> 模型
New --> 模型 --> Output
这个图帮助我们把 supervised learning 读成 example -> features 和 label -> training -> model -> 新输入预测。重点在于:模型并不是直接记住新输入,而是用从 examples 调整出来的标准去解释新输入。
training 是在调整模型内部标准¶
在规则式系统里,人通过改规则来修正标准。在机器学习里,训练数据与评价标准会用来调整模型内部的 parameters。
Parameter 是模型在把输入变成输出时所使用的可调内部值。在线性模型中,系数(coefficient) 可以是 parameter;在神经网络里,权重(weights) 可以是 parameter。这里不会深讲公式,只需要先把 parameter 理解成 训练过程中会变化的内部值。
如果把 training 简化,它大致是这样的。
- 模型先看输入并做出预测。
- 计算预测和正确答案之间的差异。
- 调整内部值,让这个差异变小。
- 在很多个例子上重复这个过程。
把它放成表格,与规则式系统的对照就会更清楚。
| 区分 | 规则式系统 | 学习式模型 |
|---|---|---|
| 谁来创造标准 | 人写规则 | 数据和训练过程调整参数 |
| 如何修正 | 新增、删除或调整规则优先级 | 通过训练数据、目标与算法来调整内部值 |
| 如何处理错误 | 看是哪条规则错了 | 看数据、特征、评价标准或模型结构哪里出了问题 |
| 结果解释 | 相对容易追踪所应用的规则 | 依模型而异,解释可能更困难 |
正因为这个差异,机器学习模型虽然能够处理复杂模式,但它的复核方式也和规则式系统不同。仅仅读规则已经不够,还需要连同数据质量、评估结果与失败案例一起看。
学习不是记忆¶
如果把 从数据中学习 理解成 把旧案例存起来,然后原样拿出来,就会产生误解。机器学习的目标不是原样记住旧数据,而是找到也能用在新数据上的关系。
再回到客户咨询例子。
| 输入句子 | Label |
|---|---|
| “我想退款。” | 退款 |
| “配送什么时候到?” | 配送 |
| “商品寄来时是坏的。” | 换货或补发 |
| “我想修改地址。” | 配送信息修改 |
如果模型只是记住了这四句,它遇到下面这种句子就会很困难。
我昨天收到的商品已经损坏,希望重新寄一份。
好的模型应该即使在字面表述和训练句子不完全相同的时候,也能通过 损坏、重新寄 以及它们所在上下文,判断这更接近换货或补发意图。
所以,学习的目标不是去回答:
我以前有没有见过这句完全一样的话?
而是去回答:
这句话和我以前见过的哪一类问题结构更相似?
| 状态 | 说明 |
|---|---|
| 记忆 | 在训练数据本身上能对,但措辞稍微变化就会错 |
| generalization | 即使新输入和训练数据措辞不同,但结构相似时仍能应对 |
| overfitting | 连训练数据里的偶然细节也学进去了,所以对新数据反而弱 |
| underfitting | 没学到足够关系,因此连训练数据上也不强 |
Overfitting 和 underfitting 可以看成两个相反方向的失败。Overfitting 是“贴得太紧”的问题,underfitting 是“学得不够”的问题。这里先记住:从数据中学习模式 的意思,是 找出也能用于新数据的关系。
一个简短的区分练习¶
看下面这些情况,先判断它更接近 记忆、generalization,还是 数据问题。
| 情况 | 先问什么问题 | 本节里的第一判断 |
|---|---|---|
| 对训练时见过的完全一样句子表现很好,但措辞稍变就常常出错 | 它是不是只记住了见过的句子? | 可能更接近记忆 |
| 学会 “我想退款。” 后,也能把 “可以取消付款吗?” 正确分成退款 | 它是不是抓住了单词不同但意图相同这件事? | 可能更接近 generalization |
| 对某个地区的咨询很好,但对另一地区的表达方式表现差 | 训练数据的多样性是不是不够? | 先怀疑数据覆盖问题 |
| 在训练数据上经常出错,在新数据上也出错 | 它是不是根本没学到足够关系? | 先怀疑 underfitting |
| 在训练数据上几乎完美,但上线后性能明显下滑 | 它是不是过于贴合训练数据? | 先怀疑 overfitting |
这个练习的重点,不只是问 模型有没有答对,而是从数据和 generalization 的角度问 它为什么会答对或答错。
scikit-learn 关于 overfitting 与 underfitting 的示例,展示的也是同一个观点:过于简单的模型可能连训练数据都解释不好,而过于复杂的模型则可能连训练数据里的噪声都学进去,导致对新数据变弱。
数据质量限制模型质量¶
学习式模型是从数据中获得标准的。因此,如果数据狭窄、带偏差、标签错误,或者和真实使用环境不一致,模型也会继承这些限制。
Google 的机器学习入门材料说明,数据集的大小(size) 与多样性(diversity) 会影响模型性能与 generalization。即使数据集很大,只要多样性不足,也可能不能充分代表真实环境;反过来,即使数据类型很多,但例子太少,也会很难找到稳定模式。
| 数据问题 | 模型里可能出现的问题 |
|---|---|
| 例子太少 | 模型可能把偶然关系误认成真正模式 |
| 多样性不足 | 在某些场景里表现好,但换个场景就变弱 |
| 标签不准确 | 模型会拿错误答案当标准来学习 |
| 重要特征缺失 | 模型看不到判断所需的关键信息 |
| 与真实使用环境不一致 | 上线后性能可能明显下降 |
例如,只用夏天数据来做降雨预测模型,它对冬天降水模式就可能较弱。只用某一个地区的客户咨询来训练模型,它对别的地区的表达、商品与物流政策就可能较弱。所谓“从数据中学习”,也意味着模型会跟随数据所携带的世界观。
所以,在机器学习项目里,重要的问题并不只是 该用什么模型?
收集了什么数据?
选择了什么作为 label?
哪些 feature 被当成输入?
训练数据和真实使用数据有多相似?
在新数据上性能是否还成立?
它如何连接到表征问题¶
到目前为止,这一节先看了训练数据、label、model 和 generalization 的基本结构。但如果想识别“意思相近的句子”,输入到底以什么形式进入模型也会变得重要。因为同一个意思可以用不同词来表达,而同一个词也会因为上下文不同而拥有不同意思。
例如,词 取消 并不总是表示取消请求。像 如果不取消的话,什么时候会到? 这样的句子里,它的意义会随着条件、否定与上下文一起变化。这个问题会在 3.3 继续,引向规则式方法(rule-based approach) 与表征学习(representation learning) 之间的差异。
模式学习会连接到概率式判断¶
现实数据并不会干净地切开。同样的词可以带着不同意图,类似的行为也可能对应不同结果。因此,学习式模型很多时候输出的并不是固定规则,而是得分(score)、概率(probability) 或排序(ranking)。
例如,一个咨询分类模型可能会这样判断。
| 候选标签 | 模型得分 |
|---|---|
| 配送咨询 | 0.62 |
| 订单取消 | 0.24 |
| 退款 | 0.09 |
| 其他 | 0.05 |
这些分数表示的是 模型这样算出来了,并不等于它自动就是真实答案。所以在真实学习式系统里,模型输出后面经常还会接上阈值(threshold)、人工复核,或者规则式安全层。
flowchart TD
Input[新输入]
Model[训练好的模型]
Score[分数或概率]
Rule[业务规则]
Human[人工复核]
动作[动作]
Input --> Model --> Score
Score --> Rule
Rule --> 动作
Rule --> Human
Human --> 动作
这个结构会重新连回 3.1 的结论。规则式系统与机器学习不是只有替代关系。模型负责找出人难以直接写成规则的模式,而规则负责管理必须执行的程序与安全条件。
案例与示例¶
案例 1. 为什么咨询分类规则会越写越多¶
假设一个客户中心要把咨询分成 退款、配送、换货 与 信息修改。如果人直接写规则,一开始可能很简单:只要出现 退款 就是退款,只要出现 配送 就是配送。
但真实咨询很快就会混在一起。像 配送晚了所以我想退款、不要退款,请重寄一次、我想改地址,但先告诉我是不是已经发货 这样的句子,会在一行里塞进多个线索。人写的规则越多,例外与优先级问题也会一起增长。
学习式方法会把问题从 继续补更多词规则 变成 在过去咨询和分类之间寻找反复出现的关系。这样,即使相同意图换了一种表达方式,模型也可能仍然把它们归到同一类模式里。
这个案例说明,为什么 3.2 会紧接在 3.1 后面。不是因为规则式分类错了,而是因为人难以直接写出的模式越来越多,所以从数据里学习关系的方法变得必要。
检查清单¶
- 我可以把
从数据中学习模式解释成“寻找也能用在新数据上的关系”的过程。 - 我可以区分 example、feature、label、model、training 和 inference 的角色。
- 我可以解释 training 是调整模型内部 parameters 的过程。
- 我可以解释为什么学习不同于记忆,以及为什么 generalization 很重要。
- 我可以解释数据规模、多样性与 label 质量会影响模型性能。
- 我可以解释输入表示方式为什么会连到下一节的表征学习问题。
- 我可以解释模型输出可能是分数或概率,以及为什么真实系统常需要规则与复核程序一起存在。
- 我可以解释“从数据中学习模式”不是原样记住过去案例,而是寻找输入与输出之间的关系,并尝试把这种关系用于新数据。
- 我可以解释理解学习式 AI 时不能只看模型,还要一起看数据如何被制作、按什么标准训练,以及如何在新数据上验证。
出处与参考资料¶
- Stanford Encyclopedia of Philosophy, Selmer Bringsjord and Naveen Sundar Govindarajulu, Artificial Intelligence, 2018-07-12, 确认日期:2026-06-22.
- Tom Mitchell, Machine Learning textbook, Carnegie Mellon University, McGraw Hill, 1997, 确认日期:2026-06-22.
- Google for Developers, Supervised Learning, 确认日期:2026-06-22.
- scikit-learn, Underfitting vs. Overfitting, 确认日期:2026-06-22.
- Usama Fayyad, Gregory Piatetsky-Shapiro, Padhraic Smyth, From Data Mining to Knowledge Discovery in Databases, AI Magazine, 1996, 确认日期:2026-06-22.