使用交叉验证损失估计
vals = crossval(乐趣,x)
vals = crossval(乐趣,x,y,...)
MSE = Crossval('MSE',X,Y,'Predfun',Predfun)
MCR = Crossval('MCR',X,Y,'Predfun',Predfun)
val = crossval(标准
,x1,x2,...,y,'predfun',predfun)
vals = crossval(...,'名称
',价值
)
vals = crossval(乐趣,x)
对功能执行10倍交叉验证乐趣
,应用于数据X
。
乐趣
是具有两个输入功能的函数处理,训练子集X
那XTrain.
,以及测试子集X
那XTest.
, 如下:
testval =有趣(xtrain,xtest)
每次被称为,乐趣
应该使用XTrain.
要适合模型,然后返回一些标准testval.
计算在XTest.
使用该拟合模型。
X
可以是列向量或矩阵。行X
对应观察;列对应于变量或功能。每一排val
包含申请结果乐趣
一个测试集。如果testval.
是非标量值,横梁
使用线性索引将其转换为行向量并存储在一行中val
。
vals = crossval(乐趣,x,y,...)
当数据存储在单独的变量中时使用X
那y
,......所有变量(列向量,矩阵或数组)必须具有相同数量的行。乐趣
用训练子集调用X
那y
,......,后跟测试子集X
那y
, ... , 如下:
testvals = fun(xtrain,ytrain,...,xtest,ytest,......)
MSE = Crossval('MSE',X,Y,'Predfun',Predfun)
回报MSE
,一个标量包含一个10倍的交叉验证估计的函数的平均误差预先
。X
可以是列向量,矩阵或预测器数组。y
是响应值的列向量。X
和y
必须具有相同数量的行。
预先
是函数句柄调用训练子集X
,训练子集y
,以及测试子集X
如下:
Yfit = Predfun(Xtrain,Ytrain,XTest)
每次被称为,预先
应该使用XTrain.
和ytrain.
适合回归模型,然后在列向量中返回拟合值YFIT.
。每一排YFIT.
包含相应行的预测值XTest.
。横梁
计算之间的平方误差YFIT.
和相应的响应测试集,并返回所有测试集中的整体均值。
MCR = Crossval('MCR',X,Y,'Predfun',Predfun)
回报MCR.
,一个标量包含10倍交叉验证估计的错误分类率(错误分类样本的比例)的功能预先
。矩阵X
包含预测值值和向量y
包含类标签。预先
应该使用XTrain.
和ytrain.
适合分类模型并返回YFIT.
作为预测的类标签XTest.
。横梁
计算之间的错误分类次数YFIT.
和相应的响应测试集,并返回所有测试集的整体错误分类率。
val = crossval(
, 在哪里标准
,x1,x2,...,y,'predfun',predfun)标准
是'妈妈'
或者'MCR'
,返回具有预测值值的平均平均错误(用于回归模型)或错误分类率(用于分类模型)的交叉验证估计X1
那X2
,......以及分别,响应值或类标签y
。X1
那X2
, ... 和y
必须具有相同数量的行。预先
是一个函数句柄调用训练子集X1
那X2
,......,训练子集y
,以及测试子集X1
那X2
, ..., 如下:
YFIT = Predfun(X1Train,X2Train,...,Ytrain,X1Test,X2Test,......)
YFIT.
应该是包含拟合值的列向量。
vals = crossval(...,'
指定下表中的一个或多个可选参数名称/值对。指定名称
',价值
)名称
在单引号内。
名称 | 价值 |
---|---|
坚持 |
标量指定比例或观察数量 |
kfold. |
正整数大于1,指定折叠数量 |
忽略 |
指定休假交叉验证。价值必须是 |
mcreps. |
一个正整数,指定验证的Monte-Carlo重复的数量。如果是第一个输入 |
划分 |
一个东西 |
分层 |
柱矢量 |
选项 |
一个指定是否并行运行的结构,并指定随机流或流。创造
|
只有一个kfold.
那坚持
那忽略
, 或者划分
可以指定,和划分
无法指定分层
。如果两者划分
和mcreps.
指定了,第一个Monte-Carlo重复使用分区信息CVPartition.
对象,和重新开始
调用方法以为每个剩余重复生成新分区。如果未指定交叉验证类型,则默认值为10倍交叉验证。
使用与分类算法的交叉验证时,优选分层。否则,某些测试集可能不包括来自所有类的观察。
使用10倍交叉验证计算回归的均值平衡误差:
加载('渔业');Y = MEAS(:,1);x = [尺寸(尺寸(y,1),1),meas(:,2:4)];Regf = @(xtrain,ytrain,xtest)(xtest * forgent(ytrain,xtrain));CVMSE = Crossval('MSE',X,Y,'Predfun',Regf)CVMSE = 0.1015
使用分层10倍交叉验证计算错误分类率:
加载('渔业');y =物种;x = meas;Cp = CVPartition(Y,'K',10);%分层交叉验证classf = @(xtrain,ytrain,xtest)(分类(xtest,xtrain,... ytrain));cvmcr =横跨('mcr',x,y,'predfun',classf,'partition',cp)cvmcr = 0.0200
使用分层10倍交叉验证计算混淆矩阵:
加载('渔业');y =物种;x = meas;订单=独特(Y);Group标签CP = CVPartition的%顺序(Y,'K',10);%分层交叉验证f = @(xtr,ytr,xte,yte)confusionmat(yte,...分类(xte,xtr,YTR),'订单',订单);CFMAT = Crossval(f,x,y,'分区',cp);CFMAT = REPAPE(SUM(CFMAT),3,3)CFMAT = 50 0 0 0 48 2 0 1 49
CFMAT.
是10个测试集的10个混淆矩阵的总和。
[1] Hastie,T.,R. Tibshirani和J. Friedman。统计学习的要素。纽约:斯普林斯,2001年。