Skip to content

fit.result

Result of optimization.

OptimizationResult

OptimizationResult(
    parameters,
    fits,
    trajectories,
    sid=None,
    opid=None,
    settings=None,
)

Bases: ObjectJSONEncoder

Result of optimization problem.

Initialize optimization result.

Provides access to the FitParameters, the individual fits, and the trajectories of the fits. The settings and the id of the problem are stored with the result, a report of the fit needs them.

Parameters:

Name Type Description Default
parameters Iterable[FitParameter]

fit parameters of the optimization problem.

required
fits list[OptimizeResult]

results of the single optimizations.

required
trajectories list[list[float]]

cost of every step of the single optimizations.

required
sid str | None

identifier of the result, created from the time by default.

None
opid str | None

id of the optimization problem the result belongs to.

None
settings FitSettings | dict[str, Any] | None

settings the fit was run with.

None

settings_stored property

settings_stored

Settings the fit was run with.

Raises:

Type Description
ValueError

if the result carries no settings, e.g., because it was created by hand.

size property

size

Get number of optimization runs in result.

xopt property

xopt

Numerical values of optimal parameters.

xopt_fit_parameters property

xopt_fit_parameters

Optimal parameters as Fit parameters.

run_result

run_result(k)

Get the result of a single optimization run.

The run is a result of its own, so it is stored while a fit runs and collected again afterwards, see write_run and from_directory.

The runs are indexed in the order they ran, which pairs a fit with its trajectory; parameter_set indexes them by increasing cost instead.

Parameters:

Name Type Description Default
k int

index of the run in fits, i.e., in the order they ran.

required

Returns:

Type Description
OptimizationResult

An OptimizationResult with this run only.

write_run staticmethod

write_run(
    directory,
    parameters,
    fit,
    trajectory,
    sid,
    opid=None,
    settings=None,
)

Store a single optimization run as JSON.

The runs are stored while the fit runs, so a fit which is interrupted, times out or crashes leaves the runs which finished.

Parameters:

Name Type Description Default
directory Path

directory of the runs, created if it does not exist.

required
parameters Iterable[FitParameter]

fit parameters of the problem.

required
fit OptimizeResult

result of the single optimization.

required
trajectory list[float]

trajectory of the single optimization.

required
sid str

id of the run, the name of its file.

required
opid str | None

id of the optimization problem.

None
settings FitSettings | None

settings of the fit.

None

Returns:

Type Description
Path

Path of the file the run was written to.

from_directory staticmethod

from_directory(directory, sid=None)

Collect the optimization runs of a directory.

This is the counterpart of write_run: the runs a fit stored are read back and combined, which recovers the results of a fit which did not finish.

Parameters:

Name Type Description Default
directory Path

directory with the JSON files of the runs.

required
sid str | None

id of the combined result, the name of the directory by default.

None

Returns:

Type Description
OptimizationResult

The combined result of all runs in the directory.

Raises:

Type Description
ValueError

if the directory holds no run.

to_tsv

to_tsv(path)

Store fit results as TSV.

to_dict

to_dict()

Convert to dictionary.

to_json

to_json(path=None)

Store OptimizationResult as json.

Uses the to_dict method.

from_json staticmethod

from_json(json_info)

Load OptimizationResult from Path or str.

:param json_info: :return:

parameter_set

parameter_set(k=0, sid=None)

Get the parameters of a single optimization run.

The runs are ordered by increasing cost, so k=0 is the best fit.

Parameters:

Name Type Description Default
k int

index of the run in the results ordered by cost.

0
sid str | None

identifier of the set, <result id>_<k> by default.

None

Returns:

Type Description
ParameterSet

The parameter set of the run.

Raises:

Type Description
IndexError

if the result has no run k.

parameter_sets

parameter_sets(size=1)

Get the parameters of the best optimization runs.

Parameters:

Name Type Description Default
size int

number of runs, ordered by increasing cost.

1

Returns:

Type Description
ParameterSets

The parameter sets of the best runs.

combine staticmethod

combine(opt_results)

Combine results from multiple parameter fitting experiments.

Raises:

Type Description
ValueError

if no results are given.

process_traces staticmethod

process_traces(trajectories)

Process the trajectories of the optimizations.

A trajectory is the cost of every step of a run, which is what the trace plot of a report shows.

Parameters:

Name Type Description Default
trajectories list[list[float]]

cost of every step, per run.

required

Returns:

Type Description
DataFrame

DataFrame with the columns run, step and cost.

process_fits staticmethod

process_fits(parameters, fits)

Process the optimization results, sorted by increasing cost.

report

report(path=None, print_output=True)

Report of optimization.

fit_id

fit_id(name=None)

Create the unique id of a fit from the time and a short hash.

The id is created when a fit starts and is the id of its optimization problem, of its result and of the directory of its report, so that everything a fit produces carries the same key and sorts by time.

Parameters:

Name Type Description Default
name str | None

name the id is prefixed with, e.g., the name of the problem.

None

Returns:

Type Description
str

<name>_<date>_<time>__<hash>, e.g. PK_20260908_144538__ea1ff.

bound_warnings

bound_warnings(parameters, x, rtol=0.05)

Warn about optimal parameters which ended up on their bounds.

A parameter on its bound means that the optimum is outside of the box in which the parameter was allowed to vary.

The distance to a bound is relative to the interval of the parameter. The optimization runs in logarithmic parameter space, so the distance is measured there as well whenever the bounds and the value are positive.

Parameters:

Name Type Description Default
parameters list[FitParameter]

fitted parameters with their bounds.

required
x ndarray

optimal values of the parameters.

required
rtol float

relative distance to a bound which is reported.

0.05

Returns:

Type Description
list[str]

Messages for the parameters which are within rtol of one of their bounds.