模型验证(Validation)
验证(validation)集与测试(test)集
验证集往往是从训练集中划分出的一部分数据,用来验证模型泛化能力,可以使用多次;测试集是单独的一系列数据,在模型训练完成后,衡量模型效果,一般只使用一次
如何生成验证集
随机划分
特殊情况
某些情况下,训练数据可能不适合采用随机划分的方式验证集合,如
- 具有序列关系的数据-股价、房子销售
- 验证集数据应在训练集后,避免模型训练使用到了验证集的未来信息,导致模型在验证集上的表现较好
- 训练数据由不同组,每个组有多个样本-同一个人的多个照片
- 以组为单位进行随即划分
- 一百组照片,选70个人训练,30个人验证
- 类别不均衡数据
- 对于较小类更多的采样
K-fold Cross Validation k折交叉验证
将数据集划分为k个子集,每次选取一个子集作为有验证集,其余k个集合合并为训练集,重复k次,用k次平均验证误差作为验证集误差。
有关验证集的常见错误(common mistakes)
- 验证集中有来自训练集的样本
- 数据集中有重复样本
- 数据泄露(leaking)
- 训练时用到了验证集未来的数据(时间序列分析)