使用单输入 GPML 进行大规模回归
Large scale regression using GPML with single input
我使用 GPML Matlab 包解决二维大规模回归问题。
正如用户手册 (http://www.gaussianprocess.org/gpml/code/matlab/doc/) 中所述,我引入了大规模回归的输入。
nu = fix(n/2); iu = randperm(n); iu = iu(1:nu); u = x(iu,:);
其中 n 是输入变量的数量。
如果我有超过 2 个输入,它工作正常。但是当我只想计算一个输入的预测时,推理方法失败了,即 n= 1
covfunc = @covSEiso;
likfunc = @likGauss;
n= 1;
nu = fix(n/2);
iu = randperm(n);
iu = iu(1:nu);
u = X(iu,:);
meanfunc = @meanConst;
covfuncF = {@covFITC, {covfunc}, u};
ll = 1.0; sf = 1.0;
hyp.cov = log([ll sf]);
sn = 0.1; hyp.lik = log(sn);
hyp.mean = 0;
[mF s2F] = gp(hyp, @infFITC, [], covfuncF, likfunc, X(:,2), Y, X(:,2));
我只想使用 X 的第二列作为 GP 的输入,并使用目标 Y 进行训练。
发现错误!
如果我只使用 X 的 2 个变量来训练模型,则也应该对诱导点进行采样。
但错误是,我使用 X 的诱导点(10 维),
u = X(iu,:);
错了!
@noumenal:查看第 21 行有帮助!谢谢
我使用 GPML Matlab 包解决二维大规模回归问题。 正如用户手册 (http://www.gaussianprocess.org/gpml/code/matlab/doc/) 中所述,我引入了大规模回归的输入。
nu = fix(n/2); iu = randperm(n); iu = iu(1:nu); u = x(iu,:);
其中 n 是输入变量的数量。
如果我有超过 2 个输入,它工作正常。但是当我只想计算一个输入的预测时,推理方法失败了,即 n= 1
covfunc = @covSEiso;
likfunc = @likGauss;
n= 1;
nu = fix(n/2);
iu = randperm(n);
iu = iu(1:nu);
u = X(iu,:);
meanfunc = @meanConst;
covfuncF = {@covFITC, {covfunc}, u};
ll = 1.0; sf = 1.0;
hyp.cov = log([ll sf]);
sn = 0.1; hyp.lik = log(sn);
hyp.mean = 0;
[mF s2F] = gp(hyp, @infFITC, [], covfuncF, likfunc, X(:,2), Y, X(:,2));
我只想使用 X 的第二列作为 GP 的输入,并使用目标 Y 进行训练。
发现错误!
如果我只使用 X 的 2 个变量来训练模型,则也应该对诱导点进行采样。 但错误是,我使用 X 的诱导点(10 维),
u = X(iu,:);
错了! @noumenal:查看第 21 行有帮助!谢谢