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 in optimizer.

This class expects the feature library and optimizer to already be fit with a SINDyEstimator. It is best to instantiate a SINDyModel object via the SINDyEstimator.fetch_model rather than calling the SINDyModel 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.

copy()[source]

Makes a deep copy of this model.

Returns

copy – A new copy of this model.

Return type

SINDyModel

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 in optimizer.

This class expects the feature library and optimizer to already be fit with a SINDyEstimator. It is best to instantiate a SINDyModel object via the SINDyEstimator.fetch_model rather than calling the SINDyModel 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.

copy()[source]

Makes a deep copy of this model.

Returns

copy – A new copy of this model.

Return type

SINDyModel