![](/img/trans.png)
[英]First non demo example for Gaussian process using GPML (Matlab)?
[英]How to make a 2D Gaussian Process using GPML (Matlab) for regression?
我有一個名為X的Nx2輸入矩陣。 我也有輸出值Y ,它是矢量Nx1 。 我創建了一些數據來測試如下:
Xtest=linspace(x_min,x_max,n);
Ytest=linspace(y_min,y_max,n);
因此,矩陣Z具有nx2維度,並將用作我的測試點。 我使用GPML lib提供的演示中的參數的默認調整,如下所示:
covfunc = {@covMaterniso, 3};
ell = 1/4; sf = 1;
hyp.cov = log([ell; sf]);
likfunc = @likGauss;
sn = 0.1;
hyp.lik = log(sn);
然后使用gp函數:
[ymu ys2 fmu fs2] = gp(hyp, @infExact, [], covfunc, likfunc, x, y, z);
我希望ymu是z中每個測試值的預測值。 當我這樣繪制時:
[L1,L2]=meshgrid(Xtest',Ytest');
[mu,~]=meshgrid(ymu,ymu);
surf(L1,L2,ymu);
我得到一個奇怪的表面。 即我得到彩色區域的條紋,而不是一些預期的高斯式結構。 X和Y中的數據是實際數據。
我期待的是:
你錯了。 你的z變量應該由[L1(:),L2(:)]給出。 然后你應該繪制的是:
surf(L1,L2,reshape(ymu,size(L1)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.