1. 训练误差 和 泛化误差
- 训练误差:模型在训练数据上的误差
- 泛化误差:模型在新的数据上的误差(ps:更关心泛化误差而非训练误差)
例如:根据模考成绩来预测未来考试分数
- 在过去的考试中表现很好(训练误差)不代表未来考试一定会好(泛化误差)
- 学生A通过背书在模考中拿到很好的成绩
- 学生B知道答案后面的原因
2. 验证数据集和测试数据集
验证数据集:一个用来评估模型好坏的数据集。(通过验证数据集可以来调参数,如:学习率取多少)
- 例如拿出50%的训练数据
- 不要跟训练数据混在一起(常犯错误)
因为验证数据集没有参加训练,所以在一定程度上是能反映出超参数的选择好坏。
测试数据集:只用一次的数据集。例如:
- 未来的考试
- 我出价的房子的实际成交价
- 用在Kaggle私有排行榜中的数据集
3. K-折交叉验证
-
在没有足够多的训练数据时使用(这是常态)
-
算法:
- 将训练数据分割成K块
- For i = 1,…,k
- 是用第i块作为验证数据集,其余作为训练数据集
- 报告k个验证集误差的平均
-
常用:k = 5或10
4. 总结
- 训练数据集:训练模型参数
- 验证数据集:选择模型超参数
- 非大数据集通常使用K-折交叉验证