首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab:如何在保留标签信息的同时,将数据矩阵分解成两个列向量的随机子集?

Matlab:如何在保留标签信息的同时,将数据矩阵分解成两个列向量的随机子集?
EN

Stack Overflow用户
提问于 2014-10-30 19:57:19
回答 1查看 6.3K关注 0票数 5

我有一个数据矩阵X (60x208)和一个标签Y (1x208)的矩阵。我想将我的数据矩阵X分成两个随机的列向量子集:训练(占数据的70% )和测试(占数据的30% ),但我仍然需要能够识别Y中的哪个标签对应于每个列向量。我找不到任何功能来做这个,有什么想法吗?

编辑:我认为我应该添加,只有两个标签在Y: 1和2(不确定这是否有区别)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-30 20:22:16

这很容易做。使用randperm生成从1到尽可能多的索引的随机排列.你的情况是208。

生成此序列后,只需将其及其子集应用到XY中,以提取培训和测试数据和标签。因此,做这样的事情:

代码语言:javascript
复制
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_trainY_train将包含培训集的数据和标签,而X_testY_test将包含测试集的数据和标签。

因此,X_train的第一列是训练集第一个元素的数据点,Y_train的第一个元素作为该特定点的标签.以此类推!

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26662123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档