predictError

Предсказать значение ошибки в наборе точек

Описание

пример

error = predictError(results,XTable) возвращает среднее апостериорное ограничение, связанное с ошибкой, в точках в XTable.

[error,sigma] = predictError(results,XTable) также возвращает апостериорные стандартные отклонения.

Примеры

свернуть все

Этот пример показывает оптимизацию функции, которая выдает ошибку, когда точка оценки имеет норму больше 2. Модель ошибки для целевой функции учит это поведение.

Создайте переменные с именем x1 и x2 которые варьируются от -5 на 5.

var1 = optimizableVariable('x1',[-5,5]);
var2 = optimizableVariable('x2',[-5,5]);
vars = [var1,var2];

Следующая целевая функция выдает ошибку, когда норма x = [x1,x2] превышает 2:

function f = makeanerror(x)
f = x.x1 - x.x2 - sqrt(4-x.x1^2-x.x2^2);

fun = @makeanerror;

Постройте график модели ошибки и минимальной цели по мере продолжения оптимизации. Оптимизируйте для 60 итераций, чтобы модель ошибки стала хорошо обученной. Для воспроизводимости установите случайный seed и используйте 'expected-improvement-plus' функция сбора.

rng default
results = bayesopt(fun,vars,'Verbose',0,'MaxObjectiveEvaluations',60,...
    'AcquisitionFunctionName','expected-improvement-plus',...
    'PlotFcn',{@plotMinObjective,@plotConstraintModels});

Спрогнозируйте ошибку в точках на линии x1 = x2. Если бы модель ошибки была идеальной, она имела бы значение -1 в каждой точке, где норма x не более 2, и значение 1 во всех других точках.

x1 = (-5:0.5:5)';
x2 = x1;
XTable = table(x1,x2);
error = predictError(results,XTable);
normx = sqrt(x1.^2 + x2.^2);
[XTable,table(normx,error)]
ans =

  21x4 table

     x1      x2      normx       error  
    ____    ____    _______    _________

      -5      -5     7.0711      0.94663
    -4.5    -4.5      6.364      0.97396
      -4      -4     5.6569      0.99125
    -3.5    -3.5     4.9497       1.0033
      -3      -3     4.2426       1.0018
    -2.5    -2.5     3.5355      0.99627
      -2      -2     2.8284       1.0043
    -1.5    -1.5     2.1213      0.89886
      -1      -1     1.4142       0.4746
    -0.5    -0.5    0.70711    0.0042389
       0       0          0     -0.16004
     0.5     0.5    0.70711    -0.012397
       1       1     1.4142      0.30187
     1.5     1.5     2.1213      0.88588
       2       2     2.8284       1.0872
     2.5     2.5     3.5355        0.997
       3       3     4.2426      0.99861
     3.5     3.5     4.9497      0.98894
       4       4     5.6569      0.98941
     4.5     4.5      6.364      0.98956
       5       5     7.0711      0.95549

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

свернуть все

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

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

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

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

свернуть все

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

bayesopt считает вашу целевую функцию возвращать ошибку, если она возвращает что-либо, кроме конечного действительного скаляра. См. «Ошибки целевой функции».

Стандартное отклонение ограничения, связанного с ошибкой, возвращаемое как N-by- 1 вектор, где N количество строк XTable.

См. также

|

Введенный в R2016b