php动态网站开发教学视频企业软文代写
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)为例,全部可用数据被随机分割为平均数量的5组,每次迭代都选取其中的1组数据作为验证集,其他4组作为训练集。
交叉验证的好处在于,可以保证所有数据都有被训练和验证的机会,也尽最大可能让优化的模型性能表现得更加可信。
2.超参数搜索
前面提到的模型参数