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)