函数crossvalind
来源:互联网 发布:淘宝详情页好做吗 编辑:程序博客网 时间:2024/05/29 16:19
搬运(帮助文档)+翻译+学习
学习神经网络时知道了“交叉验证”这个名词~然鹅,看懂了原理不会写代码(可能懒),最终,由度娘牵线发现matlab里自带了个相关度十分高的函数“crossvalind”,所以就学习记录一下,看能不能帮到自己~
作用:Generate cross-validation indices(生成交叉验证索引)
句法:
1、Indices = crossvalind('Kfold', N, K):返回针对N个样本,进行K折交叉验证随机生成的索引,Indices是1~K的整数,代表K个平均(或接近平均)的子集。K的默认值为5,在 K-fold cross-validation中,K-1个子集用于训练,剩下的一个子集用于验证,重复K次(即每个子集都循环的作为验证集)。
2、[Train, Test] = crossvalind('HoldOut', N, P):返回N个样本的逻辑索引向量,通过随机选取P*N个样本作为评测(验证)集,P∈[0,1],默认值为0.5。
3、[Train, Test] = crossvalind('LeaveMOut', N, M):(留一)当M是整数,返回N个样本的逻辑索引向量,通过随机选取M个样本作为验证集,M默认值为1,。在循环中使用'LeaveMOut'交叉验证不能保证不相关的评估集。 为了保证不相交的评估组,请改用“Kfold”。
4、[Train, Test] = crossvalind('Resubstitution', N, [P,Q]):返回N个样本的逻辑索引向量,随机选择P*N个样本作为验证集,Q*N个样本作为训练集,P && Q∈[0,1],Q=1-P,默认值都为1。
剩下三个不翻译了~感觉不常用。
[...] = crossvalind(Method, Group, ...)
[...] = crossvalind(Method, Group, ..., 'Classes', C)
[...] = crossvalind(Method, Group, ..., 'Min', MinValue)
举例:
Create a 10-fold cross-validation to compute classification error.%10折交叉验证并计算分类误差load fisheriris %下载样本数据集indices = crossvalind('Kfold',species,10);%用了第一个句法,species为种类(个数)cp = classperf(species);%这里的classperf是评估分类器性能的函数for i = 1:10 test = (indices == i); train = ~test;%开始以第一个样本集为验证集,剩余的为训练集 class = classify(meas(test,:),meas(train,:),species(train,:));%用分类器测试 classperf(cp,class,test)%计算性能endcp.ErrorRateans = 0.0200Approximate a leave-one-out prediction error estimate.load carbigx = Displacement; y = Acceleration;N = length(x);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);endCVerr = sse / 100CVerr = 4.9750Divide cancer data 60/40 without using the 'Benign' observations. Assume groups are the true labels of the observations.labels = {'Cancer','Benign','Control'};groups = labels(ceil(rand(100,1)*3));[train,test] = crossvalind('holdout',groups,0.6,'classes',... {'Control','Cancer'});sum(test) % Total groups allocated for testingans = 35sum(train) % Total groups allocated for trainingans = 26
注:这里返回的都是索引,相当于是指针,指向一个样本子集,还有,示例代码中的一些函数都是matlab自己的函数,我们只要关注框架就行。
- 函数crossvalind
- 关于crossvalind函数
- crossvalind函数 (交叉验证函数)
- Matlab交叉验证函数——crossvalind
- matlab函数bsxfun、crossvalind、ismember,kmean
- 十折交叉验证--crossvalind函数
- 人脸识别 交叉验证函数crossvalind 的用法
- matlab 中K折交叉验证crossvalind函数的理解
- crossvalind Matlab 交叉验证
- crossvalind Matlab 交叉验证
- crossvalind Matlab 交叉验证
- Matlab中交叉检验——crossvalind()
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 求最大公约数和最小公倍数的三个算法
- vtkPolydata中取点的坑
- 【luogu1941】飞扬的小鸟(背包dp)
- linux-文件挂载
- 1057. 数零壹
- 函数crossvalind
- nginx学习笔记(一)
- Kibana使用的lucene查询语法
- Selection Sort(选择排序)
- django channels websocket 聊天室
- SqlServer中对应的有外键的主表数据,无法truncate表的处理
- 对oracle中分组函数的一点感悟
- POJ-1284 Primitive Roots 欧拉函数
- javascript闭包传参和事件的循环绑定示例探讨