簡體   English   中英

如何使用GPML(Matlab)進行回歸的二維高斯過程?

[英]How to make a 2D Gaussian Process using GPML (Matlab) for regression?

我有一個名為XNx2輸入矩陣。 我也有輸出值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);

我得到一個奇怪的表面。 即我得到彩色區域的條紋,而不是一些預期的高斯式結構。 XY中的數據是實際數據。 這是我從我的代碼中得到的

我期待的是: 我期待什么

你錯了。 你的z變量應該由[L1(:),L2(:)]給出。 然后你應該繪制的是:

surf(L1,L2,reshape(ymu,size(L1)));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM