本节你会学到
- 说清楚「训练集、验证集和测试集分别做什么?」解决的核心问题
- 知道它在「AI 入门与 PyTorch 基础(1~20)」中的位置
- 把 训练集、验证集和测试集、机器学习、分类与回归 这些关键词联系起来
训练集用于学习参数,验证集用于选择方案,测试集只在最后评估一次模型的真实泛化能力。
学习路线:AI 入门与 PyTorch 基础(1~20) · 第 6 课从 AI 基本概念、机器学习任务、深度学习直觉、PyTorch 入门到中文文本分类项目全貌。
学完本阶段你能做到:能说清 AI、机器学习、深度学习、PyTorch 训练流程和一个中文文本分类项目的大致链路。
推荐读法:零基础建议顺序阅读;已有基础的读者可以把它当作路线地图和查漏补缺清单。
查看完整阶段 · 20 篇先看目标,再带着问题读正文。读完后用练习确认自己真的理解了。
单一指标会掩盖类别不平衡、业务代价和错误分布。评估要结合任务目标、混淆矩阵和具体错误样本。
当类别不平衡或不同错误代价差异很大时,准确率可能很高但模型仍然没解决关键问题。
如果让学生先看考试原题,再用同一套题评价学习效果,得到的高分并不能说明他真正掌握了知识。
机器学习也一样。为了知道模型能否处理没见过的数据,需要把数据分开使用。
训练集参与参数更新。
模型反复读取训练样本,计算预测误差,再根据误差调整参数。训练集通常占数据的最大部分。
模型在训练集上表现越来越好,只能说明它越来越熟悉这些训练数据,并不代表它能处理新数据。
验证集不用于直接更新模型参数,而是帮助我们做选择,例如:
因为会反复根据验证结果调整方案,模型开发过程实际上也在间接适应验证集。
测试集用于最终评估。它应该尽量模拟模型上线后真正遇到的新数据。
测试集不应该参与选模型、调参数或决定训练轮数。否则它就不再是独立的最终考试。
没有适合所有项目的固定比例,常见起点包括:
训练集 70% / 验证集 15% / 测试集 15%
训练集 80% / 验证集 10% / 测试集 10%
数据很少时可以使用交叉验证。时间序列数据则不能随意打乱,通常需要按照时间先后划分。
分类任务中,如果某个类别本来就很少,随机划分后可能全部落在某一个集合里。可以使用分层抽样,让各集合中的类别比例更接近。
重复样本、同一用户数据或同一来源图片也可能跨集合泄漏,需要根据业务关系分组划分。
下一课会回答:模型做完分类后,除了准确率,我们还应该看哪些指标?
留言讨论