使用randperm分裂数据

时间:2015-07-10 14:19:48

标签: matlab split

我有

phpMyAdmin

我可以随机选择90%的数据用于训练,剩下的(10%)用于测试集然后重复分割10次。

$P$BX5675uhhghfhgfhfhfgftut/0

我写了这段代码

dataset=[6 7;
         5 4;
         9 8;
         1 2;
         9 8;
         4 5;
         1 2;
         3 4;
         8 7;
         6 2] 

分割数据,但我无法获得结果

1 个答案:

答案 0 :(得分:2)

dataset=[6 7;
         5 4;
         9 8;
         1 2;
         9 8;
         4 5;
         1 2;
         3 4;
         8 7;
         6 2] 

使用randperm随机重新排序数据集:

n = size(dataset,1);
data_rand = dataset(randperm(n),:)

然后每次抽出不同的10%:

m = ceil(n/10);
group = 1;
for k = 1:m:n-m
    test{group} = data_rand(k:k+m-1,:)
    train{group} = [data_rand(1:k-1,:); data_rand(k+m:end,:)];
    group = group + 1;
end

但我也建议您阅读cross validation in Matlab,因为它有很多内置功能。<​​/ p>