第4章 数据、模型与预测:AI 为什么不能离开好数据
本章导读
第3章解决的是怎样让 AI 协同学习环境先跑起来的问题。到了第4章,我们要往前多走一步:当 AI 给出一个预测、一个判断、一个看起来很专业的结论时,它到底依据什么?
很多学习者第一次接触人工智能时,容易把它想成一种会自己思考的神奇机器。它能写文章、能回答问题、能总结资料,好像什么都懂。可是,只要进入一个具体任务,问题马上就会出现:同样是让 AI 判断一个学习者的体测情况,如果给它的数据是真实、完整、干净的,它可能给出有参考价值的分析;如果数据里混入了明显错误,比如一个学习者立定跳远 1800cm,AI 也可能被这条离谱数据带偏。
本章不从复杂公式讲起,也不要求你手写机器学习程序。我们从一个每个人都能理解的例子开始:根据一组虚拟体测数据,观察 Notebook 中的简单模型如何根据身高、体重估计立定跳远距离,并让 AI 伴学助手帮助解释结果。然后,我们故意加入一条错误数据,观察预测结果发生什么变化。
这件事看起来很小,却能说明人工智能最重要的一条底层逻辑:模型不是凭空变聪明的,它是在数据中寻找规律;数据错了,模型学到的规律也会跟着错。
本章的学习重点不是会不会写代码,而是学会三件事:第一,看懂数据、模型、预测之间的关系;第二,知道异常数据为什么会影响模型判断;第三,养成先查数据,再信结果的基本习惯。 *** > 《论语》说:君子求诸己。 > 面对 AI 的回答,不能只看它说得像不像对,还要追问依据是什么。把输入、过程和结果拆开看,判断才会回到自己手里。
学习目标
- 知识目标:
- 能用自己的话说明数据 → 模型 → 预测这条人工智能基本链路。
- 能解释什么是特征、标签、趋势线和误差。
- 能说明为什么错误数据会影响模型判断。
- 能力目标:
- 能运行本章配套 Notebook 中的预置小实验,观察正常数据和异常数据下预测结果的变化。
- 能填写一张简单的数据观察表,记录模型预测值、误差变化和异常原因。
- 能借助 AI 伴学助手,用通俗语言解释一次模型结果是否可信。
- 素养目标:
- 建立 AI 输出需要检查依据的意识,不盲信模型结果。
- 认识到涉及学生评价、身体数据、成绩判断等场景时,AI 只能辅助分析,不能替代专业人员和人的判断。
- 初步形成数据安全与隐私保护意识。
先修要求与环境清单
- 先修知识:已完成第3章,能打开 VS Code 和配套 Notebook;知道 AI 伴学助手和本地大模型服务的大致作用。
- 实践材料:本章
Notebook:
notebooks/ch04_data_model_prediction.ipynb。 - 样例数据:虚拟体测数据表,包含三个字段:
height:身高,单位 cm;weight:体重,单位 kg;jump_distance:立定跳远距离,单位 cm。
- 实践方式:本章只需要运行、观察、记录和解释,不需要从零编写程序。
本章提醒:本章使用的是虚拟数据。真实的学生身高、体重、体测成绩属于个人信息,不能随意上传到公共 AI 平台,也不能在没有授权的情况下公开传播。
知识准备:先认识这些词
数据(data) 可以理解为 AI 用来学习的材料。体测表、商品销量表、天气记录、设备运行日志,都可以是数据。
模型(model) 可以理解为 AI 从数据中总结出来的一套规律。模型不等于数据本身,它更像是从数据里学到的判断方法。
预测(prediction) 当模型面对新的情况时,根据已经学到的规律给出的估计结果。例如输入身高 175cm、体重 65kg,模型估计其立定跳远距离。
特征(feature) 用来帮助模型判断的已知信息。在本章中,身高和体重就是特征。
标签(label) 模型想要预测的目标结果。在本章中,立定跳远距离就是标签。
趋势线 当一堆数据点散在图上时,模型会尝试找到一条最能代表整体变化方向的线。它不一定经过每一个点,但尽量靠近大多数点。
误差 预测值和真实值之间的差距。误差越大,说明模型这次估计得越不准。
异常数据 明显不符合常识或记录规则的数据。例如普通学生立定跳远不可能达到 1800cm,这就是异常数据。
4.1 问题与现象:模型为什么会被一条错误数据带偏?
想象某课程正在整理一批虚拟体测数据。体育专业人员希望通过数据发现一些有用规律,例如:同样的身高和体重条件下,有些学习者跳远成绩明显高,可能说明爆发力或技术动作较好;有些学习者跳远成绩明显低,可能需要进一步观察起跳姿势、摆臂动作或训练情况。
如果数据很多,体育专业人员逐条查看会很耗时。于是可以让 Notebook 中的简单模型帮忙做一件事:根据已有学习者的身高、体重和跳远距离,估计某个学习者在这个体型条件下大概能跳多远。
这个任务本身并不复杂,但它能暴露一个关键问题:准确地说,模型不是直接理解人的身体素质,它只是根据数据中的关系进行估计。
如果数据表里大部分记录比较正常,模型会学到一个大致合理的趋势。例如,身高较高、体重适中、训练较好的学生,可能整体跳得更远。当然,这不是绝对规律,因为每个人的力量、动作、训练习惯都不同。
可是,如果数据里混入一条非常离谱的记录,例如:
相关内容见表4-1。
表4-1 异常体测记录示例表
| 身高 | 体重 | 立定跳远距离 |
|---|---|---|
| 175cm | 60kg | 1800cm |
这条数据明显不可能真实发生。普通人的立定跳远不可能达到 18 米。它可能来自录入错误,也可能来自测距设备故障,还可能是单位写错了。
问题是:模型自己不一定知道这条记录不合理。它看到的只是表格中的数字。只要这条数据被送进模型,它就会参与寻找趋势线的过程。结果就是,原本比较平稳的趋势线可能被这一个异常点拉偏,预测值和误差都会发生变化。
这就是本章要观察的核心现象:
一条错误数据,有时足以改变模型学到的规律。
这也是为什么真实工作中经常说:数据清洗、数据检查、数据复核,比单纯追求更大的模型更重要。
4.2 原理与分析:数据、模型和预测到底是什么关系?
相关结构如图4-1所示。
图4-1采用空心圆点、叉号、实线和虚线区分信息,不依赖颜色。即使黑白印刷,也能看出正常样本、异常样本、正常趋势线和被拉偏后的趋势线。
4.2.1 数据是原材料:没有好数据,就没有好判断
人工智能的基本链路可以写成:
数据 → 模型 → 预测
这条链路可以用非常简单的话理解:
- 数据:给模型看的过去材料;
- 模型:从过去材料里总结出来的规律;
- 预测:把规律用到新的情况上。
如果把人工智能系统比作一个学习做菜的人,数据就是它看过的菜谱和试吃记录,模型就是它总结出来的做菜经验,预测就是它面对一道新菜时判断应该怎么做、味道可能怎样。如果菜谱本身乱写,盐和糖经常记反,那么再努力学习,也可能学出错误经验。
体测数据也是一样。身高、体重、跳远成绩如果真实可靠,模型就有机会找到大致规律;如果数据里有很多错误、漏项、单位混乱或异常值,模型就会从错误材料中学习。
因此,学习人工智能时不要只盯着模型强不强,还要先问:
数据从哪里来?
数据有没有错?
数据是否完整?
数据是否适合这个任务?
这四个问题,是任何 AI 应用都绕不开的起点。
4.2.2 特征和标签:模型到底在看什么、猜什么?
在本章例子中,我们有一张虚拟体测表:
相关内容见表4-2。
表4-2 字段与含义记录表
| height | weight | jump_distance |
|---|---|---|
| 160 | 50 | 175 |
| 168 | 58 | 205 |
| 175 | 65 | 225 |
这三个字段中,height 和 weight
是模型已经知道的信息,叫作特征。jump_distance
是模型要学习和预测的目标,叫作标签。
可以这样理解:
特征:给模型看的线索。
标签:希望模型猜出的答案。
如果我们把问题说成一句话,就是:
已知一个学生的身高和体重,模型能不能估计他的立定跳远距离?
这只是一个非常简化的例子。真实体测成绩还会受到很多因素影响,如腿部力量、核心稳定性、训练习惯、起跳动作、心理状态等。本章故意只保留身高和体重两个特征,是为了让大家先看清最基础的模型学习过程。
这也提醒我们:模型没有看到的因素,它就很难纳入判断。如果只给模型身高和体重,却让它判断一个人的运动能力,这个判断一定是有限的,不能被当成最终评价。
4.2.3 趋势线:让散乱数据出现一个大致方向
线性回归可以理解为:在一堆散乱的点中,找到一条最合适的趋势线。
假设我们把每个学生看成图上的一个点。因为人的身体情况和训练情况不同,点不会整齐排成一条直线,而是有高有低、有近有远。模型要做的是找到一个大致方向,让这条线尽量靠近大多数点。
它并不保证每个人都被准确预测。比如有些学生技术动作特别好,真实跳远距离可能高于模型预测;有些学生力量不差,但起跳动作不熟练,真实成绩可能低于模型预测。
所以,趋势线表达的是整体规律,不是每个人的命运。
这一点非常重要。AI 模型适合帮助我们发现大致趋势,但不能简单替代专业人员做最终判断。
4.2.4 误差:模型有没有学好,要看差距
模型给出预测以后,我们不能只看它有没有输出,还要看它输出得准不准。预测值和真实值之间的差距,就是误差。
例如:
真实跳远距离:220cm
模型预测距离:210cm
误差:10cm
如果大多数样本的误差都不大,说明模型大致抓住了规律;如果很多样本误差都很大,说明模型可能没有学好,也可能数据本身不适合这个任务。
本章 Notebook 会显示一个简单指标:平均绝对误差,可以理解为平均差了多少。你不需要记住复杂公式,只需要知道:
平均误差越小,说明模型整体预测越接近真实值;
平均误差突然变大,说明数据、模型或流程中可能出现了问题;
误差指标只能提醒我们继续检查,不能单独决定学生评价。
4.2.5 异常数据为什么会拉偏模型?
现在回到最关键的问题:为什么一条跳远 1800cm的错误数据,会影响模型?
因为模型在寻找趋势线时,会尽量照顾所有数据点。正常数据点都在一个合理范围内,趋势线比较稳定;突然出现一个离谱点,模型会尝试把这条线往它那边拉,以减少这个点带来的差距。
这就像一群人排队拍合照,大多数人站在中间,队形很整齐。突然有一个人站到很远的地方,如果摄影师坚持把所有人都放进画面,镜头就不得不拉远,整个画面都会变小,原本主要人物反而不清楚了。
异常数据就是那个站得太远的人。它可能只有一条,却会影响整体画面。
所以,在真实项目中,数据进入模型前,通常要做检查,例如:
- 跳远距离是否超过常识范围;
- 身高、体重是否漏填;
- 单位是否统一;
- 是否存在重复记录;
- 是否存在录入错误。
模型不是数据警察。很多时候,数据质量需要人和规则先把关。
AI 协同实践:20分钟观察一条异常数据如何改变预测
本章实践不要求你从零写代码。Notebook 已经准备好数据、图表和运行单元。你的任务是运行、观察、记录和解释。
实践目标
通过一次小实验验证本章核心原理:
模型从数据中学习规律;如果数据被异常值污染,模型的误差和预测结果可能发生明显变化。
实践准备
打开文件:
notebooks/ch04_data_model_prediction.ipynb
确认 Notebook 中已经包含以下区域:
- 正常数据预览;
- 正常数据下的趋势图;
- 正常数据下的预测结果;
- 加入异常数据后的趋势图;
- 两次结果对照表;
- 观察记录区。
第 1 步:观察正常数据
运行 Notebook 中的正常数据预览单元。观察表格中每一列的含义。
请填写:
相关内容见表4-3。
表4-3 问题与我的记录表
| 问题 | 我的记录 |
|---|---|
| 表格中有几个字段? | |
| 哪些字段是模型输入的线索? | |
| 哪个字段是模型要预测的结果? | |
| 数据看起来是否有明显离谱值? |
第 2 步:运行正常数据下的预测
运行正常数据预测单元。Notebook 会给出一个样例学生:
身高:175cm
体重:65kg
记录模型预测的立定跳远距离和平均误差。
相关内容见表4-4。
表4-4 项目与记录表
| 项目 | 记录 |
|---|---|
| 样例学生身高 | 175cm |
| 样例学生体重 | 65kg |
| 正常数据下的预测距离 | |
| 正常数据下的平均误差 |
第 3 步:加入异常数据
运行加入异常数据单元。Notebook 会自动加入一条异常记录:
身高:175cm
体重:60kg
立定跳远:1800cm
注意:这是一条故意设计的错误数据,不是真实记录。
第 4 步:再次运行预测并对比
运行异常数据预测单元,记录新的预测结果。
相关内容见表4-5。
表4-5 正常数据与异常数据结果对照表
| 项目 | 正常数据 | 加入异常数据后 | 是否明显变化 |
|---|---|---|---|
| 样例学生预测距离 | |||
| 平均误差 | |||
| 趋势线方向 |
第 5 步:请 AI 帮你解释,但不要直接照抄
把你的观察表发给课程 AI 伴学助手,并使用下面提示词:
我正在学习数据、模型与预测。
下面是我观察到的正常数据和加入异常数据后的模型结果:
【粘贴我的观察表】
请用读者能理解的话解释:
1. 为什么一条跳远1800cm的错误数据会影响模型?
2. 如果真实学校体测数据里出现这种记录,应该先做什么检查?
3. 为什么不能直接把模型预测当作学生成绩评价?
要求:不要写复杂公式,用生活例子说明。
AI 给出解释后,请你用自己的话再写一段 80—120 字总结。不要只复制 AI 原文。
第 6 步:人工复核
请根据本章内容判断下面说法是否正确:
相关内容见表4-6。
表4-6 判断题与理由记录表
| 说法 | 正确/不正确 | 理由 |
|---|---|---|
| 模型预测值一定比专业人员判断更客观。 | ||
| 数据中有一条异常记录,也可能影响模型整体规律。 | ||
| 模型误差变大时,应该优先检查数据是否异常。 | ||
| AI 可以辅助发现问题,但不能替代真实体测成绩和人工评价。 |
验证与证据:怎样让模型少被错误数据影响?
本章实验不是为了证明模型坏,而是为了让我们知道:要让 AI 可靠工作,必须做好数据检查。
三个最简单的数据检查规则
对于本章体测数据,可以先设置三条非常朴素的规则:
规则1:身高应在合理范围内,例如 120cm—220cm。
规则2:体重应在合理范围内,例如 25kg—150kg。
规则3:立定跳远距离应在合理范围内,例如 50cm—350cm。
这些规则并不完美,但能拦截明显错误。例如跳远 1800cm就会被规则3发现。
数据检查不是为了排斥特殊学生
需要注意,数据检查不是简单地把所有不一样的人排除掉。真实世界里确实会有身体条件特殊、成绩特别优秀或特别需要帮助的学生。我们要区分两件事:
- 异常数据:明显不可能或明显录入错误,例如跳远 1800cm;
- 特殊个体:真实存在但与多数人不同,例如某位学生经过专业训练,跳远成绩明显高于同龄人。
如果只是因为某个学生成绩特别好,就把数据删除,这是不负责任的。正确做法是:先核对记录是否真实,再决定如何处理。
让 AI 帮你设计检查清单
可以让 AI 伴学助手帮你设计数据检查清单,但你必须审查它是否合理。
提示词示例:
请帮我为一张虚拟学生体测数据表设计数据检查清单。
表中字段包括:身高cm、体重kg、立定跳远距离cm。
要求:
1. 用读者能理解的话说明每条检查规则。
2. 每条规则都要写出为什么要检查。
3. 不要把模型预测结果作为学生最终评价。
4. 结果用表格输出。
你需要重点检查:
- AI 给出的范围是否符合常识;
- 是否误把特殊个体当作错误数据;
- 是否保留了人工复核环节。
伦理、安全与边界:体测数据辅助分析可以做什么,不能做什么?
假设学校希望建设一个体测数据辅助分析小助手。它可以做什么?
它可以帮助负责人快速发现:
- 某些记录是否明显不合理;
- 某些学生是否需要进一步关注;
- 某些班级的整体数据是否存在录入问题;
- 某些训练建议是否需要根据趋势调整。
但它不能做什么?
它不能直接决定:
- 某个学生体测是否合格;
- 某个学生身体素质一定好或一定差;
- 某个学生是否应该被批评、奖励或处分;
- 某个负责人的工作效果是否完全由模型判断。
因为模型只能看到数据表中的一部分信息。它看不到学生当天是否身体不适,看不到测试场地是否湿滑,看不到动作是否受伤病影响,也看不到数据是否录错。
因此,本章要建立的职业底线是:
AI 可以帮助发现线索,不能替代人承担判断责任。
使用边界
隐私边界 身高、体重、体测成绩属于个人信息。真实数据必须脱敏处理,不能随意上传公共平台。
评价边界 模型预测只能作为辅助参考,不能直接替代正式考核结果。
数据边界 数据异常不等于学生异常。发现离谱记录时,应先核对数据来源和录入过程。
责任边界 AI 可以生成解释、建议和检查清单,但最终复核和使用责任仍在人。
公平边界 如果数据本身存在偏差,模型可能放大偏差。比如某些班级测试条件不同,却被放在一起比较,就可能造成不公平判断。
交付物标准
请提交一份 Markdown 格式的《异常数据如何影响模型判断观察记录》,至少包含以下内容:
相关内容见表4-7。
表4-7 交付物与达标要求记录表
| 项目 | 达标要求 |
|---|---|
| 数据观察表 | 能写清楚特征、标签和异常数据是什么 |
| 结果对照表 | 能记录正常数据和异常数据下预测值、误差的变化 |
| 原理解释 | 能用自己的话说明异常数据为什么会拉偏趋势线 |
| AI 协同记录 | 能粘贴一次向 AI 提问的提示词和主要回答摘要 |
| 人工复核结论 | 能说明哪些结论可以参考,哪些不能用于正式评价 |
| 安全意识 | 能说明真实体测数据为什么不能随意上传或公开 |
总结与思考
- 人工智能的基础链路是:数据 → 模型 → 预测。这条链路比很多术语更重要。
- 特征是模型看的线索,标签是模型要学习和预测的结果。
- 线性回归可以帮助我们直观看到趋势线如何代表整体规律。
- 一条极端异常数据可能让模型误差变大,也可能改变预测结果。
- 数据检查、人工复核和责任边界,是使用 AI 做预测时必须守住的底线。
练习与思考
基础题
- 请用一句话说明数据、模型、预测分别是什么意思。
- 在本章体测例子中,哪些字段是特征?哪个字段是标签?
- 为什么跳远 1800cm属于异常数据?
- 平均误差变大,通常说明什么?
实践题
- 在 Notebook 中再尝试加入一条错误数据,例如体重 600kg,观察结果是否变化。
- 让 AI 帮你设计 5 条体测数据检查规则,并人工判断是否合理。
- 画一张简单的黑白观察图,说明异常点怎样影响趋势线。要求用实线、虚线或不同形状区分信息,不依赖颜色。
反思题
- 如果一个模型预测某位学生体测表现较差,能不能直接据此批评学生?为什么?
- 你在生活中还见过哪些数据错了,判断也跟着错的例子?
- 当 AI 给出看起来很有道理的分析时,你会先检查哪些依据?
本章交付物
- 本章 Notebook 运行记录。
- 一条核心提示词和一段 AI 输出。
- 改变变量前后的观察表。
- 人工复核记录。
- 100—200 字原理解释。