predictConstraints

Предскажите связанные ограничительные нарушения в наборе точек

Описание

пример

ConstraintViolations = predictConstraints(results,XTable) возвращает двойные ограничительные нарушения функции в точках в XTable.

[ConstraintViolations,sigma] = predictConstraints(results,XTable) также возвращает стандартные отклонения двойных ограничительных функций.

Примеры

свернуть все

В этом примере показано, как предсказать двойные ограничения оптимизированной модели 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');

Целевая функция является потерей перекрестной проверки модели SVM для раздела c. Двойное ограничение является количеством векторов поддержки в модели минус 100. Модель имеет 200 точек данных, таким образом, двойной ограничительный диапазон значений от-100 до 100. Положительные значения означают, что ограничению не удовлетворяют.

function [objective,constraint] = mysvmfun(x,cdata,grp,c)
SVMModel = fitcsvm(cdata,grp,'KernelFunction','rbf',...
    'BoxConstraint',x.box,...
    'KernelScale',x.sigma);
cvModel = crossval(SVMModel,'CVPartition',c);
objective = kfoldLoss(cvModel);
constraint = sum(SVMModel.IsSupportVector)-100.5;

Вызовите оптимизатор с помощью этой функции, и ее связал ограничение.

fun = @(x)mysvmfun(x,cdata,grp,c);
results = bayesopt(fun,[sigma,box],'IsObjectiveDeterministic',true,...
    'NumCoupledConstraints',1,'PlotFcn',...
    {@plotMinObjective,@plotConstraintModels,@plotObjectiveModel},...
    'AcquisitionFunctionName','expected-improvement-plus','Verbose',0);

Ограничительный график модели показывает, что большинство параметров в области значений неосуществимо, и выполнимо только для относительно высоких значений box параметр и маленькая область значений sigma параметр. Предскажите двойные ограничительные значения для нескольких значений контрольных переменных box и sigma.

sigma = logspace(-2,2,11)';
box = logspace(0,5,11)';
XTable = table(sigma,box);
cons = predictConstraints(results,XTable);
[XTable,table(cons)]
ans =

  11x3 table

     sigma       box       cons  
    ________    ______    _______

        0.01         1     99.539
    0.025119    3.1623     106.74
    0.063096        10     94.781
     0.15849    31.623     25.242
     0.39811       100     -38.79
           1    316.23    -56.379
      2.5119      1000    -34.247
      6.3096    3162.3     4.9263
      15.849     10000     39.193
      39.811     31623      60.69
         100     1e+05      71.82

Входные параметры

свернуть все

Байесовы результаты оптимизации, заданные как BayesianOptimization объект.

Точки прогноза, заданные как таблица со столбцами D, где D является количеством переменных в проблеме. Функция выполняет свои прогнозы на этих точках.

Типы данных: table

Выходные аргументы

свернуть все

Ограничительные нарушения, возвращенные как N- K матрица, где существует N строки в XTable и K двойные ограничения. Ограничительные нарушения являются следующими средними значениями Гауссовой модели процесса двойных ограничений в точках в XTable.

Ограничительные стандартные отклонения, возвращенные как N- K матрица, где существует N строки в XTable и K двойные ограничения. Стандартные отклонения представляют те из апостериорного распределения в точках в XTable.

Смотрите также

|

Введенный в R2017b