poster
2019-12-14, 20:46
我有一个矩阵和一个向量,每个向量有3000行:
fe = [-0.1850 -0.4485; ... -0.2150 2.6302; ... -0.2081 1.5883; ... -0.6416 -1.1924; ... -0.1188 1.3429; ... -0.2326 -2.2737; ... -0.0799 1.4821; ... ... %# lots more rows ]; tar = [1; ... 1; ... 2; ... 1; ... 2; ... 1; ... 1; ... ... %#lots more rows ]; 我想将fe和tar的行分开,以便将其中的2/3放到一组变量中,其余的1/3放到第二组变量中。这是出于分类目的(即一组是训练数据,另一组是测试数据)。
我有两种潜在的方法可以做到这一点:
按顺序拆分行,一个矩阵中的前2/3,另一个矩阵中的后1/3。
随机选择2/3行并将其分配到一个矩阵,然后将其余部分放在另一个矩阵中。
如何实现这些解决方案中的每一个?
回答:
假设您需要选择2/3行和两列,则可以
feTrain=fe(1:2000,:); feTest=fe(2001:end,:); 如果要分配随机选择的行的2/3(即不是前2/3),则可以使用randperm函数生成行索引的随机顺序并将其用于索引。
nRows=size(fe,1); randRows=randperm(nRows);%# generate random ordering of row indices feTrain=fe(randRows(1:2000),:);%# index using random order feTest=fe(randRows(2001:end),:);
更多&回答... (https://stackoverflow.com/questions/5385174)
fe = [-0.1850 -0.4485; ... -0.2150 2.6302; ... -0.2081 1.5883; ... -0.6416 -1.1924; ... -0.1188 1.3429; ... -0.2326 -2.2737; ... -0.0799 1.4821; ... ... %# lots more rows ]; tar = [1; ... 1; ... 2; ... 1; ... 2; ... 1; ... 1; ... ... %#lots more rows ]; 我想将fe和tar的行分开,以便将其中的2/3放到一组变量中,其余的1/3放到第二组变量中。这是出于分类目的(即一组是训练数据,另一组是测试数据)。
我有两种潜在的方法可以做到这一点:
按顺序拆分行,一个矩阵中的前2/3,另一个矩阵中的后1/3。
随机选择2/3行并将其分配到一个矩阵,然后将其余部分放在另一个矩阵中。
如何实现这些解决方案中的每一个?
回答:
假设您需要选择2/3行和两列,则可以
feTrain=fe(1:2000,:); feTest=fe(2001:end,:); 如果要分配随机选择的行的2/3(即不是前2/3),则可以使用randperm函数生成行索引的随机顺序并将其用于索引。
nRows=size(fe,1); randRows=randperm(nRows);%# generate random ordering of row indices feTrain=fe(randRows(1:2000),:);%# index using random order feTest=fe(randRows(2001:end),:);
更多&回答... (https://stackoverflow.com/questions/5385174)