Gaussian process regression - how to fit a basis function but not other parameters

6 views (last 30 days)
I'm doing Gaussian process regression with the fitrgp function and want to manually control some parameters such as the kernel parameters and the noise parameter, but automatically fit a basis function (e.g. 'linear').
However, it seems that to fit a basis function the FitMethod parameter cannot be 'none':
1. Manual parameter settings (no parameter fitting) but no basis function
gpr_model = fitrgp(x_d, y_d, ...
'KernelParameters', [1.5; 1], ...
'Sigma', 0.1, ...
'FitMethod', 'none' ...
);
plot showing GP model predictions compared to true values
2. To fit the basis function I can't have FitMethod set to 'none' ('exact' is the default) but then it ignores my parameter values:
gpr_model = fitrgp(x_d, y_d, ...
'KernelParameters', [1.5; 1], ...
'Sigma', 0.1, ...
'BasisFunction', 'linear' ...
);
plot showing GP model predictions compared to true values
3. If I set FitMethod to none, it ignores the basis function:
gpr_model = fitrgp(x_d, y_d, ...
'KernelParameters', [1.5; 1], ...
'Sigma', 0.1, ...
'BasisFunction', 'linear', ...
'FitMethod', 'none' ...
);
plot showing GP model predictions compared to true values
(same a Fig. 1).
Is there a way to fit a basis function but not the other parameters?
  1 Comment
Bill Tubbs
Bill Tubbs on 23 Feb 2023
As a follow-up, I see that fitrgp has a ConstantSigma argument. Also there is a SigmaLowerBound. Is there any way of fixing or constraining the kernel parameters? (I can't see one). That would solve my problem I think.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!