Hi,
s = RandStream('mlfg6331_64');
reset(s);
options = statset("UseParallel",true,"UseSubstreams",true,"Streams",s);
myopts = struct('Optimizer','gridsearch','AcquisitionFunctionName','expected-improvement-plus',...
'ShowPlots',false,...
'SearchRange',struct('MaxNumSplits',[1,10],'MinLeafSize',[1,5]));
classificationML = fitcensemble(...
predictors, ...
response, ...
'Method', 'Bag', ...
'NumLearningCycles', 100, ...
'Learners', template, ...
'ClassNames', [1; 2],...
'OptimizeHyperparameters',{'MaxNumSplits','MinLeafSize'},...
'HyperparameterOptimizationOptions',myopts,...
'Options',options);
The SearchRange field specifies a structure with fields for each hyperparameter you want to search. The values of these fields are two-element vectors indicating the minimum and maximum values to search. In this example, the search range for MaxNumSplits is from 1 to 10, and the search range for MinLeafSize is from 1 to 5.
By specifying the search range, you can limit the set of hyperparameters to be searched, which can speed up the optimization process. However, be aware that if the optimal hyperparameters lie outside the specified range, you may not find the best model.