R语言k折交叉验证

版权声明:本文为博主原创文章,未经博主允许不得转载。咨询链接:http://y0.cn/teradat 博文链接: https://blog.csdn.net/qq_19600291/article/details/82151248

“机器学习中需要把数据分为训练集和测试集,因此如何划分训练集和测试集就成为影响模型效果的重要因素。本文介绍一种常用的划分最优训练集和测试集的方法——k折交叉验证。”

k折交叉验证

K折交叉验证(k-fold cross-validation)首先将所有数据分割成K个子样本,不重复的选取其中一个子样本作为测试集,其他K-1个样本用来训练。共重复K次,平均K次的结果或者使用其它指标,最终得到一个单一估测。

这个方法的优势在于,保证每个子样本都参与训练且都被测试,降低泛化误差。其中,10折交叉验证是最常用的。

实例代码

在线性分类器与性能评价(R语言)中,我们将数据集随机抽取70%作为训练集,剩下30%作为测试集,通过线性回归的方法进行预测,通过ROC和AUC评价模型效果。现在,我们使用k折交叉验证的方法,选取最优的训练集和测试集,建立线性分类器并评价模型效果。

1、数据导入并分组。导入数据,并使用caret包中的createFolds()函数,根据标签列将数据分成10份 。

2、选取最优训练集与测试集。构建for循环,得到十次交叉验证预测的AUC值。并纪录取值最大的一组,作为最优的训练集与测试集划分。

10次auc取值结果如下:

3、构建分类器并判断模型效果。根据前一步的结果,使用最优划分构建线性分类器并预测。绘制出测试集的ROC曲线。

线性分类器与性能评价(R语言)中随机选取训练集和测试集,最终测试集的AUC值仅为0.755,而本次我们通过k折交叉验证选取训练集和测试集,测试集AUC值达到0.936,可以看出模型效果提升显著。

▍需要帮助?联系我们

大数据部落       -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和

统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服

点击这里给我发消息QQ:3025393450

【服务场景】        

 科研项目; 公司项目外包;线上线下一对一培训;学术研究。

【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询服务

 

分享最新的大数据资讯,每天学习一点数据分析,让我们一起做有态度的数据人【大数据部落】大数据部落提供定制化的一站式数据挖掘和统计分析咨询服务

微信客服号:lico_9e

QQ交流群:186388004  

欢迎关注微信公众号,了解更多数据干货资讯!

加入欢迎的我们大数据学习必备利器课程

http://study.163.com/course/courseMain.htm?courseId=1003776041&share=2&shareId=1023497288

 

猜你喜欢

转载自blog.csdn.net/qq_19600291/article/details/82151248
今日推荐