我将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行有帮助!谢谢

10-05 18:07