Get best hyperparameters for ionosphere data using fitcecoc & bayesopt. but i am getting error optimizableVariable.

load ionosphere
box = optimizableVariable('box',[1e-4,1e3],'Type','real','Transform','log');
kern = optimizableVariable('kern',[1e-4,1e3],'Type','real','Transform','log');
vars = [box,kern];
t = templateSVM('Standardize',true,'KernelFunction','gaussian','kernelscale',vars.kern ,'boxconstraint', vars.box);
fun = @(vars)kfoldLoss(fitcecoc(X,Y,'Learners',t,'FitPosterior',true,...
'ClassNames',{'g','b'},...
'Verbose',2,'Kfold',5));
results = bayesopt(fun,vars,'UseParallel',true);
The error coming is shown below:
No appropriate method, property, or field 'kern' for class 'optimizableVariable'.

 Accepted Answer

I do not understand why you are attempting to use fitcecoc with a 2-class model. Try this instead:
load ionosphere
mdl = fitcsvm(X,Y,"OptimizeHyperparameters","auto") % The auto parameters are box and kernel scale
Alan Weiss
MATLAB mathematical toolbox documentation

More Answers (0)

Community Treasure Hunt

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

Start Hunting!