1

在对GPML 工具箱有一些基本了解之后,我使用这些工具编写了我的第一个代码。我有一个数据矩阵,即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 工具箱有一些基本了解后,我使用这些工具编写了我的第一个代码。我有一个数据矩阵,即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”

如果可能的话,请帮助我找出我在哪里犯错?

4

1 回答 1

0

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

covfunc = {@covSE, 3};

类似于

covfunc = {@covSE, 'iso'};

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

于 2021-03-31T15:57:13.240 回答