使用GPML(Matlab)进行高斯过程的第一个非演示示例?

时间:2017-05-21 22:19:25

标签: matlab machine-learning regression gaussian hyperparameters

在了解了GPML toolbox之后,我使用这些工具编写了第一个代码。我有一个数据矩阵,data由两个总大小为1000的数组值组成。我想使用这个矩阵来估算使用GPML工具箱的GP值。我编写了如下代码:

x = data(1:200,1);    %training inputs
Y = data(1:201,2);  %, training targets 

Ys = data(201:400,2);   
Xs = data(201:400,1);    %possibly test cases


covfunc = {@covSE, 3}; 
ell = 1/4; sf = 1; 
hyp.cov = log([ell; sf]);
likfunc = @likGauss; 
sn = 0.1;
hyp.lik = log(sn);
[ymu ys2 fmu fs2] = gp(hyp, @infExact, [], covfunc, likfunc,X,Y,Xs,Ys);

plot(Xs, fmu);

但是当我运行此代码时出现错误'在了解了GPML toolbox之后,我使用这些工具编写了第一个代码。我有一个数据矩阵,data由两个总大小为1000的数组值组成。我想使用这个矩阵来估算使用GPML工具箱的GP值。我编写了如下代码:

x = data(1:200,1);    %training inputs
Y = data(1:201,2);  %, training targets 

Ys = data(201:400,2);   
Xs = data(201:400,1);    %possibly test cases


covfunc = {@covSE, 3}; 
ell = 1/4; sf = 1; 
hyp.cov = log([ell; sf]);
likfunc = @likGauss; 
sn = 0.1;
hyp.lik = log(sn);
[ymu ys2 fmu fs2] = gp(hyp, @infExact, [], covfunc, likfunc,X,Y,Xs,Ys);

plot(Xs, fmu);

但是当我运行此代码时:

  

使用covMaha时出错(第58行)参数模式是'eye','iso',   'ard','proj','fact'或'vlen'

如果有可能请帮我弄明白我在哪里弄错了?

1 个答案:

答案 0 :(得分:0)

我知道这已经很晚了,但我自己也遇到了这个问题。解决方法是改变

covfunc = {@covSE, 3};

类似的东西

covfunc = {@covSE, 'iso'};

它不一定是 'iso',它可以是错误消息中列出的任何选项。只需确保为您选择的特定模式正确设置了超参数。 GPML 中的 covMaha.m 文件对此进行了详细说明。