五折交叉验证

五折交叉验证详细解说
步骤:
step1:将数据集分为5堆;
step2:选取一堆作为测试集,另外四堆作为训练集;
step3:重复step2 五次,每次选取的训练集不同。
图示:

data data1 data2 data3 data4 data5
1 test train train train train
2 train test train train train
3 train train test train train
4 train train train test train
5 train train train train test

matlab实现代码:

clear;clc;
load('Winedata.mat')   %红酒数据在UCI数据集中即可下载
nFold = 5; 
[n,p] = size(winedata);
c_out = cvpartition(n,'k',nFold);
for k = 1:nFold
    Train_dat = winedata(training(c_out,k),:);
    Test_dat = winedata(test(c_out,k),:);   
end

注:此代码直接运行后,工作空间中显示的是最后一折的数据。若想得到每折数据,则可以设置结点,逐步运行,然后save数据即可;若想在此代码中直接使用每折数据,则在for循环中加入相应使用代码即可。

第一次写文章,欢迎批评指正。

你可能感兴趣的:(机器学习,数据挖掘)