DeepHyper’s multiobjective features.

DeepHyper solves multiobjective problems via scalarization. A scalarization is a function that reduces several objectives to a single target, which can be attained using any of DeepHyper’s existing search strategies, such as or

If the user knows the tradeoff point that they would like to attain a priori, then DeepHyper can use a fixed scalarization by using one of our 5 fixed-weighting scalarization methods. To do so, when initializing the class, set moo_scalarization_strategy=["Linear", "Chebyshev", "AugChebyshev", "PBI", "Quadratic"]. Then, set the moo_scalarization_weight to a list of length equal to the number of objectives, which DeepHyper will use for scalarization.

To interrogate the entire Pareto front, and not just a single tradeoff point, one will need to solve multiple different scalarizations in parallel. This can be achieved by using one of the 5 scalarization strategies with randomized weights. When initializing the class, set moo_scalarization_weight=None. DeepHyper will randomly generate new scalarization weights for each candidate point. This can be slightly more expensive than solving with a fixed scalarization since multiobjective problems are inherently more difficult than single-objective problems, but using different scalarizations presents additional opportunity for parallelism. When training an ensemble of models for prediction, setting 2 objectives that balance model complexity vs accuracy and using randomized scalarizations may produce a more diverse set of models.

Based on our experience, we recommend the "[r]AugChebyshev" option for most applications. For additional information, the corresponding strategies are documented in the 5 classes from this module. We also provide 5 common multiobjective utility functions for calculating the hypervolume performance metric and extracting Pareto efficient/non dominated point sets.



Compute the absolute hypervolume of a pointset according to the reference point ref.


Check if the new objective vector is pareto efficient with respect to previously computed values.


Find the set of non-dominated points.


Find the set of top-fraction x 100% of non-dominated points.


Extract the pareto front (actual objective values of the non-dominated set).



This scalarizing function computes a sum of weighted infinity- and 1-norms of the individual objective values (after automatically scaling them in [0, 1]).


This scalarizing function computes a weighted infinity-norm of the individual objective values (after automatically scaling them in [0, 1]).


This scalarizing function linearly combines the individual objective values (after automatically scaling them in [0, 1]).


This scalarizing function computes the projection of the objective vector along a reference vector and adds a penalty term to minimize deviations from the projected point to the attainable objective set.


This scalarizing function quadratically combines the individual objective values (after automatically scaling them in [0, 1]).


Abstract class representing a scalarizing function.