Frequently Asked Questions

Here are quick answers to a few common questions.
Please contact us if this doesn’t quickly address your needs.

Does MagicOpt handle Many Dimensions?

Yes. MagicOpt handles from one to a large number of dimensions.  Each dimension can be continuous or discrete (ordered or unordered or multi-valued).  For prediction modes, text columns are also effectively supported.  In addition to bounds and value limits, dimensions can have constraints and dependencies based on interrelationships. 

Why is Sequential Optimization Important?

Artificial Intelligence, Machine Learning, and other modeling techniques use parameters that guide their training and operation.  The ‘hyperparameters’ vary in kind and number and have an enormous impact on the operational results.

Without a strategy to optimize the parameters, models will run below their potential performance and leave opportunity on the table.

Using successive trial information to improve optimization trials helps you find better hyperparameter values faster.

Can MagicOpt Suggest Multiple Cases in Parallel?

Yes.  For many challenges, MagicOpt is run in a sequential mode, returning a single trial’s settings at a time, which are echoed back with resulting scores.  The process runs until trial count goals, time limits, or objective targets are reached.

However, some challenges benefit from running multiple trials concurrently.  MagicOpt returns the requested number of recommendations for each request, which can then be executed in parallel.  The parallel invocation of your model can be handled by the find_best service or other logic using get_next_trial_group

Does MagicOpt Handle Multiple Objectives?

Yes. While most projects have a single score or loss objective, the MagicOpt optimization process may include any combination of score and loss objectives.  In these cases, the goal is to optimize a ‘frontier’ decision and locate the best optima from several concurrent objective value perspectives. 

For projects with multiple objectives, the parameter schema  specifies each score’s relative importance and added decision criteria.  MagicOpt learns each surface and seeks preferred optima along the joint frontier!  The set of multiple scores is echoed back to MagicOpt with the trial history in the same manner as with a single objective.

Where Can I Find Research Online?

There is considerable literature online regarding Sequential Model-Based Optimization.  We suggest you start with an excellent paper on Hyperopt by Bergstra, et al.

How is MagicOpt Used?

MagicOpt is a Software-as-a-Service.  Our technology runs in the cloud and responds to secure client requests.

You can use our client modules or access the services with REST requests.

There are three primary requests to the service:

get_predicted_values: This requests predictions for a provided history and one or more hypothetical scenarios.  Detailed information on the learning process and progress is also available.

get_next_trial_group: This recommends one or more trials based on the parameter schema and trial history provided. Detailed information on the learning process and progress is also returned with the next setting recommendations.

get_predicted_surface: This service returns information on the predicted surface based on the parameter schema and trial history you provide. This can also be returned in conjunction with a get_next_trial request or get_predicted_values request.

The client module provides additional services:

predict_file: This takes an input file, excel or csv, analyzes its columns with optional settings and hints provided and  automatically generates the schema and submits the data for training and evaluation of unlabeled cases.  The result is an updated file which may include added information (tabs/supplements) on the process and generated schema.

find_best: This uses the schema and MagicOpt’s get_next_trial_group service, along with the evaluation function you provide, to drive the optimization process.  Searches for the optima for one or more scores, with control over maximum requests in parallel, maximum trials, maximum time spent, and other options. 

plot_predicted_surface: This creates interactive visualizations based on predicted surface and trial performance information returned from the services. This can also be invoked by the find_best service or after a call to the get_next_trial_group service.

schema classes: These simplify configuring and validating parameter schema definitions, which define each parameter and each target objective to be maximized or minimized.

Access control and wrappers: The client module performs authentication using your access credentials.  The module makes MagicOpt services appear local.  Only obfuscated schema and trial history are sent to MagicOpt.

Why is MagicOpt Better than open-source?

There are many open-source options for lightweight optimization problems.

MagicOpt takes a very different internal approach, leveraging several patent-pending innovations, and deeply learns the objective space.  The performance difference is readily apparent. Check out Extreme Optimization with MagicOpt