matlab 交叉验证 代码,交叉验证(Cross Validation)方法思想简介
本帖最后由 azure_sky 于 2014-1-17 00:30 编辑
2).K-fold Cross Validation(记为K-CV)
将原始数据分成K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标.K一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2.K-CV可以有效的避免过学习以及欠学习状态的发生,最后得到的结果也比较具有说服性.
--------------------------------------------我是分界线------------------------------------------------------------------------------------
关于交叉验证K-FOLD我有几个问题:
1) 假设是4-fold的交叉验证,需要跑四次SVM,有四个model。我想问,他们的SVM 的参数,比如c和g设置相同么?
2) k-fold CV经常被用作参数选取。这个最佳参数是怎么得到的。
每个model会得到一个c和g的参数
然后对这k个参数加权平均么?
还是说,在进行k-fold cv时,所有模型使用相同的c和g参数。
3)关于k-fold的用法。 我常见的一种情况是,有训练数据traindata和测试数据testdata
在traindata上跑交叉验证,选取最佳参数,然后在testdata上进行预测。
现在的情况是,我只有traindata,我想要用k-fold交叉验证在traindata。我关心的不是准确率,而是具体的预测值。
我知道libsvm中有一个 '-v'选项进行交叉验证。
例如代码 svr_model = svmtrain( data_label, data_scale, '-v','10' );
但是这样获得了一个model。能不能得到fold是怎么分的呢。
每个chunk是对应着哪些训练数据的index?
每一个fold跑完,在那个 对应的1/k * length(traindata) 上预测的label是什么?
4)k-fold在训练数据上进行预测,怎么操作。
比如我现在只有数据traindata。
我想得到k-fold cv在traindata上的预测值。
我可以进行如下操作么:
1) 用k-fold进行参数寻优。得到最好的c和g。使用命令
[bestmse,bestc,bestg]=SVMcgForRegress(train_label ,traindata);
2) 用c和g,用traindata进行k-fold的训练得到模型
cmd = ['-c ',num2str(bestc),' -g ',num2str(bestg),'-v 10 -s 3 -p 0.01'];
svr_model = svmtrain( train_label, traindata_scale, cmd );
3)用得到的model在整个traindata得到预测值
[pred_label] = svmpredict(train_label, traindata, svr_model);
这样做感觉很奇怪。我可以在第二步得到对应的 k-fold数据划分,以及在那个1/k chunk上的预测值么?
matlab 交叉验证 代码,交叉验证(Cross Validation)方法思想简介相关推荐
- 交叉验证(Cross Validation)方法思想简介
交叉验证(CrossValidation)方法思想 以下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(data ...
- 交叉验证方法思想简介
交叉验证方法思想简介 以下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训 ...
- 留一法(交叉验证法,Leave-One-Out Cross Validation)
交叉验证法 这种方法比较简单易懂,就是把一个大的数据集分为k个小数据集,其中k-1个作为训练集,剩下的一个作为测试集,然后选择下一个作为测试集,剩下的k-1个作为训练集,以此类推.这其中,k的取值就比 ...
- 交叉验证(CrossValidation)方法思想简介
以下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据(dataset)进行分组,一部分做为训练集(train se ...
- 机器学习代码实战——K折交叉验证(K Fold Cross Validation)
文章目录 1.实验目的 2.导入数据和必要模块 3.比较不同模型预测准确率 3.1.逻辑回归 3.2.决策树 3.3.支持向量机 3.4.随机森林 1.实验目的 使用sklearn库中的鸢尾花数据集, ...
- php表单服务器验证失败,php 表单验证代码(验证失败显示提示信息)
搜索热词 感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编来看看吧. 经测试代码如下: /** * 表单验证 * * @param * @arrange (512.笔记) jb51.cc * ...
- matlab安装MinGW-64代码C/C++编译器的方法
一.说明 matlab中编写的m文件转成C/C++代码,以及matlab中执行C/C++带啊,需要用到mex 查看matlab是否支持可以输入mex -setup: 二.安装 如果不支持,没找到,则需 ...
- 深度学习:交叉验证(Cross Validation)
首先,交叉验证的目的是为了让被评估的模型达到最优的泛化性能,找到使得模型泛化性能最优的超参值.在全部训练集上重新训练模型,并使用独立测试集对模型性能做出最终评价. 目前在一些论文里倒是没有特别强调这样 ...
- 留一法交叉验证 Leave-One-Out Cross Validation
交叉验证法,就是把一个大的数据集分为 kkk 个小数据集,其中 k−1k-1k−1 个作为训练集,剩下的 111 个作为测试集,在训练和测试的时候依次选择训练集和它对应的测试集.这种方法也被叫做 kk ...
最新文章
- 如何制作一颗CPU? 从石子到管脚绑定
- django配置mysql数据库
- js 数字,金额 用逗号 隔开。数字格式化
- Git Flow分支管理
- struct msghdr和struct cmsghdr【转载】
- 使用redis保存验证码
- 基于WiEngine游戏引擎的Sample
- 贾俊平统计学思维导图- 第八章 假设检验
- python迅雷远程下载页面_迅雷远程下载
- 7-4 查询水果价格 PTA
- reactos回顾总结(一)reactos源码编译
- python: del函数
- C语言简单直观打印二叉树
- IOS手机安装完fiddler证书后依然无法上网
- src refspec master does not match any问题
- 不同计算机用户的区别是什么意思,电脑操作系统的32位和64位分别是什么意思?有什么区别?...
- JAVA避免使用魔法数值
- 游戏试玩站打码赚钱任务网平台系统源码+可运营
- python 实现经纬度与大地2000坐标的转换
- IOS 笔记大全 (UI控件到网络协议)
热门文章
- Golang库学习笔记 Gin(三)
- Hough Transform 的算法思想
- 统计学习方法 第一章 学习笔记
- linux i217 v网卡驱动,手动安装Intel network I217-LM网卡的Linux驱动
- [云炬创业基础笔记] 第三章测试2
- USTC English Club Note20171015(5)
- [云炬python3玩转机器学习] 6-1什么是梯度下降法
- [云炬python3玩转机器学习] 5-3简单线性回归的实现
- 学长毕业日记 :本科毕业论文写成博士论文的神操作20170408
- 学长毕业日记 :本科毕业论文写成博士论文的神操作20170406