【问题标题】:Large scale regression using GPML with single input使用单输入的 GPML 进行大规模回归
【发布时间】:2016-02-17 15:58:45
【问题描述】:

我使用 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 进行训练。

【问题讨论】:

  • 失败是什么意思?你收到错误了吗?
  • @noumenal:以下是错误消息:** 推理方法失败 [使用 covFITC 时出错(第 21 行)诱导输入的维度必须匹配训练输入]**
  • 你试过edit covFITC这个命令,看看第21行吗?我不建议您更改此文件,但也许它会让您了解导致错误的原因。您在哪里定义训练输入?
  • 代码的最后一行显示了训练输入,即第 2 列中 X 的所有行,我使用相同的行进行测试。 Y 是我的目标值。

标签: matlab machine-learning regression


【解决方案1】:

发现错误!

如果我只使用 X 的 2 个变量来训练模型,则还应该对诱导点进行采样。 但问题是,我使用 X 的诱导点(10 维),

u = X(iu,:); 

错了! @noumenal:查看第 21 行有帮助!谢谢

【讨论】:

    猜你喜欢
    • 2014-02-14
    • 2013-12-15
    • 2017-05-16
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 2011-03-21
    相关资源
    最近更新 更多