使用matlab的高斯过程的平方协方差函数?
Squared covariance function of Gaussian process using matlab?
这是我第一次尝试编写协方差函数。我有以下值,
x = [-1.50 -1.0 -.75 -.40 -.25 0.00];
sf = 1.27;
ell = 1;
sn = 0.3;
平方指数协方差函数的公式为
我写的 matlab 代码为:
K = sf^2*exp(-0.5*(squareform(pdist(x)).^2)/ell^2)+(sn)^2*eye(Ntr,Ntr);
其中sf
是信号标准差,ell
特征长度尺度,sn
噪声标准差和Ntr
训练输入数据的长度x
。
但这没有给我任何结果。我的编码有什么错误吗?
一旦我计算,我想总结成矩阵形式,如下所示,
有什么帮助吗?
if x_ = 0.2
那么我们如何计算:
a) K_ =[k(x_,x1) k(x_,x2)..........k(x_,xn)]
和
b) K__ = k(x_,x_)
使用 matlab ?
我收到以下错误消息:
Error using +
Matrix dimensions must agree.
Error in untitled3 (line 7)
K = sf^2*exp(-0.5*(squareform(pdist(x)).^2)/ell^2)+(sn)^2*eye(Ntr,Ntr);
说明你的矩阵维度不一致。如果您分别评估代码的各个部分,您会注意到 pdist(x)
returns 一个 1x0
向量。在 pdist
的文档中解释了 x
的预期格式:
Rows of X correspond to observations, and columns correspond to
variables
因此,您应该计算 x
的转置,而不是计算 pdist(x)
,即 pdist(x.')
:
K = sf^2*exp(-0.5*(squareform(pdist(x.')).^2)/ell^2)+(sn)^2*eye(Ntr,Ntr);
作为结论,请始终仔细阅读错误消息和文档,尤其是输入参数的预期格式。
子题
要为 x_
的特定值计算 K
(在您提到的公式中为 x'
),您几乎可以将给定的公式直接转换为 MATLAB:
K_ = sf^2*exp(-0.5*(x-x_).^2/ell^2)+(sn)^2*(x == x_);
要计算K__
,您可以使用上面的公式并设置x = x_
,或者您可以将公式简化为:
K__ = sf^2+sn^2;
这是我第一次尝试编写协方差函数。我有以下值,
x = [-1.50 -1.0 -.75 -.40 -.25 0.00];
sf = 1.27;
ell = 1;
sn = 0.3;
平方指数协方差函数的公式为
我写的 matlab 代码为:
K = sf^2*exp(-0.5*(squareform(pdist(x)).^2)/ell^2)+(sn)^2*eye(Ntr,Ntr);
其中sf
是信号标准差,ell
特征长度尺度,sn
噪声标准差和Ntr
训练输入数据的长度x
。
但这没有给我任何结果。我的编码有什么错误吗?
一旦我计算,我想总结成矩阵形式,如下所示,
有什么帮助吗?
if x_ = 0.2
那么我们如何计算:
a) K_ =[k(x_,x1) k(x_,x2)..........k(x_,xn)]
和
b) K__ = k(x_,x_)
使用 matlab ?
我收到以下错误消息:
Error using +
Matrix dimensions must agree.
Error in untitled3 (line 7)
K = sf^2*exp(-0.5*(squareform(pdist(x)).^2)/ell^2)+(sn)^2*eye(Ntr,Ntr);
说明你的矩阵维度不一致。如果您分别评估代码的各个部分,您会注意到 pdist(x)
returns 一个 1x0
向量。在 pdist
的文档中解释了 x
的预期格式:
Rows of X correspond to observations, and columns correspond to variables
因此,您应该计算 x
的转置,而不是计算 pdist(x)
,即 pdist(x.')
:
K = sf^2*exp(-0.5*(squareform(pdist(x.')).^2)/ell^2)+(sn)^2*eye(Ntr,Ntr);
作为结论,请始终仔细阅读错误消息和文档,尤其是输入参数的预期格式。
子题
要为 x_
的特定值计算 K
(在您提到的公式中为 x'
),您几乎可以将给定的公式直接转换为 MATLAB:
K_ = sf^2*exp(-0.5*(x-x_).^2/ell^2)+(sn)^2*(x == x_);
要计算K__
,您可以使用上面的公式并设置x = x_
,或者您可以将公式简化为:
K__ = sf^2+sn^2;