下面是一个从数据集中选择一组随机排列的例子,我如何用剩余的数据创建一个新的数据集。例如下面我选择 49402(大约 10%)并创建一个以此命名的数据集UnseenTestdata
,我希望其余的进入一个名为testdata
.
pointsToPick = 49402; %# Numbers to pick
rVec = randperm(494021); %# Random permutation of datapoint indices (N=494021 in this case)
UnseenTestdata = fulldata(rVec(1:pointsToPick),:); %# Random sample
Unseentestdata 减去 fulldata = 恰当命名为 testdata 的数据集的剩余部分。
fulldata 集的维度是 494021x6,我从 fulldata 中随机选择 49402x6。然后我需要从 fulldata 中减去 unseentestdata 剩下的内容。
Barnabas Szabolcs 添加了以下测试用例答案:
fulldata = [1 2; 3 4; 5 6; 7 8];
rVec = randperm(4);
pointsToPick=2;
unseen = fulldata(rVec(1:pointsToPick),:);
testdata = fulldata(rVec(pointsToPick:length(rVec)),:);
但是这不起作用,我已经屏幕转储了结果:
如果您在屏幕转储中注意到未见过的数据 = 3,4 和 7,8,但是如果您在 testdata 中注意到 7,8 仍然存在。
如果完整数据 =
1,2
3,4
5,6
7,8
在这种情况下,我们选择两个随机行,看不见的行是:
row
3,4
7,8
那么剩下的应该是:
1,2
5,6
但是,如果您在示例测试 testdata 的屏幕转储中注意到该行:
7,8
表明示例测试不起作用。