五折交叉验证详细解说
步骤:
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循环中加入相应使用代码即可。
第一次写文章,欢迎批评指正。
本文详细介绍了五折交叉验证的过程,包括将数据集分为五份,轮流将一份作为测试集,其余作为训练集进行模型训练与评估。通过图示和Matlab代码示例,帮助读者理解如何实施这一重要的机器学习验证技术。
7万+





