Python机器学习及实践——进阶篇:模型实用技巧
(模型检验与超参数搜索)
1.模型检验
在真正实践机器学习任务的时候,我们并不可能直到正确答案。这就要求我们充分利用现有数据,并且通常的做法依然是对现有数据进行采样分割:一部分用于模型参数训练,叫做训练集(Training set);另一部分数据集合用于调优模型配置和特征选择,并且对未知的测试性能做出评估,叫做开发集(Development set)或者验证集(Validation set)。
1.1留一验证
留一验证(Leave-one-out cross validation)就是从任务提供的数据中,随机采样一定比例作为训练集,剩下的"留做"验证。通常,这个比例为7:3,即70%作为训练集,30%作为验证集。但是,这一方法的模型性能不稳定,原因在于对验证集合随机采样的不确定性。
1.2交叉验证
交叉验证(K-fold cross-validation)可理解为多次留一验证的过程。需要强调的是,每次检验所使用的验证集之间是互斥的,并且要保证每一条可用数据都被模型验证过。以5折交叉验证(5-fold cross-validation