predictError

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

Синтаксис

error = predictError(results,XTable)
[error,sigma] = predictError(results,XTable)

Описание

пример

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.

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

|

Введенный в R2017b