rsatoolbox.model.fitter module¶
Parameter fitting methods for models
- class rsatoolbox.model.fitter.Fitter(fit_fun, **kwargs)[source]¶
Bases:
object
Object to specify a fitting function and parameters
Effectively this gives the user a convenient way to specify fitting functions with different settings than the defaults.
Create this object with the fitting function to use and additional keyword arguments for settings you wish to change. The resulting object then behaves as the fitting function itself with the keyword arguments set to the different values provided at object creation.
Example
generate Fitter-object for ridge regression:
fit = pyrsa.model.Fitter(pyrsa.model.fit_regress, ridge_weight=1)
the resulting object ‘fit’ now does the same as pyrsa.model.fit_regress when run with the additional argument
ridge_weight=1
, i.e. the following two lines now yield equal results:fit(model, data) pyrsa.model.fit_regress(model, data, ridge_weight=1)
For a general introduction to flexible models see demo_flex.
- rsatoolbox.model.fitter.fit_interpolate(model, data, method='cosine', pattern_idx=None, pattern_descriptor=None, sigma_k=None)[source]¶
fitting theta using bisection optimization allowed for ModelInterpolate only
- Parameters
model (Model) – the model to be fit
data (rsatoolbox.rdm.RDMs) – data to be fit
method (String, optional) – evaluation metric The default is ‘cosine’.
pattern_idx (numpy.ndarray, optional) – sampled patterns The default is None.
pattern_descriptor (String, optional) – descriptor used for fitting. The default is None.
sigma_k (matrix) – pattern-covariance matrix used only for whitened distances (ending in _cov) to compute the covariance matrix for rdms
- Returns
theta, parameter vector for the model
- Return type
numpy.ndarray
- rsatoolbox.model.fitter.fit_mock(model, data, method='cosine', pattern_idx=None, pattern_descriptor=None, sigma_k=None)[source]¶
formally acceptable fitting method which always returns a vector of zeros
- Parameters
model (rsatoolbox.model.Model) – model to be fit
data (rsatoolbox.rdm.RDMs) – Data to fit to
method (String) – Evaluation method
pattern_idx (numpy.ndarray) – Which patterns are sampled
pattern_descriptor (String) – Which descriptor is used
sigma_k (matrix) – pattern-covariance matrix used only for whitened distances (ending in _cov) to compute the covariance matrix for rdms
- Returns
parameter vector
- Return type
theta(numpy.ndarray)
- rsatoolbox.model.fitter.fit_optimize(model, data, method='cosine', pattern_idx=None, pattern_descriptor=None, sigma_k=None, ridge_weight=0)[source]¶
fitting theta using optimization currently allowed for ModelWeighted only
- Parameters
model (Model) – the model to be fit
data (rsatoolbox.rdm.RDMs) – data to be fit
method (String, optional) – evaluation metric The default is ‘cosine’.
pattern_idx (numpy.ndarray, optional) – sampled patterns The default is None.
pattern_descriptor (String, optional) – descriptor used for fitting. The default is None.
sigma_k (matrix) – pattern-covariance matrix used only for whitened distances (ending in _cov) to compute the covariance matrix for rdms
- Returns
theta, parameter vector for the model
- Return type
numpy.ndarray
- rsatoolbox.model.fitter.fit_optimize_positive(model, data, method='cosine', pattern_idx=None, pattern_descriptor=None, sigma_k=None, ridge_weight=0)[source]¶
fitting theta using optimization enforcing positive weights currently allowed for ModelWeighted only
- Parameters
model (Model) – the model to be fit
data (pyrsa.rdm.RDMs) – data to be fit
method (String, optional) – evaluation metric The default is ‘cosine’.
pattern_idx (numpy.ndarray, optional) – sampled patterns The default is None.
pattern_descriptor (String, optional) – descriptor used for fitting. The default is None.
sigma_k (matrix) – pattern-covariance matrix used only for whitened distances (ending in _cov) to compute the covariance matrix for rdms
- Returns
theta, parameter vector for the model
- Return type
numpy.ndarray
- rsatoolbox.model.fitter.fit_regress(model, data, method='cosine', pattern_idx=None, pattern_descriptor=None, ridge_weight=0, sigma_k=None)[source]¶
fitting theta using linear algebra solutions to the OLS problem allowed for ModelWeighted only This method first normalizes the data and model RDMs appropriately for the measure to be optimized. For ‘cosine’ similarity this is a normalization of the data-RDMs to vector length 1. For correlation the mean is removed from both model and data rdms additionally. Then the parameters are estimated using ordinary least squares.
- Parameters
model (Model) – the model to be fit
data (pyrsa.rdm.RDMs) – data to be fit
method (String, optional) – evaluation metric The default is ‘cosine’.
pattern_idx (numpy.ndarray, optional) – sampled patterns The default is None.
pattern_descriptor (String, optional) – descriptor used for fitting. The default is None.
ridge_weight (float, default=0) – weight for the ridge-regularisation of the regression weight is in comparison to the final regression problem on the appropriately normalized regressors
sigma_k (matrix) – pattern-covariance matrix used only for whitened distances (ending in _cov) to compute the covariance matrix for rdms
- Returns
theta, parameter vector for the model
- Return type
numpy.ndarray
- rsatoolbox.model.fitter.fit_regress_nn(model, data, method='cosine', pattern_idx=None, pattern_descriptor=None, ridge_weight=0, sigma_k=None)[source]¶
fitting theta using linear algebra solutions to the OLS problem allowed for ModelWeighted only This method first normalizes the data and model RDMs appropriately for the measure to be optimized. For ‘cosine’ similarity this is a normalization of the data-RDMs to vector length 1. For correlation the mean is removed from both model and data rdms additionally. Then the parameters are estimated using ordinary least squares.
- Parameters
model (Model) – the model to be fit
data (pyrsa.rdm.RDMs) – data to be fit
method (String, optional) – evaluation metric The default is ‘cosine’.
pattern_idx (numpy.ndarray, optional) – sampled patterns The default is None.
pattern_descriptor (String, optional) – descriptor used for fitting. The default is None.
ridge_weight (float, default=0) – weight for the ridge-regularisation of the regression weight is in comparison to the final regression problem on the appropriately normalized regressors
sigma_k (matrix) – pattern-covariance matrix used only for whitened distances (ending in _cov) to compute the covariance matrix for rdms
- Returns
theta, parameter vector for the model
- Return type
numpy.ndarray
- rsatoolbox.model.fitter.fit_select(model, data, method='cosine', pattern_idx=None, pattern_descriptor=None, sigma_k=None)[source]¶
fits selection models by evaluating each rdm and selcting the one with best performance. Works only for ModelSelect
- Parameters
model (rsatoolbox.model.Model) – model to be fit
data (rsatoolbox.rdm.RDMs) – Data to fit to
method (String) – Evaluation method
pattern_idx (numpy.ndarray) – Which patterns are sampled
pattern_descriptor (String) – Which descriptor is used
sigma_k (matrix) – pattern-covariance matrix used only for whitened distances (ending in _cov) to compute the covariance matrix for rdms
- Returns
parameter vector
- Return type
theta(int)