第一步,不重复抽样将原始数据随机分为 k 份。

第二步,每一次挑选其中 1 份作为测试集,剩余 k-1 份作为训练集用于模型训练。

第三步,重复第二步 k 次,这样每个子集都有一次机会作为测试集,其余机会作为训练集。 在每个训练集上训练后得到一个模型, 用这个模型在相应的测试集上测试,计算并保存模型的评估指标,

第四步,计算 k 组测试结果的平均值作为模型精度的估计,并作为当前 k 折交叉验证下模型的性能指标。 

也可以专门留出测试集(不参与K折),而K折过程用于模型调优

../_images/grid_search_cross_validation.png

 

scikit-learn中计算交叉验证的函数:

cross_val_score:得到K折验证中每一折的得分,K个得分取平均值就是模型的平均性能

cross_val_predict:得到经过K折交叉验证计算得到的每个训练验证的输出预测

在最新的版本sklearn 0.21中cross_val_score与cross_validate被统一,cross_val_score仅仅为调用cross_validate返回字典的结果。

cross_val_score计算得到的平均性能可以作为模型的泛化性能参考

cross_val_predict计算得到的样本预测输出不能作为模型的泛化性能参考

 

 

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐