deerlab.Model¶
- class Model(nonlinfcn, constants=None, signature=None)[source]¶
Represents a model.
The
Model
class provides a way to create a new model object from a non-linear function. TheModel
class also provides access to the model parameters and allows them to be modified.- Attributes:
- <parameter_name>deerlab.Parameter
Model parameter. One deerlab.Parameter instance is assigned for each parameter (with name
<parameter_name>
) in the model.- descriptionstring
Description of the model.
- signaturestring
Call signature (keyword arguments in order) of the model.
- nonlinmodelcallable
Function of the non-linear part of the model.
- Nnonlinint scalar
Number of non-linear parameters in the model.
- Nlinint scalar
Number of linear parameters in the model.
- Nparamint scalar
Number of parameters in the model.
Methods table¶
|
Construct a new model from a non-linear function. |
|
Add a new linear parameter (deerlab.Parameter object) to the model. |
|
Add a new non-linear parameter (deerlab.Parameter object) to the model. |
Utility function to quickly request all metadata attributes of the model in vector form. |
|
|
Rename a parameter in the model. |
Methods¶
- Model.__init__(nonlinfcn, constants=None, signature=None)[source]¶
Construct a new model from a non-linear function.
- Parameters:
- nonlinfcncallable
Function that takes a set of non-linear parameters and returns either the full model response or the design matrix of the model response. A parameter will be added to the new model for each input argument defined in the function signature.
- constantsstring or list thereof, optional
Names of the arguments taken by the
nonlinfcn
function to be defined as constants. These will not be added as parameters to the new model.- signaturelist of strings, optional
Signature of the
nonlinfcn
function to manually specify the names of the input arguments. For internal use (mostly).
- Returns:
- model
Model
object Model object instance that takes the parameters defined for
nonlinfcn
and returns the output ofnonlinfcn
.
- model
- Model.addlinear(name, vec=1, normalization=None, lb=-inf, ub=inf, par0=None, unit=None, description=None)[source]¶
Add a new linear parameter (deerlab.Parameter object) to the model.
- Parameters:
- namestring
Identifier of the parameter. This name will be used to refer to the parameter in the model.
- vecint scalar, optional
Number of elements in the parameter. If
vec>1
then the parameter will represent a vector of linear parameters of lengthvec
. By default, a scalar parameter is defined.- normalizationcallable, optional
Normalization function of the parameter. If specified, upon fitting the parameter will be normalized and an the normalization factor will be reported separately. Does not add an additional normalization factor parameter. Must be function taking the parameter and returning the normalized parameter.
- lbfloat or array_like, optional
Lower bound of the parameter. For vectorized parameters, must be a vector with
vec
elements. If not specified, it is set to-np.inf
.- ubfloat or array_like, optional
Lower bound of the parameter. For vectorized parameters, must be a vector with
vec
elements. If not specified, it is set to+np.inf
.- descriptionstring, optional
Description of the parameter.
- unitstring, optional
Physical unit of the parameter.
- Model.addnonlinear(key, lb=-inf, ub=inf, par0=None, name=None, unit=None, description=None)[source]¶
Add a new non-linear parameter (deerlab.Parameter object) to the model.
- Parameters:
- keystring
Identifier of the parameter. This name will be used to refer to the parameter in the model.
- lbfloat or array_like, optional
Lower bound of the parameter. If not specified, it is set to
-np.inf
.- ubfloat or array_like, optional
Lower bound of the parameter. If not specified, it is set to
+np.inf
.- descriptionstring, optional
Description of the parameter.
- unitstring, optional
Physical unit of the parameter.
- Model.getmetadata()[source]¶
Utility function to quickly request all metadata attributes of the model in vector form. All elements are sorted according to the model function signature.
- Returns:
- metadatadict
Dictionary containing all the model’s metadata in ordered vectors. The model keys correspond to the model attributes, e.g.
metadata['lb']
corresponds to the model’s parameters lower boundaries.
- Model.rename_parameter(old, new)[source]¶
Rename a parameter in the model.
This method renames a parameter in the model. If the old parameter name does not exist, a
KeyError
is raised.- Parameters:
- oldstring
Old parameter name.
- newstring
New parameter name.