从零啃透机器学习:用“挑西瓜”讲透机器学习第二章
📖《机器学习》第2章·通俗解读 | 怎么判断模型好不好?
上一章我们学会了“机器学习是啥”,这一章聊聊更实际的问题:
你训练出来的模型,到底行不行?
1. 过拟合与欠拟合:别让模型“死记硬背”
想象一下:
-
你复习考试,把练习册的答案全背下来了
-
考试时题目稍微变个样,你就懵了
这就是过拟合:模型把训练数据记得太牢,连里面的“偶然”都当成了规律,一到新数据就露馅。
反过来,如果你连练习册都没怎么学,考试自然也不会,这叫欠拟合:模型连基本规律都没抓住。

我们要的模型:既能做对练习题,也能做对没见过的题(泛化能力强)
2. 怎么考试?三种评估方法
你不可能让模型去“预知未来”,所以得从已有数据里模拟考试。
方法一:留出法(Hold-Out)
把数据分成两份:
-
一份当训练集(做练习题)
-
一份当测试集(模拟考试)
常见比例:70%训练 + 30%测试
注意:要随机分,还要保持好瓜坏瓜的比例差不多(分层采样)
方法二:交叉验证(Cross Validation)
留出法只考一次,万一这次题目偏了呢?
交叉验证多考几次:
-
把数据分成 k 份(比如10份)
-
轮流拿1份当测试,剩下9份当训练
-
最后算平均分

最极端的是留一法:每次只留一个样本当测试。结果很准,但计算量超大。
方法三:自助法(Bootstrap)
数据太少,舍不得分出测试集怎么办?
用有放回的方式从原数据里抽一份当训练集(有些样本会重复出现,有些永远抽不到),没抽到的当测试集。
适合小数据集,但会引入一点偏差。
3. 怎么打分?几种常用的性能度量
模型考完试,怎么给它打分?不同任务用不同指标。
最简单:错误率 & 精度
-
错误率 = 猜错的个数 / 总个数
-
精度 = 1 – 错误率
如果100个瓜里猜错了5个,错误率5%,精度95%。
查准率 & 查全率(更精细)
假设我们要从一堆瓜里挑出好瓜:
-
查准率:你挑出来的瓜里,有多少真是好瓜?
(别挑了一堆,结果一半是坏瓜) -
查全率:所有好瓜里,你挑出了多少?
(别漏掉真正的好瓜)
这两个往往矛盾:想挑得准,就容易漏;想全挑出来,就容易混进坏瓜。
F1分数:把查准率和查全率揉成一个数,方便比较。
简单理解:F1 越高,说明你既挑得准,又没漏掉太多。
ROC 和 AUC
先搞懂一个场景
假设你训练了一个模型,用来判断“这个瓜是不是好瓜”。
模型不是直接说“是/否”,而是给每个瓜打一个分数(比如0到1分),分数越高,模型越觉得它是好瓜。
比如:
-
瓜A:0.95分 → 模型很自信它是好瓜
-
瓜B:0.52分 → 模型觉得可能是好瓜,但不太确定
-
瓜C:0.08分 → 模型觉得大概率是坏瓜
这时候,你需要定一个阈值(比如0.5):
-
分数 ≥ 0.5 → 判为好瓜
-
分数 < 0.5 → 判为坏瓜
不同阈值会影响结果:阈值调高,你更“严格”,挑出的好瓜更准,但可能漏掉一些;阈值调低,你更“宽松”,好瓜基本不会漏,但容易混进坏瓜。
ROC 曲线:看模型在不同阈值下的表现
ROC 曲线就是把阈值从高到低调一遍,记录两个指标:
-
真正例率(TPR):所有好瓜里,你挑出了多少?(查全率)
-
假正例率(FPR):所有坏瓜里,你误判成好瓜的有多少?
理想模型:TPR 很高(好瓜基本都挑出来了),FPR 很低(坏瓜很少被误判成好瓜)
把每个阈值下得到的(FPR, TPR)点在图上连成一条线,就是 ROC 曲线。
-
曲线越靠近左上角,说明模型越好(好瓜几乎全中,坏瓜很少被冤枉)
-
对角线(45度直线)代表猜对好瓜、看错坏瓜的概率一样大,模型分不清哪个是好瓜哪个是坏瓜,全凭运气蒙

AUC:把 ROC 曲线的好用程度浓缩成一个数字
AUC 就是 ROC 曲线下面的面积(Area Under the Curve)。
-
完美模型:AUC = 1(曲线直接冲到左上角)
-
随机猜:AUC = 0.5(曲线贴着对角线)
-
现实中:AUC 一般在 0.5 到 1 之间
AUC 数值越大,代表这个模型越厉害,它打分的时候,会主动给好瓜打高分、坏瓜打低分,自然而然就把好瓜全都排在前面,坏瓜排在后面,区分能力特别强。
4. 比较检验:一次考高分不一定真厉害
你训练了两个模型 A 和 B,跑了一次测试,A 的准确率比 B 高。
能不能说 A 就比 B 好?
不一定!因为:
-
这次测试集的样本可能对 A 有利
-
下次换一批数据,可能 B 又赢了
所以需要用统计检验(比如 t 检验)来判断:
👉 A 比 B 好的结果,是真的有本质差异,还是偶然运气?
就像两个同学考试,一个平均分85,一个83,不能直接说85那个就比83那个“学习更好”,可能只是这次题目凑巧。
5. 偏差 vs 方差:模型为什么会犯错?
把模型预测错误的原因拆成两部分:
| 类型 | 通俗解释 | 举例 |
|---|---|---|
| 偏差 | 模型“打偏了”,方向就不对 | 你总觉得青色的瓜就是好瓜,但实际青色不代表什么 |
| 方差 | 模型“不稳定”,换批数据就大变样 | 今天用30个瓜训练,预测结果是“看根蒂”;明天换30个瓜,结果变成“看敲声” |
-
欠拟合:偏差大(根本思路错了)
-
过拟合:方差大(太敏感,数据一变就乱)
好的模型要平衡偏差和方差,不能太偏也不能太敏感。
📌 第二章总结(背下这5句就够了)
-
过拟合 = 死记硬背,欠拟合 = 没学会
-
评估方法:留出法、交叉验证、自助法(看数据量选)
-
打分指标:错误率/精度、查准率/查全率、F1
-
不能只看一次分数,要用统计检验确认是否真有差别
-
模型的错误来自偏差(方向偏)和方差(不稳定),要找到平衡点
👇 下章预告
第三章讲线性模型,包括线性回归、逻辑回归(虽然叫回归,其实是分类)。
一条直线怎么就能做预测?
从零啃透机器学习:用“挑西瓜”讲透机器学习第三章-CSDN博客
本专栏持续更新中,收藏关注不迷路~
更多推荐




所有评论(0)