我想在MATLAB中进行1次交叉验证(LOOCV)并且我有两个单元格,其中存储了我的数据。我的第一个单元格Original{}
是一个1x33矩阵,每个矩阵1x7。我的第二个单元Predicted{}
与Original{}
具有完全相同的数据量。
如何制作for
循环以将1个主题用于测试,32个用于培训,33次?
我也想知道每个交叉验证值的R ^ 2(R平方)。
这是我试图制作的代码:
%% cross validation Leave 1 out
for i = 1:33
xcv = Predicted{1,i};
ycv = Original{1,i};
sse = 0;
N = 33;
for i = 1:7
[train,test] = crossvalind('LeaveMOut',N,1);
%crossval = xcv(train), ycv(train),xcv(test);
sum = sse + sum ((crossval - ycv(test)).^2);
end
end