博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
交叉检验---训练数据,验证数据和测试数据
阅读量:6617 次
发布时间:2019-06-25

本文共 1151 字,大约阅读时间需要 3 分钟。

最近在上学习课程,课程论坛中有个针对交叉检验(Cross Validation)中训练数据集(train dataset),验证数据集(Validate dataset)和测试数据集(test dataset)展开讨论,内容挺好的,记录到这里,作为备忘。

 

交叉检验(Cross Validation)

在数据分析中,有些算法需要利用现有的数据构建模型,比如贝叶斯分类器,决策树,线性回归等,这类算法统称为监督学习(Supervisied Learning)算法。构建模型需要的数据称之为训练数据(Train Data)。

模型构建完后,需要利用数据验证模型的正确性,这部分数据被称为测试数据(Test Data)。测试数据不能用于模型构建之中,只能用于最后检验模型的准确性。

 

训练数据,验证数据和测试数据

一般做预测分析时,会将数据分为两大部分。一部分是训练数据,用于构建模型,一部分是测试数据,用于检验模型。但是,有时候模型的构建过程中也需要检验模型,辅助模型构建,所以会将训练数据在分为两个部分:1)训练数据;2)验证数据(Validation Data)。验证数据用于负责模型的构建。典型的例子是用K-Fold Cross Validation裁剪决策树,求出最优叶节点数,防止过渡拟合(Overfitting)。下面形式的描述一下前面提到的3类数据:

  • 训练数据(Test Data):用于模型构建
  • 验证数据(Validation Data):可选,用于辅助模型构建,可以重复使用。
  • 测试数据(Test Data):用于检测模型构建,此数据只在模型检验时使用,用于评估模型的准确率。绝对不允许用于模型构建过程,否则会导致过渡拟合。

 

K次交叉检验(K-Fold Cross Validation)

K次交叉检验的大致思想是将数据大致分为K个子样本,每次取一个样本作为验证数据,取余下的K-1个样本作为训练数据。模型构建后作用于验证数据上,计算出当前错误率。重复K次,将K次错误率平均,得到一个总体的错误率。可以通过整体错误率,估计当前整体数据用于建模的错误率。

举个例子,K = 10(常见情况),求出总体错误率为8.7%。那么将当前的所有数据全部作为训练数据,得到的模型的错误率90%的可能在9.7%左右。

 

参考资料

  • 交叉验证Wik:i
  • Data Analysis on Coursera:
声明:如有转载本博文章,请注明出处。您的支持是我的动力!文章部分内容来自互联网,本人不负任何法律责任。
本文转自bourneli博客园博客,原文链接:http://www.cnblogs.com/bourneli/archive/2013/03/11/2954060.html
,如需转载请自行联系原作者
你可能感兴趣的文章
Git 跟 GitHub 是什么关系?
查看>>
IE6下jQuery选中select的BUG
查看>>
Tensorflow在win10下的安装(CPU版本)
查看>>
一次优化记录
查看>>
cgroup代码浅析(2)
查看>>
会计的思考(42):会计如何转变为公司的内部财务顾问
查看>>
利用钥匙串,在应用里保存用户密码的方法
查看>>
vuex状态管理详细使用方法
查看>>
不要等有了足够的钱才选择去创业!!!
查看>>
手把手教你画嘴巴,以后再也不怕画嘴巴了
查看>>
selenium - webdriver - 截图方法get_screenshot_as_file()
查看>>
io.lettuce.core.RedisCommandTimeoutException: Command timed out
查看>>
种子填充算法描述及C++代码实现
查看>>
Kali渗透测试——快速查找Metasploit的模块
查看>>
如何生成项目的chm文档
查看>>
java封装httpClient工具(支持http和https,包含get和post请求)
查看>>
Rocket - diplomacy - LazyModuleImpLike
查看>>
Exchange Server 2016管理系列课件25.管理安全通讯组
查看>>
计算机科学,大一学生怎样来爱你(文&PPT)
查看>>
PHP 开发社区微信服务号实战图解
查看>>