MATLAB Answers

Calculating the matrix K at test inputs after training a Gaussian Process with fitrgp

18 ビュー (過去 30 日間)
Umberto 2015 年 10 月 29 日
編集済み: Sterling Baird 2021 年 7 月 25 日
If I trained a GP using training data D = {X, y} with fitrgp and I obtained my gprMdl:
gprMdl = fitrgp(data.X, data.Y, 'KernelFunction', 'squaredexponential', ...
'BasisFunction', 'none', 'verbose', 1, 'FitMethod', 'exact')
[ystar, ysd, yint] = predict(gprMdl, Xstar)
How can I obtain the matrix K(Xstar, Xstar)? I can not find the subfunction of the RegressionGP that calculates the matrices K.


Gautam Pendse
Gautam Pendse 2015 年 11 月 9 日
Hi Umberto,
There is an undocumented way of calculating what you want. Here is an example:
N = 100;
x = linspace(-10,10,N)';
y = 1 + x*5e-2 + sin(x)./x + 0.2*randn(N,1);
gpr = fitrgp(x,y,'FitMethod','Exact','PredictMethod','Exact');
kfcn = gpr.Impl.Kernel.makeKernelAsFunctionOfXNXM(gpr.Impl.ThetaHat)
K = kfcn(x(1:5,:),x(1:7,:))
K(i,j) kernel function evaluated for x(i,:) and x(j,:). For example,
I would be interested in knowing why you want to compute K.
Hope that helps,
  7 件のコメント
Sterling Baird
Sterling Baird 2021 年 7 月 25 日
I think I'm realizing that what I'm asking for is just the predictExactWithCov function (see Sampling from Posterior Distribution of GPR Model from fitrgp()). I think I misunderstood the "Exact" part of this function. I take it "exact" refers to not using sparse methods rather than assuming no noise in the input data (originally I was under the impression that it was the latter).


その他の回答 (1 件)

Basim Khalid
Basim Khalid 2020 年 11 月 1 日
I have images of 15 plant leaf diseases i have extructed features using GLCM , how can i make a classifier using Gussian , can anyone help lease
  1 件のコメント
Sterling Baird
Sterling Baird 2021 年 1 月 6 日
Post a separate question, not an answer...


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by