fit.result¶
Result of optimization.
OptimizationResult
¶
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 the fit was run with.
Raises:
| Type | Description |
|---|---|
ValueError
|
if the result carries no settings, e.g., because it was created by hand. |
run_result
¶
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 |
required |
Returns:
| Type | Description |
|---|---|
OptimizationResult
|
An |
write_run
staticmethod
¶
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
¶
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. |
from_json
staticmethod
¶
Load OptimizationResult from Path or str.
:param json_info: :return:
parameter_set
¶
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, |
None
|
Returns:
| Type | Description |
|---|---|
ParameterSet
|
The parameter set of the run. |
Raises:
| Type | Description |
|---|---|
IndexError
|
if the result has no run |
parameter_sets
¶
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 results from multiple parameter fitting experiments.
Raises:
| Type | Description |
|---|---|
ValueError
|
if no results are given. |
process_traces
staticmethod
¶
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 |
process_fits
staticmethod
¶
Process the optimization results, sorted by increasing cost.
fit_id
¶
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
|
|
bound_warnings
¶
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 |