matthiaskoenig / sbmlsim

sbmlsim: SBML simulation made easy
GNU Lesser General Public License v3.0
5 stars 4 forks source link

Implement loss function for parameter fitting #99

Closed matthiaskoenig closed 3 years ago

matthiaskoenig commented 3 years ago

https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.least_squares.html

lossstr or callable, optional

Determines the loss function. The following keyword values are allowed:

        ‘linear’ (default) : rho(z) = z. Gives a standard least-squares problem.

        ‘soft_l1’ : rho(z) = 2 * ((1 + z)**0.5 - 1). The smooth approximation of l1 (absolute value) loss. Usually a good choice for robust least squares.

        ‘huber’ : rho(z) = z if z <= 1 else 2*z**0.5 - 1. Works similarly to ‘soft_l1’.

        ‘cauchy’ : rho(z) = ln(1 + z). Severely weakens outliers influence, but may cause difficulties in optimization process.

        ‘arctan’ : rho(z) = arctan(z). Limits a maximum loss on a single residual, has properties similar to ‘cauchy’.

If callable, it must take a 1-D ndarray z=f**2 and return an array_like with shape (3, m) where row 0 contains function values, row 1 contains first derivatives and row 2 contains second derivatives. Method ‘lm’ supports only ‘linear’ loss.