我有一个数据矩阵X (60x208)和一个标签Y (1x208)的矩阵。我想将我的数据矩阵X分成两个随机的列向量子集:训练(占数据的70% )和测试(占数据的30% ),但我仍然需要能够识别Y中的哪个标签对应于每个列向量。我找不到任何功能来做这个,有什么想法吗?
编辑:我认为我应该添加,只有两个标签在Y: 1和2(不确定这是否有区别)
发布于 2014-10-30 20:22:16
这很容易做。使用randperm生成从1到尽可能多的索引的随机排列.你的情况是208。
生成此序列后,只需将其及其子集应用到X和Y中,以提取培训和测试数据和标签。因此,做这样的事情:
num_points = size(X,2);
split_point = round(num_points*0.7);
seq = randperm(num_points);
X_train = X(:,seq(1:split_point));
Y_train = Y(seq(1:split_point));
X_test = X(:,seq(split_point+1:end));
Y_test = Y(seq(split_point+1:end));split_point确定我们需要将多少点放在我们的训练集中,如果这个计算产生任何小数点,我们将需要对它进行四舍五入。我也没有硬代码208在那里,因为您的数据集可能会增长,因此这将与任何大小的数据集,您选择。X_train和Y_train将包含培训集的数据和标签,而X_test和Y_test将包含测试集的数据和标签。
因此,X_train的第一列是训练集第一个元素的数据点,Y_train的第一个元素作为该特定点的标签.以此类推!
https://stackoverflow.com/questions/26662123
复制相似问题