Gaussian process regression optimization

Can anyone please let me know how can I exclude some Kernel functions from being optimized in the following regression process?
In other words, I would like to only include 'matern32', 'matern52', and 'ardmatern52' in the optimization process to fit a Gaussian regression model to the data. When I use the following code lots of other unwanted kernel functions are also tested.
thisModel = fitrgp(X,Y,'ConstantSigma' ,true, 'Sigma',0.001,'BasisFunction','none',...
'OptimizeHyperparameters',{'KernelFunction','KernelScale','Standardize'}','HyperparameterOptimizationOptions',...
struct('Optimizer', 'bayesopt', 'MaxObjectiveEvaluations', 45,'AcquisitionFunctionName','expected-improvement-per-second-plus','ShowPlots', false, 'UseParallel', true));
Many thanks.

2 Comments

Seems like there are no ways to have subset of all the Kernels available.
how about running fitrgp(s) independently with the kernels fixed? You could use Parallel option too.
I actually found a way to do this. You basically need to define the optimizableVariable separatly and then feed it to OptimizeHyperparameters.

Sign in to comment.

Answers (0)

Tags

Asked:

H R
on 4 Sep 2021

Commented:

H R
on 26 Jul 2022

Community Treasure Hunt

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

Start Hunting!