exponenta event banner

predictConstraints

Прогнозирование связанных нарушений ограничений в наборе точек

Описание

пример

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

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

Примеры

свернуть все

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

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

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

См. также

|

Представлен в R2016b