基于scikit-learn工具的交叉验证模型 — cross_validation
发布时间
阅读量:
阅读量
1. 何为交叉检验
在开展数据挖掘相关工作或竞赛时,通常会提供一个用于训练的train数据集和一个用于测试的test数据集。接着,通过构建一个或多个模型对train数据集进行训练,并将最终训练完成的模型应用于test数据集的预测任务中。然而,随之而来的问题是,如何判断所训练出的模型是否具有较高的性能?
为了解决这一问题,通常的做法是将原始train数据集划分为两个子集,即train_1和train_2。利用train_1作为训练样本进行建模,并将所得模型用于对train_2进行效果验证。由于此时train_2同样包含目标变量,因此能够评估模型的实际表现。
然而,这种方法也存在一定的缺陷:在持续优化模型以提升其在train_2上的表现时,可能会导致模型对该部分数据产生过拟合现象。而我们的最终目标是预测test数据集的结果,因此仅依赖单一验证集的方式并不可取。为避免这一问题,应采用多份子集进行多次验证,并对结果取平均值;这样可以有效降低对某一份验证数据过度适应的风险。这种策略被称为交叉验证方法。
接下来将重点介绍如何借助sklearn库中的cross_validation模块实现交叉验证过程。
2. cross_validation
2.1 cross_validation.KFold
KFold(n,n_f
全部评论 (0)
还没有任何评论哟~
