predictConstraints

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

Синтаксис

ConstraintViolations = predictConstraints(results,XTable)
[ConstraintViolations,sigma] = predictConstraints(results,XTable)

Описание

пример

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

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

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

|

Введенный в R2017b