模型分数高不一定代表模型真的好。它可能没有学会规律,也可能只记住了训练样本,甚至可能提前看到了答案。
这对应三个必须分清的问题:欠拟合、过拟合和数据泄漏。
欠拟合:连训练数据都没学好
欠拟合时,模型在训练集和验证集上的表现都比较差。
常见原因包括:
- 模型太简单;
- 特征无法表达任务需要的信息;
- 训练轮数太少;
- 学习率设置不合适;
- 数据或标签本身存在问题。
解决欠拟合通常需要先检查数据与代码,再考虑增加模型能力或延长训练。
过拟合:训练题会做,换题就不会
过拟合时,模型在训练集上表现很好,但在验证集或测试集上明显变差。
模型不仅学到了可以推广的规律,还记住了训练数据中的噪声和偶然细节。
常见改进方法包括:
- 增加有代表性的训练数据;
- 降低模型复杂度;
- 使用权重衰减、Dropout 等正则化方法;
- 使用数据增强;
- 根据验证集提前停止训练。
数据泄漏:模型偷看了答案
数据泄漏是训练时使用了真实预测场景中不应该获得的信息。
例如预测用户是否会退订,却把“退订时间”作为输入特征;或者先用全部数据计算标准化参数,再划分训练集和测试集。
另一种常见泄漏是重复数据或同一用户的高度相似样本同时出现在训练集和测试集中。模型看似泛化得很好,其实只是在识别熟悉内容。
怎样通过结果判断
| 训练集表现 | 验证集表现 | 可能问题 |
|---|---|---|
| 差 | 差 | 欠拟合或数据问题 |
| 好 | 差 | 过拟合 |
| 异常地好 | 异常地好 | 检查数据泄漏 |
这只是初步线索,不能代替对数据、划分方式和代码流程的检查。
到这里,我们已经有了机器学习地基
现在你已经知道 AI 的范围、任务类型、数据角色、数据集划分和评价方法。下一阶段可以进入 神经网络到底是什么,开始理解模型内部怎样从数据中学习。
留言讨论