Matlab交叉验证函数——crossvalind
2016-04-29 11:28
1726 查看
Generate cross-validation indices 生成交叉验证索引
[Train, Test] = crossvalind('HoldOut', N, P) % 将原始数据随机分为两组,一组做为训练集,一组做为验证集
[Train, Test] = crossvalind('LeaveMOut', N, M) %留M法交叉验证,默认M为1,留一法交叉验证
[Train, Test] = crossvalind('Resubstitution', N, [P,Q])
[...] = crossvalind(Method, Group, ...)
[...] = crossvalind(Method, Group, ..., 'Classes', C)
[...] = crossvalind(Method, Group, ..., 'Min', MinValue)
Description描述
Indices = crossvalind('Kfold', N, K)
Indices为交叉验证索引产生的索引矩阵(向量),其值矩阵中的值均小于K,K是交叉验证的参数,如10折交叉验证中K=10,N为数据的长度或矩阵的的行数。
[Train, Test] = crossvalind('LeaveMOut', N, M),
M是整数,返回交叉索引逻辑索引向量,其中N个观测值,从N个观测值中随机选取M个观测值保留作为验证集,其余作为训练集。省略时,M默认为1,即留一法交叉验证。 在一个循环中使用LeaveMOut交叉验证不保证不连贯的验证集.使用K-fold方法替换。
例子:
10折交叉验证:
参考:
http://blog.csdn.net/xywlpo/article/details/6531128
http://www.xuebuyuan.com/1409669.html
Generate cross-validation indices 生成交叉验证索引
Syntax语法
Indices = crossvalind('Kfold', N, K) %K折交叉验证[Train, Test] = crossvalind('HoldOut', N, P) % 将原始数据随机分为两组,一组做为训练集,一组做为验证集
[Train, Test] = crossvalind('LeaveMOut', N, M) %留M法交叉验证,默认M为1,留一法交叉验证
[Train, Test] = crossvalind('Resubstitution', N, [P,Q])
[...] = crossvalind(Method, Group, ...)
[...] = crossvalind(Method, Group, ..., 'Classes', C)
[...] = crossvalind(Method, Group, ..., 'Min', MinValue)
Description描述
Indices = crossvalind('Kfold', N, K)
Indices为交叉验证索引产生的索引矩阵(向量),其值矩阵中的值均小于K,K是交叉验证的参数,如10折交叉验证中K=10,N为数据的长度或矩阵的的行数。
[Train, Test] = crossvalind('LeaveMOut', N, M),
M是整数,返回交叉索引逻辑索引向量,其中N个观测值,从N个观测值中随机选取M个观测值保留作为验证集,其余作为训练集。省略时,M默认为1,即留一法交叉验证。 在一个循环中使用LeaveMOut交叉验证不保证不连贯的验证集.使用K-fold方法替换。
例子:
10折交叉验证:
load fisheriris indices = crossvalind('Kfold',species,10); %10为交叉验证折数 cp = classperf(species); for i = 1:10 %实验记进行10次(交叉验证折数),求10次的平均值作为实验结果, test = (indices == i); train = ~test; %产生测试集合训练集索引 class = classify(meas(test,:),meas(train,:),species(train,:)); classperf(cp,class,test) end cp.ErrorRate
留一交叉验证:
load carbig x = Displacement; y = Acceleration; % x为轿车形状的大小,y为轿车轿车速度从0到60公里所用时间 N = length(x); % N为x长度=406 sse = 0; for i = 1:100 [train,test] = crossvalind('LeaveMOut',N,1); yhat = polyval(polyfit(x(train),y(train),2),x(test)); sse = sse + sum((yhat - y(test)).^2); end CVerr = sse / 100
参考:
http://blog.csdn.net/xywlpo/article/details/6531128
http://www.xuebuyuan.com/1409669.html
相关文章推荐
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua学习笔记之表和函数
- Lua中实现sleep函数功能的4种方法
- Lua函数用法研究
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
- Sql Server中REPLACE函数的使用
- PowerShell函数简明教程