首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Matlab中引导数据集进行集成学习

在Matlab中引导数据集进行集成学习
EN

Stack Overflow用户
提问于 2019-08-28 12:53:56
回答 1查看 142关注 0票数 0

我有两个矩阵X (122 x 125973)和Y (1 x 125973)。我想在我的数据集上进行引导,我想在其中创建B观测(比如B = 3)。据我所知,B大小的观测结果应该是随机抽取的。如何将XY分割成更小的观察引导样本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-28 13:21:44

randi()使您能够绘制伪随机整数,包括重复条目。然后,这些指标可以作为你观察的指标。因此:

代码语言:javascript
复制
X = rand(122,125973);
Y = rand(1,125973);
m = 3; % Your desired number of observations; maximum 125973
idx = randi(numel(Y),m,1) % Generate an mx1 vector
BX = X(:,idx); % 122xm matrix
BY = Y(:,idx);  % 1xm matrix

您也可以从XY中删除条目,但是由于您已经说过明确允许重复条目,所以它的使用可能与此无关:

代码语言:javascript
复制
X(:,idx) = [];  % [] sets to empty array, thus removes the entry

如果您需要多次m观测,只需循环一遍:

代码语言:javascript
复制
N = 100;  % Number of observation matrices to be generated
m = 3; % Number of observations per matrix
X = rand(122,125973);
Y = rand(1,125973);
BX = rand(size(X,1),m,N);  % 3D matrix for collection
BY = rand(size(X,1),m,N);

for ii = 1:N  % Loop over all matrices to be generated
    idx = randi(numel(Y),m,1) % Generate an mx1 vector
    BX(:,:,ii) = X(:, idx); % 122xmxN matrix
    BY(:,:,ii) = Y(:, idx);  % 1xmxN matrix
end

BXBY现在是包含N矩阵的3D矩阵,每个矩阵都有m观测。调用BX(:,:,n)将选择带有观察的矩阵的n。对于阅读各种索引方式,我建议阅读this post

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

https://stackoverflow.com/questions/57692931

复制
相关文章

相似问题

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