seqme.metrics.Hypervolume#
- class seqme.metrics.Hypervolume(predictors, *, method='hvi', nadir=None, ideal=None, strict=True, name='Hypervolume')[source]#
Computes the Hypervolume metric for multi-objective optimization.
This metric evaluates how well the generated sequences cover the approximate Pareto front by computing the hypervolume of the sequences’ properties as evaluated by the predictors. Higher hypervolume indicates better coverage of the Pareto front.
- Two types of hypervolume computation are supported:
Hypervolume indicator [1]
Convex-hull
References
- [1] Zitler, E., and Thiele, L., “Multiobjective Evolutionary Algorithms: A Comparative Case Study and the Strength Pareto Approach,” 1999
(https://www.cse.unr.edu/~sushil/class/gas/papers/StrengthParetoEA.pdf)
- __init__(predictors, *, method='hvi', nadir=None, ideal=None, strict=True, name='Hypervolume')[source]#
Initialize the metric.
- Parameters:
predictors (
list[Callable[[list[str]],ndarray]]) – A list of functions. Each function maps a sequence to a numeric value aimed to be maximized.method (
Literal['hvi','convex-hull']) –Which Hypervolume computation method to use
'hvi': Hypervolume indicator'convex-hull': Volume of the convex-hull
nadir (
Optional[ndarray]) – Smallest (worst) value in each objective dimension. IfNone, set to zero vector.ideal (
Optional[ndarray]) – Largest (best) value in each objective dimension (used for normalizing points to [0;1]).strict (
bool) – IfTrueand values <nadir(or values >ideal) raise an exception.name (
str) – Metric name.
- __call__(sequences)[source]#
Compute hypervolume for the predicted properties of the input sequences.
- Parameters:
- Returns:
Hypervolume.
- Return type:
Methods
Attributes
|
Name of the metric. |
|
Whether lower or higher scores indicate better performance. |