Plot Bayesian optimization results
Plot After Optimization
This example shows how to plot the error model and the best objective trace after the optimization has finished. The objective function for this example throws an error for points with norm larger than 2.
function f = makeanerror(x) f = x.x1 - x.x2 - sqrt(4-x.x1^2-x.x2^2);
fun = @makeanerror;
Create the variables for optimization.
var1 = optimizableVariable('x1',[-5,5]); var2 = optimizableVariable('x2',[-5,5]); vars = [var1,var2];
Run the optimization without any plots. For reproducibility, set the random seed and use the 'expected-improvement-plus' acquisition function. Optimize for 60 iterations so the error model becomes well-trained.
rng default results = bayesopt(fun,vars,'MaxObjectiveEvaluations',60,... 'AcquisitionFunctionName','expected-improvement-plus',... 'PlotFcn',,'Verbose',0);
Plot the error model and the best objective trace.
plotFcn — Plot function
Plot function, specified as a function handle.
There are several built-in plot functions:
|Model Plots — Apply When D ≤ 2||Description|
Plot the acquisition function surface.
Plot each constraint model surface. Negative values indicate feasible points.
Also plot a P(feasible) surface.
Also plot the error model, if
it exists, which ranges from
Plotted error = 2*Probability(error) – 1.
Plot the objective function evaluation time model surface.
|Trace Plots — Apply to All D||Description|
Plot each observed function value versus the number of function evaluations.
Plot each observed function evaluation run time versus the number of function evaluations.
Plot the minimum observed and estimated function values versus the number of function evaluations.
Plot three curves: the total elapsed time of the optimization, the total function evaluation time, and the total modeling and point selection time, all versus the number of function evaluations.
You can include a handle to your own plot functions. For details, see Bayesian Optimization Plot Functions.
You can specify plot functions in the
PlotFcn name-value pair. This allows you to monitor the progress of
Introduced in R2016b