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

10 vues (au cours des 30 derniers jours)
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.
Thanks

Réponse acceptée

Gautam Pendse
Gautam Pendse le 9 Nov 2015
Hi Umberto,
There is an undocumented way of calculating what you want. Here is an example:
rng(0,'twister');
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,
K(3,6)
kfcn(x(3,:),x(6,:))
I would be interested in knowing why you want to compute K.
Hope that helps,
Gautam
  7 commentaires
Sterling Baird
Sterling Baird le 25 Juil 2021
@Gautam Pendse does makeKernelAsFunctionOfXNXM produce the prior or posterior covariance matrix? If it's the prior, is there an undocumented function for producing the posterior covariance matrix (other than predictExactWithCov)? (happy to post as a separate question if this is too involved)
Sterling Baird
Sterling Baird le 25 Juil 2021
Modifié(e) : Sterling Baird le 25 Juil 2021
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).

Connectez-vous pour commenter.

Plus de réponses (1)

Basim Khalid
Basim Khalid le 1 Nov 2020
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

Community Treasure Hunt

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

Start Hunting!

Translated by