如何在MATLAB中估算Leave One Out交叉验证(LOOCV)?

时间:2017-12-06 12:41:21

标签: matlab validation regression cross-validation pattern-recognition

我想在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

0 个答案:

没有答案