4.3模型验证测试集是神圣不可侵犯的 一旦你开始根据测试结果调整模型它就变成了验证集*我们用测试集近似估计泛化误差验证集是开发工具 可以尽情实验不怕信息泄露如果数据量有限常用 K折交叉验证K-Fold Cross Validation 来充分利用数据而不需要单独的验证集Hold Out Validation留出法验证将训练样本分成两个集合一个是训练集一个是验证集在训练集上训练模型在验证集上计算误差或其他指标用验证集算到的误差来近似泛化误差一般来说会选取 n% 的样本作为验证集可以可以取5040302010 取决于样本足不足够样本数多可以选择50%作为验证集样本不够多的话可以选择20%作为验证集随机划分数据的一个大前提假设数据是 I.I.D.独立同分布的1. 时序数据Sequential Data:问题随机划分会让未来数据泄露到训练集模型偷看了未来方法按时间顺序划分训练集在前验证集在后两者时间不重叠2. 聚簇数据Highly Clustered例子同一个人的多张照片、同一视频的多段剪辑问题随机划分可能把同一个人的照片同时放进训练集和验证集模型记住了这个人而不是学到了通用特征方法按簇划分把整个人的所有照片要么全进训练集要么全进验证集3. 类别极度不平衡Highly Imbalanced问题随机划分可能导致少数类在验证集中代表性不足甚至缺失方法分层抽样Stratified Sampling确保训练集和验证集中各类别比例一致或对少数类过采样K折交叉验证背景数据量不够大时Hold Out 方法会浪费一部分数据做验证训练数据变少模型学不充分。解决让每个样本都有机会既当训练数据又当验证数据最大化数据利用。计算成本高适用于数据量小需要可靠评估的情况常见的问题如果你的模型表现好得不可思议那很可能有 bug —— 而验证集被污染是头号原因。错误 1验证集包含训练集的重复样本错误 2信息从训练集泄露到验证集错误 3过度使用验证集调参 作弊