Этот пример показывает, как оценить время оценки целевой функции в оптимизированной модели Bayesian классификации SVM.
Создайте оптимизированную модель SVM. Для получения дополнительной информации этой модели, смотрите, Оптимизируют перекрестный Подтвержденный Классификатор SVM Используя bayesopt.
rng default
grnpop = mvnrnd([1,0],eye(2),10);
redpop = mvnrnd([0,1],eye(2),10);
redpts = zeros(100,2);
grnpts = redpts;
for i = 1:100
grnpts(i,:) = mvnrnd(grnpop(randi(10),:),eye(2)*0.02);
redpts(i,:) = mvnrnd(redpop(randi(10),:),eye(2)*0.02);
end
cdata = [grnpts;redpts];
grp = ones(200,1);
grp(101:200) = -1;
c = cvpartition(200,'KFold',10);
sigma = optimizableVariable('sigma',[1e-5,1e5],'Transform','log');
box = optimizableVariable('box',[1e-5,1e5],'Transform','log');
minfn = @(z)kfoldLoss(fitcsvm(cdata,grp,'CVPartition',c,...
'KernelFunction','rbf','BoxConstraint',z.box,...
'KernelScale',z.sigma));
results = bayesopt(minfn,[sigma,box],'IsObjectiveDeterministic',true,...
'AcquisitionFunctionName','expected-improvement-plus','Verbose',0);
Предскажите время оценки для различных точек.
ans=11×3 table
sigma box time
______ _____ _______
1e-05 1e+05 0.24639
0.0001 1e+05 0.26645
0.001 1e+05 0.22941
0.01 1e+05 0.16963
0.1 1e+05 0.14101
1 1e+05 0.41254
10 1e+05 2.1366
100 1e+05 0.86406
1000 1e+05 0.17315
10000 1e+05 0.16875
1e+05 1e+05 0.20305