reservoirpy.nodes.ScikitLearnNode#
- class reservoirpy.nodes.ScikitLearnNode( )[source]#
A node interfacing a scikit-learn linear model that can be used as an offline readout node.
The ScikitLearnNode takes a scikit-learn model as parameter and creates a node with the specified model.
We currently support classifiers (like
sklearn.linear_model.LogisticRegressionorsklearn.linear_model.RidgeClassifier) and regressors (likesklearn.linear_model.Lassoorsklearn.linear_model.ElasticNet).For more information on the above-mentioned estimators, please visit scikit-learn linear model API reference <https://scikit-learn.org/stable/modules/classes.html#module-sklearn.linear_model>`_
- Parameters:
Example
>>> from reservoirpy.nodes import Reservoir, ScikitLearnNode >>> from sklearn.linear_model import Lasso >>> reservoir = Reservoir(units=100) >>> readout = ScikitLearnNode(model=Lasso, model_hypers={"alpha":1e-5}) >>> model = reservoir >> readout
Methods
__init__(model[, output_dim, name])fit(x[, y, warmup])Offline fitting method of a Node.
initialize(x[, y])Define input and output dimensions, and instantiate variables.
predict([x, iters, workers])Alias for
run()reset()Reset all Node state
run([x, iters, workers])Run the Node on a sequence of data.
step([x])Call the Node function on a single step of data and update the state of the Node.
Attributes
Expected dimension of the Node input.
Optional name of the Node.
Expected dimension of the Node input.
scikit-learn class to be wrapped by the Node.
Additional keyword arguments passed to the scikit-learn model.
Model instance or list of model instances if multiple output are expected and the scikit-learn model doesn't support it.
True if the Node has been initialized
Current state of the Node.
- fit(
- x: array(t, d) | array(s, t, d) | ~typing.Sequence[array(t, d)],
- y: array(t, d) | array(s, t, d) | ~typing.Sequence[array(t, d)] | None = None,
- warmup: int = 0,
Offline fitting method of a Node.
- Parameters:
x (list or array-like of shape ([series, ] timesteps, input_dim), optional) – Input sequences dataset.
y (list or array-like of shape ([series], timesteps, output_dim), optional) – Teacher signals dataset. If None, the method will try to fit the Node in an unsupervised way, if possible.
warmup (int, default to 0) – Number of timesteps to consider as warmup and discard at the beginning of each timeseries before training.
- Returns:
Node trained offline.
- Return type:
- initialize(
- x: array(t, d) | array(s, t, d) | ~typing.Sequence[array(t, d)] | array(d),
- y: array(t, d) | array(s, t, d) | ~typing.Sequence[array(t, d)] | array(d) | None = None,
Define input and output dimensions, and instantiate variables.
Only called once, before fitting or running the node.
- Parameters:
x (array of shape (input_dim,) or (timestep, input_dim)) – Input data to the node.
y (None) – Training data to the node. As it is not a trainable node,
yis expected to beNone.
- instances: sklearn.base.BaseEstimator | list[sklearn.base.BaseEstimator]#
Model instance or list of model instances if multiple output are expected and the scikit-learn model doesn’t support it.
- predict(
- x: array(t, d) | array(s, t, d) | ~typing.Sequence[array(t, d)] | None = None,
- iters: int | None = None,
- workers=1,
Alias for
run()Run the Node on a sequence of data. Can update the state of the Node several times.
- Parameters:
x (array-like of shape ([n_inputs,] timesteps, input_dim) or list of) – arrays of shape (timesteps, input_dim), optional A sequence of data of shape (timesteps, features).
iters (int, optional) – If
xisNone, a dimensionless timeseries of lengthitersis used instead.
- Returns:
A sequence of output vectors.
- Return type:
array of shape ([n_inputs,] timesteps, output_dim) or list of arrays
- reset() dict[str, ndarray][source]#
Reset all Node state
- Returns:
dict[str, np.array]
- Return type:
previous state of the Node.
- run(
- x: array(t, d) | array(s, t, d) | ~typing.Sequence[array(t, d)] | None = None,
- iters: int | None = None,
- workers=1,
Run the Node on a sequence of data. Can update the state of the Node several times.
- Parameters:
x (array-like of shape ([n_inputs,] timesteps, input_dim) or list of arrays of shape (timesteps, input_dim), optional) – A timeseries, array of shape (timesteps, features), or a sequence of timeseries. Input of the Node.
iters (int, optional) – If
xisNone, a dimensionless timeseries of lengthitersis used instead.workers (int, default to 1) – Number of workers used for parallelization. If set to -1, all available workers (threads or processes) are used.
- Returns:
A sequence of output vectors.
- Return type:
array of shape ([n_inputs,] timesteps, output_dim) or list of arrays
- state: State#
Current state of the Node. Must have “out” as one of the keys.
- step(x: array(d) | None = None)[source]#
Call the Node function on a single step of data and update the state of the Node.
- Parameters:
x (array of shape (input_dim,), optional) – One single step of input data. If None, an empty array is used instead and the Node is assumed to have an input_dim of 0
- Returns:
An output vector.
- Return type:
array of shape (output_dim,)