Fitting Options
Options that control the benchmarking process are set here.
Software (software
)
Software is used to select the fitting software to benchmark, this should be a newline-separated list. Available options are:
bumps
(default software)ceres
(external software – see Installing External Software)CUTEst
(external software – see Installing External Software)dfo
(external software – see Extra dependencies)gofit
(external software – see Extra dependencies)gradient_free
(external software – see Extra dependencies)gsl
(external software – see Installing External Software)horace
(external software – see Installing External Software)levmar
(external software – see Extra dependencies)lmfit
(external software – see Extra dependencies)mantid
(external software – see Installing External Software)matlab
(external software – see Installing External Software)matlab_curve
(external software – see Installing External Software)matlab_opt
(external software – see Installing External Software)matlab_stats
(external software – see Installing External Software)minuit
(external software – see Extra dependencies)nlopt
(external software – see Extra dependencies)ralfit
(external software – see Installing External Software)scipy
(default software)scipy_ls
(default software)scipy_go
theseus
(external software – see Installing External Software)
Default software options are scipy
and scipy_ls
[FITTING]
software: bumps
dfo
minuit
scipy
scipy_ls
scipy_go
Warning
Software must be listed to be here to be run. Any minimizers set in Minimizer Options will not be run if the software is not also present in this list.
Number of minimizer runs (num_runs
)
Sets the number of runs to average each fit over.
Default is 5
[FITTING]
num_runs: 5
Algorithm type (algorithm_type
)
This is used to select what type of algorithm is used within a specific software. For a full list of available minimizers for each algorithm type, see Algorithm Types of Available Minimizers. The options are:
all
- all minimizersls
- least-squares fitting algorithmsderiv_free
- derivative free algorithms (these are algorithms that cannot use information about derivatives – e.g., theSimplex
method inMantid
), see Derivative Free.general
- minimizers which solve a generic min f(x)simplex
- derivative free simplex based algorithms e.g. Nelder-Mead, see Simplextrust_region
- algorithms which employ a trust region approach, see Trust Regionlevenberg-marquardt
- minimizers that use the Levenberg Marquardt algorithm, see Levenberg-Marquardt.gauss_newton
- minimizers that use the Gauss Newton algorithm, see Gauss-Newtonbfgs
- minimizers that use the BFGS algorithm, see BFGSconjugate_gradient
- Conjugate Gradient algorithms, see Conjugate Gradientsteepest_descent
- Steepest Descent algorithms, see Steepest Descentglobal_optimization
- Global Optimization algorithms
Default is all
[FITTING]
algorithm_type: all
Warning
Choosing an option other than all
may deselect certain
minimizers set in the options file
Jacobian method (jac_method
)
This sets the Jacobian used. Choosing multiple options via a new line seperated list will result in all combinations being benchmarked. Current Jacobian methods are:
analytic
- uses the analytic Jacobian extracted from the fitting problem.scipy
- uses SciPy’s finite difference Jacobian approximations.default
- uses the default derivative approximation implemented in the minimizer.numdifftools
- uses the python package numdifftools.
Default is analytic
[FITTING]
jac_method: analytic
Warning
Currently analytic Jacobians are only available for problems that use the cutest and NIST parsers.
Hessian method (hes_method
)
This sets the Hessian used. Choosing multiple options via a new line seperated list will result in all combinations being benchmarked. Current Hessian methods are:
default
- Hessian information is not passed to minimizersanalytic
- uses the analytic Hessian extracted from the fitting problem.scipy
- uses SciPy’s finite difference approximations.numdifftools
- uses the python package numdifftools.
Default is analytic
[FITTING]
hes_method: analytic
Warning
Currently analytic Hessians are only available for problems that use the cutest and NIST parsers.
Cost function (cost_func_type
)
This sets the cost functions to be used for the given data. Choosing multiple options via a new line seperated list will result in all combinations being benchmarked. Currently supported cost functions are:
nlls
- This sets the cost function to be non-weighted non-linear least squares,NLLSCostFunc
.weighted_nlls
- This sets the cost function to be weighted non-linear least squares,WeightedNLLSCostFunc
.hellinger_nlls
- This sets the cost function to be the Hellinger cost function,HellingerNLLSCostFunc
.poisson
- This sets the cost function to be the Poisson Deviation cost function,PoissonCostFunc
.
Default is weighted_nlls
[FITTING]
cost_func_type: weighted_nlls
Maximum Runtime (max_runtime
)
This sets the maximum runtime a minimizer has to solve one benchmark problem num_runs number of times, where num_runs is another option a user can set. If the minimizer is still running after the maximum time has elapsed, then this result will be skipped and FitBenchmarking will move on to the next minimizer / benchmark dataset combination. The main purpose of this option is to get to result tables quicker by limit the runtime.
max_runtime is set by specifying a number in unit of seconds. Please note that depending on platform the time specified with max_runtime may not match entirely with the absolute run-times specified in tables. Hence you may have to experiment a bit with this option to get the cutoff you want.
Default is 600 seconds
[FITTING]
max_runtime: 600