MATLAB Answers

Why almost the same optimization function gives different results?

3 views (last 30 days)
Nadou
Nadou on 16 Jul 2021
Commented: Nadou on 19 Jul 2021
Hello,
I am trying to optimize ECOC classifier as follows:
%data
clear all
load fisheriris
X = meas;Y = species;
rng default
t_gaussian=templateSVM('KernelFunction','gaussian','standardize',true)
Mdl_gaussian = fitcecoc(X,Y,'Coding','onevsall','Learners',t_gaussian,'OptimizeHyperparameters','auto',...
'HyperparameterOptimizationOptions',struct('CVPartition',CVO,'Optimizer','bayesopt','AcquisitionFunctionName',...
'expected-improvement-plus'))
I am wondering why I did not find the same results if I remplace 'OptimizeHyperparameters','auto' with 'OptimizeHyperparameters',{'BoxConstraint','KernelScale'}
rng default
Mdl_g = fitcecoc(X,Y,'Coding','onevsall','Learners',t_gaussian,'OptimizeHyperparameters',{'BoxConstraint','KernelScale'},...
'HyperparameterOptimizationOptions',struct('CVPartition',CVO,'Optimizer','bayesopt','AcquisitionFunctionName',...
'expected-improvement-plus'))
Best regards

Answers (1)

Alan Weiss
Alan Weiss on 16 Jul 2021
Edited: Alan Weiss on 18 Jul 2021
I am not 100% sure, but my reading of the fitcecoc documentation shows that 'auto' has this description:
'auto' — Use {'Coding'} along with the default parameters for the specified Learners:
  • Learners = 'svm' (default) — {'BoxConstraint','KernelScale'}
So I think that 'auto' is equivalent to {'Coding','BoxConstraint','KernelScale'}.
Alan Weiss
MATLAB mathematical toolbox documentation
  1 Comment
Nadou
Nadou on 19 Jul 2021
Hello Alan,
Thank you for your response
This is what I thought also while reading fitcecoc documentation. However, I found different results
Best regards

Sign in to comment.

Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!