Multi Objective Loading BOA from JSON and Plotting Results#

This notebook demonstrates how to:

Loading a Scheduler from JSON from a multi objective optimization previous run (If you want to see the Experiment that this is from, see Running a Multi Objective Optimization Directly in Python. We will look at the output and plot some exploratory data analysis.

 1import pathlib
 2import os
 3
 4import numpy as np
 5from ax.utils.notebook.plotting import init_notebook_plotting
 6from ax.plot.trace import optimization_trace_single_method_plotly
 7from ax.service.utils.report_utils import get_standard_plots, exp_to_df
 8import boa
 9from botorch.test_functions.synthetic import Cosine8
10
11init_notebook_plotting()
[WARNING 08-09 19:04:08] ax.service.utils.with_db_settings_base: Ax currently requires a sqlalchemy version below 2.0. This will be addressed in a future release. Disabling SQL storage in Ax for now, if you would like to use SQL storage please install Ax with mysql extras via `pip install ax-platform[mysql]`.
[INFO 08-09 19:04:09] ax.utils.notebook.plotting: Injecting Plotly library into cell. Do not overwrite or delete cell.

Loading the Scheduler from our JSON file#

1# setup stuff just because this gets reused from the latest run for the case of the docs
2try:
3    run = list(pathlib.Path().resolve().glob("moo_run*"))[-1]
4except IndexError:
5    print("No run to load. Make sure you run optimization_run.ipynb first")
1# Filepath to the scheduler.json
2
3scheduler_fp = run / "scheduler.json"
1scheduler = boa.scheduler_from_json_file(scheduler_fp)
1scheduler
Scheduler(experiment=Experiment(moo_run), generation_strategy=GenerationStrategy(name='Sobol+MOO', steps=[Sobol for 5 trials, MOO for subsequent trials]), options=SchedulerOptions(max_pending_trials=10, trial_type=<TrialType.TRIAL: 0>, batch_size=None, total_trials=None, tolerated_trial_failure_rate=0.5, min_failed_trials_for_failure_rate_check=5, log_filepath=None, logging_level=20, ttl_seconds_for_trials=None, init_seconds_between_polls=1, min_seconds_before_poll=1.0, seconds_between_polls_backoff_factor=1.5, timeout_hours=None, run_trials_in_batches=False, debug_log_run_metadata=False, early_stopping_strategy=None, global_stopping_strategy=None, suppress_storage_errors_after_retries=False))

Show the Best Fitted Trial#

best_fitted_trials uses the data to do a fitting from all trials and with the noise levels you provided (or if no noise levels was provided, it assumed an unknown level of noise and inferred the noise level from the trial runs)

1trial = scheduler.best_fitted_trials()
2trial
[INFO 08-09 19:04:10] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
{11: {'params': {'x0': 0.05822414258120452, 'x1': 1.0},
  'means': {'branin': -4.745748321194961, 'currin': -3.3831528849843404},
  'cov_matrix': {'branin': {'branin': 0.00022756309012170016, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.3958723791218452e-06}}},
 12: {'params': {'x0': 0.02652971967743398, 'x1': 1.0},
  'means': {'branin': -10.066909199678392, 'currin': -2.2477015354194614},
  'cov_matrix': {'branin': {'branin': 0.00011057365622783477, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 9.208694227487093e-07}}},
 14: {'params': {'x0': 0.01271819029103163, 'x1': 1.0},
  'means': {'branin': -13.624784566411574, 'currin': -1.6988984697788325},
  'cov_matrix': {'branin': {'branin': 0.00011263394860909445, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.0165283159826974e-06}}},
 15: {'params': {'x0': 0.04069187188400342, 'x1': 1.0},
  'means': {'branin': -7.180421133741779, 'currin': -2.7813472487943285},
  'cov_matrix': {'branin': {'branin': 0.00010820085840568791, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 8.698089231243262e-07}}},
 16: {'params': {'x0': 0.0194330335104261, 'x1': 1.0},
  'means': {'branin': -11.80593218417911, 'currin': -1.9683398208373581},
  'cov_matrix': {'branin': {'branin': 0.00011039640041747884, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 9.28224364471527e-07}}},
 17: {'params': {'x0': 0.09056946372334733, 'x1': 0.9329120772814209},
  'means': {'branin': -1.8079551299172927, 'currin': -4.510809972985015},
  'cov_matrix': {'branin': {'branin': 0.0003530765712156782, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.9196482779227593e-06}}},
 18: {'params': {'x0': 0.033319703464788124, 'x1': 1.0},
  'means': {'branin': -8.58396169877078, 'currin': -2.5080851269735494},
  'cov_matrix': {'branin': {'branin': 0.00011225116427279728, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 9.294560807791422e-07}}},
 20: {'params': {'x0': 0.07168574900750513, 'x1': 0.9652497101585309},
  'means': {'branin': -3.2542837954746577, 'currin': -3.895247766149114},
  'cov_matrix': {'branin': {'branin': 0.00017829017315956395, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.1910136831071783e-06}}},
 21: {'params': {'x0': 0.04881261414192447, 'x1': 1.0},
  'means': {'branin': -5.8915852956299695, 'currin': -3.069103379885741},
  'cov_matrix': {'branin': {'branin': 8.828081653145388e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 7.603501767573613e-07}}},
 22: {'params': {'x0': 0.10650693335751665, 'x1': 0.886335481310917},
  'means': {'branin': -0.8709316973076113, 'currin': -5.050878161944314},
  'cov_matrix': {'branin': {'branin': 0.00034362199683977843, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 2.3198333621564566e-06}}},
 23: {'params': {'x0': 0.006244686263334478, 'x1': 1.0},
  'means': {'branin': -15.532453424935913, 'currin': -1.435868114322811},
  'cov_matrix': {'branin': {'branin': 0.00012284992578351646, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.0225302245955092e-06}}},
 25: {'params': {'x0': 0.08035800103474322, 'x1': 0.9480494891863682},
  'means': {'branin': -2.476093225209029, 'currin': -4.195155841456433},
  'cov_matrix': {'branin': {'branin': 0.00014948308491576426, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.007877249160519e-06}}},
 26: {'params': {'x0': 0.06495538121825399, 'x1': 0.9852176970851503},
  'means': {'branin': -3.9889774096140265, 'currin': -3.634675721285203},
  'cov_matrix': {'branin': {'branin': 0.00017558541594741965, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.0932024977224933e-06}}},
 27: {'params': {'x0': 0.09664313790084653, 'x1': 0.9053516387187329},
  'means': {'branin': -1.2788158630817001, 'currin': -4.758877663048827},
  'cov_matrix': {'branin': {'branin': 0.00020298606504146302, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.2690819650420964e-06}}},
 28: {'params': {'x0': 0.11830532385171338, 'x1': 0.8535142662281873},
  'means': {'branin': -0.5366070523119362, 'currin': -5.421362307229709},
  'cov_matrix': {'branin': {'branin': 0.0004029693184068103, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 3.5198145191437694e-06}}},
 29: {'params': {'x0': 0.00944728038928123, 'x1': 1.0},
  'means': {'branin': -14.570278783892094, 'currin': -1.566320049506022},
  'cov_matrix': {'branin': {'branin': 0.00012088747127298727, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.0322408148075467e-06}}},
 30: {'params': {'x0': 0.016034967890989914, 'x1': 1.0},
  'means': {'branin': -12.705578196940237, 'currin': -1.8325063653013416},
  'cov_matrix': {'branin': {'branin': 0.00010926279866946226, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 9.659445088954608e-07}}},
 31: {'params': {'x0': 0.003096738452682272, 'x1': 1.0},
  'means': {'branin': -16.51180737405107, 'currin': -1.3071410960083232},
  'cov_matrix': {'branin': {'branin': 0.00013163144120348244, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.3182450550647972e-06}}},
 32: {'params': {'x0': 0.02292333454010122, 'x1': 1.0},
  'means': {'branin': -10.926817142072613, 'currin': -2.1065431553614373},
  'cov_matrix': {'branin': {'branin': 0.00011132784730720128, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 9.17238822511497e-07}}},
 33: {'params': {'x0': 0.029861270497109176, 'x1': 1.0},
  'means': {'branin': -9.316866378239112, 'currin': -2.376407091142268},
  'cov_matrix': {'branin': {'branin': 0.00011039332665654978, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 9.269697878568375e-07}}},
 34: {'params': {'x0': 0.04462216205989457, 'x1': 1.0},
  'means': {'branin': -6.522450333206233, 'currin': -2.922456161688923},
  'cov_matrix': {'branin': {'branin': 9.467339537543082e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 7.99710358945666e-07}}},
 35: {'params': {'x0': 0.05329818024244168, 'x1': 1.0},
  'means': {'branin': -5.298301444447381, 'currin': -3.221501860921576},
  'cov_matrix': {'branin': {'branin': 0.00010560796111799686, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 8.607369279373872e-07}}},
 36: {'params': {'x0': 0.0843828817394624, 'x1': 0.9338347564288549},
  'means': {'branin': -2.1049518799577704, 'currin': -4.350984770284234},
  'cov_matrix': {'branin': {'branin': 0.00024850583314375407, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.2751331739067734e-06}}},
 38: {'params': {'x0': 0.07589400561612691, 'x1': 0.9567207118392003},
  'means': {'branin': -2.858737807110142, 'currin': -4.043128253745307},
  'cov_matrix': {'branin': {'branin': 0.00013178173181609547, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 9.902646539484364e-07}}},
 39: {'params': {'x0': 0.11030203126068233, 'x1': 0.8556041949974715},
  'means': {'branin': -0.6006477825888155, 'currin': -5.260880750799256},
  'cov_matrix': {'branin': {'branin': 0.00040489839952410054, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 3.402847474436768e-06}}},
 41: {'params': {'x0': 0.03691865220764037, 'x1': 1.0},
  'means': {'branin': -7.871489787558444, 'currin': -2.64281847361282},
  'cov_matrix': {'branin': {'branin': 0.00011367601543159441, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 9.156733111585794e-07}}},
 42: {'params': {'x0': 0.06839665039677736, 'x1': 0.9765853938504023},
  'means': {'branin': -3.6174960320305516, 'currin': -3.7639080207736555},
  'cov_matrix': {'branin': {'branin': 0.00017102910105253126, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.1254039475946481e-06}}},
 43: {'params': {'x0': 0.09199522685897912, 'x1': 0.9132640195452175},
  'means': {'branin': -1.53660916150789, 'currin': -4.6182242526623325},
  'cov_matrix': {'branin': {'branin': 0.00023755246645651667, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.4119199690677217e-06}}},
 44: {'params': {'x0': 0.12187774810347876, 'x1': 0.8262532577464271},
  'means': {'branin': -0.4051414687862298, 'currin': -5.612686826538511},
  'cov_matrix': {'branin': {'branin': 0.0004209621038792197, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 4.20297000603563e-06}}},
 45: {'params': {'x0': 0.06163103172767276, 'x1': 0.9937533097279961},
  'means': {'branin': -4.364572611642581, 'currin': -3.507918446334684},
  'cov_matrix': {'branin': {'branin': 0.0001535378588271107, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.1118858201790356e-06}}},
 46: {'params': {'x0': 0.1001071532973822, 'x1': 0.8899534663288654},
  'means': {'branin': -1.0430874556743106, 'currin': -4.898978809691092},
  'cov_matrix': {'branin': {'branin': 0.0002689872049521494, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 1.6215431793415515e-06}}},
 47: {'params': {'x0': 0.04668062599482302, 'x1': 1.0},
  'means': {'branin': -6.203371153593826, 'currin': -2.994996596821179},
  'cov_matrix': {'branin': {'branin': 8.927306564153736e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 7.707938273994859e-07}}},
 48: {'params': {'x0': 0.05100780289675336, 'x1': 1.0},
  'means': {'branin': -5.590572670268962, 'currin': -3.1442904458461673},
  'cov_matrix': {'branin': {'branin': 9.298109532754865e-05, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 7.826956619809156e-07}}},
 49: {'params': {'x0': 0.07800293968645686, 'x1': 0.9516419266543672},
  'means': {'branin': -2.66518290984817, 'currin': -4.118612181624187},
  'cov_matrix': {'branin': {'branin': 0.0001268744619301024, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 9.864536070540885e-07}}},
 7: {'params': {'x0': 0.0, 'x1': 1.0},
  'means': {'branin': -17.505834512564057, 'currin': -1.1801211273452683},
  'cov_matrix': {'branin': {'branin': 0.0003150450634245033, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 2.9796389010233245e-06}}}}

Show the Best Raw Trial#

if you need the exact points of the best trial, maybe because you need the trial number of the best trial to plot results, or for any other reason, best_raw_trails does not do any fitting

1trial = scheduler.best_raw_trials()
2trial
[INFO 08-09 19:04:10] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.
{11: {'params': {'x0': 0.05822414258120452, 'x1': 1.0},
  'means': {'branin': -4.7456946373, 'currin': -3.3829417229},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 12: {'params': {'x0': 0.02652971967743398, 'x1': 1.0},
  'means': {'branin': -10.0671129227, 'currin': -2.2477552891},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 14: {'params': {'x0': 0.01271819029103163, 'x1': 1.0},
  'means': {'branin': -13.6245212555, 'currin': -1.6987805367000002},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 15: {'params': {'x0': 0.04069187188400342, 'x1': 1.0},
  'means': {'branin': -7.1804127693, 'currin': -2.7813911438},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 16: {'params': {'x0': 0.0194330335104261, 'x1': 1.0},
  'means': {'branin': -11.8064346313, 'currin': -1.9683535099},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 17: {'params': {'x0': 0.09056946372334733, 'x1': 0.9329120772814209},
  'means': {'branin': -1.8080615997, 'currin': -4.5104942322},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 18: {'params': {'x0': 0.033319703464788124, 'x1': 1.0},
  'means': {'branin': -8.5839319229, 'currin': -2.5081253052},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 20: {'params': {'x0': 0.07168574900750513, 'x1': 0.9652497101585309},
  'means': {'branin': -3.2536406517, 'currin': -3.89539361},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 21: {'params': {'x0': 0.04881261414192447, 'x1': 1.0},
  'means': {'branin': -5.8914999962, 'currin': -3.0691430568999998},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 22: {'params': {'x0': 0.10650693335751665, 'x1': 0.886335481310917},
  'means': {'branin': -0.8704195023, 'currin': -5.0506744385},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 23: {'params': {'x0': 0.006244686263334478, 'x1': 1.0},
  'means': {'branin': -15.5308656693, 'currin': -1.4356940985},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 25: {'params': {'x0': 0.08035800103474322, 'x1': 0.9480494891863682},
  'means': {'branin': -2.4767980576, 'currin': -4.1950187683},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 26: {'params': {'x0': 0.06495538121825399, 'x1': 0.9852176970851503},
  'means': {'branin': -3.9893102646000003, 'currin': -3.6346597672},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 27: {'params': {'x0': 0.09664313790084653, 'x1': 0.9053516387187329},
  'means': {'branin': -1.2797708510999999, 'currin': -4.7588210106},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 28: {'params': {'x0': 0.11830532385171338, 'x1': 0.8535142662281873},
  'means': {'branin': -0.5374574661, 'currin': -5.4204788208},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 29: {'params': {'x0': 0.00944728038928123, 'x1': 1.0},
  'means': {'branin': -14.5692090988, 'currin': -1.5661427975},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 30: {'params': {'x0': 0.016034967890989914, 'x1': 1.0},
  'means': {'branin': -12.7058887482, 'currin': -1.8324615954999999},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 31: {'params': {'x0': 0.003096738452682272, 'x1': 1.0},
  'means': {'branin': -16.5109539032, 'currin': -1.3070967197},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 32: {'params': {'x0': 0.02292333454010122, 'x1': 1.0},
  'means': {'branin': -10.9272232056, 'currin': -2.1065893173},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 33: {'params': {'x0': 0.029861270497109176, 'x1': 1.0},
  'means': {'branin': -9.3169164658, 'currin': -2.3764550686},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 34: {'params': {'x0': 0.04462216205989457, 'x1': 1.0},
  'means': {'branin': -6.5224394798, 'currin': -2.9225077629},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 35: {'params': {'x0': 0.05329818024244168, 'x1': 1.0},
  'means': {'branin': -5.298116684, 'currin': -3.2214713097},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 36: {'params': {'x0': 0.0843828817394624, 'x1': 0.9338347564288549},
  'means': {'branin': -2.1045546532, 'currin': -4.3510603905},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 38: {'params': {'x0': 0.07589400561612691, 'x1': 0.9567207118392003},
  'means': {'branin': -2.8586301804, 'currin': -4.0431284904},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 39: {'params': {'x0': 0.11030203126068233, 'x1': 0.8556041949974715},
  'means': {'branin': -0.600818634, 'currin': -5.2616400719},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 41: {'params': {'x0': 0.03691865220764037, 'x1': 1.0},
  'means': {'branin': -7.8714575768, 'currin': -2.6428561211},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 42: {'params': {'x0': 0.06839665039677736, 'x1': 0.9765853938504023},
  'means': {'branin': -3.6176652907999998, 'currin': -3.7639071941},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 43: {'params': {'x0': 0.09199522685897912, 'x1': 0.9132640195452175},
  'means': {'branin': -1.5360136032, 'currin': -4.6183323860000005},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 44: {'params': {'x0': 0.12187774810347876, 'x1': 0.8262532577464271},
  'means': {'branin': -0.4043941498, 'currin': -5.6129760742},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 45: {'params': {'x0': 0.06163103172767276, 'x1': 0.9937533097279961},
  'means': {'branin': -4.3650641441, 'currin': -3.5077989101},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 46: {'params': {'x0': 0.1001071532973822, 'x1': 0.8899534663288654},
  'means': {'branin': -1.0427875519, 'currin': -4.8991189003},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 47: {'params': {'x0': 0.04668062599482302, 'x1': 1.0},
  'means': {'branin': -6.20333004, 'currin': -2.9950470924},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 48: {'params': {'x0': 0.05100780289675336, 'x1': 1.0},
  'means': {'branin': -5.5904302597, 'currin': -3.144305706},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 49: {'params': {'x0': 0.07800293968645686, 'x1': 0.9516419266543672},
  'means': {'branin': -2.6651358604, 'currin': -4.1185936928},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}},
 7: {'params': {'x0': 0.0, 'x1': 1.0},
  'means': {'branin': -17.5082969666, 'currin': -1.1804080009},
  'cov_matrix': {'branin': {'branin': 0.0, 'currin': 0.0},
   'currin': {'branin': 0.0, 'currin': 0.0}}}}
1boa.scheduler_to_df(scheduler)
trial_index arm_name trial_status generation_method branin currin is_feasible x0 x1
0 0 0_0 COMPLETED Sobol -28.989222 -7.292576 False 0.441160 0.544831
1 1 1_0 COMPLETED Sobol -35.192238 -7.210213 False 0.608383 0.477067
2 2 2_0 COMPLETED Sobol -60.681313 -5.603604 False 0.279026 0.934830
3 3 3_0 COMPLETED Sobol -94.234596 -5.528978 False 0.635224 0.714342
4 4 4_0 COMPLETED Sobol -194.851837 -4.337658 False 0.704171 0.964813
5 5 5_0 COMPLETED MOO -308.129059 -3.000000 False 0.000000 0.000000
6 6 6_0 COMPLETED MOO -10.960894 -10.179487 False 1.000000 0.000000
7 7 7_0 COMPLETED MOO -17.508297 -1.180408 True 0.000000 1.000000
8 8 8_0 COMPLETED MOO -42.091705 -1.413868 False 0.000000 0.784543
9 9 9_0 COMPLETED MOO -72.214096 -1.640656 False 0.000000 0.631624
10 10 10_0 COMPLETED MOO -26.984507 -1.285073 False 0.000000 0.894068
11 11 11_0 COMPLETED MOO -4.745695 -3.382942 True 0.058224 1.000000
12 12 12_0 COMPLETED MOO -10.067113 -2.247755 True 0.026530 1.000000
13 13 13_0 COMPLETED MOO -3.641182 -4.167500 True 0.085927 1.000000
14 14 14_0 COMPLETED MOO -13.624521 -1.698781 True 0.012718 1.000000
15 15 15_0 COMPLETED MOO -7.180413 -2.781391 True 0.040692 1.000000
16 16 16_0 COMPLETED MOO -11.806435 -1.968354 True 0.019433 1.000000
17 17 17_0 COMPLETED MOO -1.808062 -4.510494 True 0.090569 0.932912
18 18 18_0 COMPLETED MOO -8.583932 -2.508125 True 0.033320 1.000000
19 19 19_0 COMPLETED MOO -58.506554 -13.164115 False 0.323142 0.000000
20 20 20_0 COMPLETED MOO -3.253641 -3.895394 True 0.071686 0.965250
21 21 21_0 COMPLETED MOO -5.891500 -3.069143 True 0.048813 1.000000
22 22 22_0 COMPLETED MOO -0.870420 -5.050674 True 0.106507 0.886335
23 23 23_0 COMPLETED MOO -15.530866 -1.435694 True 0.006245 1.000000
24 24 24_0 COMPLETED MOO -145.872208 -4.005316 False 1.000000 1.000000
25 25 25_0 COMPLETED MOO -2.476798 -4.195019 True 0.080358 0.948049
26 26 26_0 COMPLETED MOO -3.989310 -3.634660 True 0.064955 0.985218
27 27 27_0 COMPLETED MOO -1.279771 -4.758821 True 0.096643 0.905352
28 28 28_0 COMPLETED MOO -0.537457 -5.420479 True 0.118305 0.853514
29 29 29_0 COMPLETED MOO -14.569209 -1.566143 True 0.009447 1.000000
30 30 30_0 COMPLETED MOO -12.705889 -1.832462 True 0.016035 1.000000
31 31 31_0 COMPLETED MOO -16.510954 -1.307097 True 0.003097 1.000000
32 32 32_0 COMPLETED MOO -10.927223 -2.106589 True 0.022923 1.000000
33 33 33_0 COMPLETED MOO -9.316916 -2.376455 True 0.029861 1.000000
34 34 34_0 COMPLETED MOO -6.522439 -2.922508 True 0.044622 1.000000
35 35 35_0 COMPLETED MOO -5.298117 -3.221471 True 0.053298 1.000000
36 36 36_0 COMPLETED MOO -2.104555 -4.351060 True 0.084383 0.933835
37 37 37_0 COMPLETED MOO -35.575047 -5.837549 False 1.000000 0.586817
38 38 38_0 COMPLETED MOO -2.858630 -4.043128 True 0.075894 0.956721
39 39 39_0 COMPLETED MOO -0.600819 -5.261640 True 0.110302 0.855604
40 40 40_0 COMPLETED MOO -32.135201 -7.491528 False 0.842554 0.390764
41 41 41_0 COMPLETED MOO -7.871458 -2.642856 True 0.036919 1.000000
42 42 42_0 COMPLETED MOO -3.617665 -3.763907 True 0.068397 0.976585
43 43 43_0 COMPLETED MOO -1.536014 -4.618332 True 0.091995 0.913264
44 44 44_0 COMPLETED MOO -0.404394 -5.612976 True 0.121878 0.826253
45 45 45_0 COMPLETED MOO -4.365064 -3.507799 True 0.061631 0.993753
46 46 46_0 COMPLETED MOO -1.042788 -4.899119 True 0.100107 0.889953
47 47 47_0 COMPLETED MOO -6.203330 -2.995047 True 0.046681 1.000000
48 48 48_0 COMPLETED MOO -5.590430 -3.144306 True 0.051008 1.000000
49 49 49_0 COMPLETED MOO -2.665136 -4.118594 True 0.078003 0.951642

EDA Plots with Pareto#

Because we ran a multi objective optimization, we can plot our pareto frontiers.

1boa.plot_pareto_frontier(scheduler)

The rest of our plots are the same as for a single objective optimization. Trace plots, contour plots, and slice plots.

1boa.plot_metrics_trace(scheduler)
1boa.plot_contours(scheduler)
1boa.plot_slice(scheduler)

We can also directly pass in our scheduler file path instead of having to reload it ourselves

1boa.plot_metrics_trace(scheduler_fp)