数据挖掘|cross_val_score 交叉验证使用
背景
原理
适用场景
案例说明
背景
通过模型验证结果,根据结果来选择最合适的模型。特别是对于监督学习而言,会希望好的模型对未知数据处理有很强的泛化能力。目前模型常用的几种方式。
用训练准确度,也就是全部数据进行训练和测试。这种方法可能会导致模型过拟合;
用测试准确度,可以有效避免过拟合,也是最常用的方式。具体是将所有数据分成训练集和测试集两部分,用训练集进行模型训练,得到的模型再用测试集来衡量模型的预测表现能力。测试准确度的缺点是其样本准确度是一个高方差估计。样本准确度依赖不同的测试集,每次测试集结果是不同的,结果呈现是一组低偏差,高方差数据;
交叉验证。也叫 K 折交叉验证,是在测试准确度的基础上,确定把训练集、测试集分成 K 次(K 取决于数据量大小或者个人经验),然后取结果平均值。
原理
将数据集平均分割成 K 个等份;
使用 1 份数据作为测试数据,其余作为训练数据;
计算测试集准确率;
使用不同的测试集,重复 2、3 步骤;
测试集准确率取平均值,作为对未知数据预测准确率的估计。
注意:
K = 10 是常规建议,如上面所说,K 取决于数据量大小、个人经验、分析目的。
对于分类问题,应该使用分层抽样(stratified sampling)来生成数据,保证正负例的比例在训练集和测试集中的比例相同。
适用场景
在模型选择、参数选择、交叉验证的场景下可以使用交叉验证。
案例说明
使用鸢尾花数据集,KNN 和 logistic 回归模型进行模型的比较和选择。
复制代码
复制代码
版权声明: 本文为 InfoQ 作者【黄大路】的原创文章。
原文链接:【http://xie.infoq.cn/article/db4ba203100d8fb6294ed9c6a】。文章转载请联系作者。
评论