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.443
    0.025119    3.1623     106.49
    0.063096        10     94.468
     0.15849    31.623     25.134
     0.39811       100    -38.732
           1    316.23    -55.156
      2.5119      1000    -34.181
      6.3096    3162.3     5.0153
      15.849     10000     39.465
      39.811     31623       60.9
         100     1e+05     71.906

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

свернуть все

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

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

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

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

свернуть все

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

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

См. также

|

Введенный в R2016b