pysindy.deeptime package¶
Submodules¶
pysindy.deeptime.deeptime module¶
Deeptime wrapper interface for PySINDy.
- class pysindy.deeptime.deeptime.SINDyEstimator(optimizer=None, feature_library=None, differentiation_method=None, feature_names=None, t_default=1, discrete_time=False)[source]¶
Bases:
SINDy
Implementation of SINDy conforming to the API of a Deeptime Estimator.
- Parameters
optimizer (optimizer object, optional) – Optimization method used to fit the SINDy model. This must be an object extending
pysindy.optimizers.BaseOptimizer
. Default is sequentially thresholded least squares with a threshold of 0.1.feature_library (feature library object, optional) – Feature library object used to specify candidate right-hand side features. This must be an object extending the
pysindy.feature_library.base.BaseFeatureLibrary
. Default is polynomial features of degree 2.differentiation_method (differentiation object, optional) – Method for differentiating the data. This must be an object extending the
pysindy.differentiation_methods.base.BaseDifferentiation
class. Default is centered difference.feature_names (list of string, length n_input_features, optional) – Names for the input features (e.g.
['x', 'y', 'z']
). If None, will use['x0', 'x1', ...]
.t_default (float, optional (default 1)) – Default value for the time step.
discrete_time (boolean, optional (default False)) – If True, dynamical system is treated as a map. Rather than predicting derivatives, the right hand side functions step the system forward by one time step. If False, dynamical system is assumed to be a flow (right-hand side functions predict continuous time derivatives).
- Attributes
model (sklearn.multioutput.MultiOutputRegressor object) – The fitted SINDy model.
n_input_features_ (int) – The total number of input features.
n_output_features_ (int) – The total number of output features. This number is a function of
self.n_input_features
and the feature library being used.
- fit(x, **kwargs)[source]¶
Fit the SINDyEstimator to data, learning a dynamical systems model for the data.
- Parameters
x (array-like or list of array-like, shape (n_samples, n_input_features)) – Training data. If training data contains multiple trajectories, x should be a list containing data for each trajectory. Individual trajectories may contain different numbers of samples.
**kwargs (dict, optional) – Optional keyword arguments to pass to
fit
method.
- Returns
self
- Return type
fitted
SINDyEstimator
instance
- fetch_model()[source]¶
Yields the estimated model. Can be none if
fit
was not called.- Returns
model – The estimated SINDy model or none
- Return type
SINDyModel
or None
- property has_model¶
Property reporting whether this estimator contains an estimated model. This assumes that the model is initialized with
None
otherwise.- Type
bool
- class pysindy.deeptime.deeptime.SINDyModel(feature_library, optimizer, feature_names=None, t_default=1, discrete_time=False, n_control_features_=0)[source]¶
Bases:
SINDy
Implementation of SINDy conforming to the API of a Deeptime Model.
The model is represented as a Scikit-learn pipeline object with three steps: 1. Map the raw input data to nonlinear features according to the selected
feature_library
2. Reshape the data from input shape to an optimization problem 3. Multiply the nonlinear features with a coefficient matrix encapuslated inoptimizer
.This class expects the feature library and optimizer to already be fit with a
SINDyEstimator
. It is best to instantiate aSINDyModel
object via theSINDyEstimator.fetch_model
rather than calling theSINDyModel
constructor directly.- Parameters
optimizer (optimizer object) – Optimization method used to fit the SINDy model. This must be an (already fit) object extending
pysindy.optimizers.BaseOptimizer
.feature_library (feature library object) – Feature library object used to specify candidate right-hand side features. This must be an (already fit) object extending
pysindy.feature_library.BaseFeatureLibrary
.differentiation_method (differentiation object) – Method for differentiating the data. This must be an object extending
pysindy.differentiation_methods.BaseDifferentiation
. Default is centered difference.feature_names (list of string, length n_input_features, optional) – Names for the input features (e.g.
['x', 'y', 'z']
). If None, will use['x0', 'x1', ...]
.t_default (float, optional (default 1)) – Default value for the time step.
discrete_time (boolean, optional (default False)) – If True, dynamical system is treated as a map. Rather than predicting derivatives, the right hand side functions step the system forward by one time step. If False, dynamical system is assumed to be a flow (right-hand side functions predict continuous time derivatives).
- Attributes
model (sklearn.multioutput.MultiOutputRegressor object) – The fitted SINDy model.
n_input_features_ (int) – The total number of input features.
n_output_features_ (int) – The total number of output features. This number is a function of
self.n_input_features
and the feature library being used.
Module contents¶
- class pysindy.deeptime.SINDyEstimator(optimizer=None, feature_library=None, differentiation_method=None, feature_names=None, t_default=1, discrete_time=False)[source]¶
Bases:
SINDy
Implementation of SINDy conforming to the API of a Deeptime Estimator.
- Parameters
optimizer (optimizer object, optional) – Optimization method used to fit the SINDy model. This must be an object extending
pysindy.optimizers.BaseOptimizer
. Default is sequentially thresholded least squares with a threshold of 0.1.feature_library (feature library object, optional) – Feature library object used to specify candidate right-hand side features. This must be an object extending the
pysindy.feature_library.base.BaseFeatureLibrary
. Default is polynomial features of degree 2.differentiation_method (differentiation object, optional) – Method for differentiating the data. This must be an object extending the
pysindy.differentiation_methods.base.BaseDifferentiation
class. Default is centered difference.feature_names (list of string, length n_input_features, optional) – Names for the input features (e.g.
['x', 'y', 'z']
). If None, will use['x0', 'x1', ...]
.t_default (float, optional (default 1)) – Default value for the time step.
discrete_time (boolean, optional (default False)) – If True, dynamical system is treated as a map. Rather than predicting derivatives, the right hand side functions step the system forward by one time step. If False, dynamical system is assumed to be a flow (right-hand side functions predict continuous time derivatives).
- Attributes
model (sklearn.multioutput.MultiOutputRegressor object) – The fitted SINDy model.
n_input_features_ (int) – The total number of input features.
n_output_features_ (int) – The total number of output features. This number is a function of
self.n_input_features
and the feature library being used.
- fit(x, **kwargs)[source]¶
Fit the SINDyEstimator to data, learning a dynamical systems model for the data.
- Parameters
x (array-like or list of array-like, shape (n_samples, n_input_features)) – Training data. If training data contains multiple trajectories, x should be a list containing data for each trajectory. Individual trajectories may contain different numbers of samples.
**kwargs (dict, optional) – Optional keyword arguments to pass to
fit
method.
- Returns
self
- Return type
fitted
SINDyEstimator
instance
- fetch_model()[source]¶
Yields the estimated model. Can be none if
fit
was not called.- Returns
model – The estimated SINDy model or none
- Return type
SINDyModel
or None
- property has_model¶
Property reporting whether this estimator contains an estimated model. This assumes that the model is initialized with
None
otherwise.- Type
bool
- class pysindy.deeptime.SINDyModel(feature_library, optimizer, feature_names=None, t_default=1, discrete_time=False, n_control_features_=0)[source]¶
Bases:
SINDy
Implementation of SINDy conforming to the API of a Deeptime Model.
The model is represented as a Scikit-learn pipeline object with three steps: 1. Map the raw input data to nonlinear features according to the selected
feature_library
2. Reshape the data from input shape to an optimization problem 3. Multiply the nonlinear features with a coefficient matrix encapuslated inoptimizer
.This class expects the feature library and optimizer to already be fit with a
SINDyEstimator
. It is best to instantiate aSINDyModel
object via theSINDyEstimator.fetch_model
rather than calling theSINDyModel
constructor directly.- Parameters
optimizer (optimizer object) – Optimization method used to fit the SINDy model. This must be an (already fit) object extending
pysindy.optimizers.BaseOptimizer
.feature_library (feature library object) – Feature library object used to specify candidate right-hand side features. This must be an (already fit) object extending
pysindy.feature_library.BaseFeatureLibrary
.differentiation_method (differentiation object) – Method for differentiating the data. This must be an object extending
pysindy.differentiation_methods.BaseDifferentiation
. Default is centered difference.feature_names (list of string, length n_input_features, optional) – Names for the input features (e.g.
['x', 'y', 'z']
). If None, will use['x0', 'x1', ...]
.t_default (float, optional (default 1)) – Default value for the time step.
discrete_time (boolean, optional (default False)) – If True, dynamical system is treated as a map. Rather than predicting derivatives, the right hand side functions step the system forward by one time step. If False, dynamical system is assumed to be a flow (right-hand side functions predict continuous time derivatives).
- Attributes
model (sklearn.multioutput.MultiOutputRegressor object) – The fitted SINDy model.
n_input_features_ (int) – The total number of input features.
n_output_features_ (int) – The total number of output features. This number is a function of
self.n_input_features
and the feature library being used.