exponenta event banner

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

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

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

См. также

|

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