Metadata-Version: 2.2
Name: aqua_blue
Version: 0.0.2
Summary: Lightweight and basic reservoir computing library
Home-page: https://github.com/Chicago-Club-Management-Company/aqua-blue
Author: Jacob Jeffries
Author-email: jacob.jeffries@chicagoclubteam.org
License: MIT
Keywords: reservoir computing,prediction,machine learning,forecasting,time series
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy

# aqua-blue
Lightweight and basic reservoir computing library

## 🌊 What is aqua-blue?

`aqua-blue` is a lightweight `python` library for reservoir computing (specifically [echo state networks](https://en.wikipedia.org/wiki/Echo_state_network)) depending only on `numpy`. `aqua-blue`'s namesake comes from:

- A blue ocean of data, aka a reservoir 💧
- A very fancy cat named Blue 🐾

## 📥 Installation

aqua-blue is on PyPI, and can therefore be installed with pip:

```bash
pip install aqua-blue
```

## 📝 Quickstart

```py
from aqua_blue import TimeSeries, EchoStateNetwork

# generate arbitrary two-dimensional time series
# y_1(t) = cos(t), y_2(t) = sin(t)
# resulting dependent variable has shape (number of timesteps, 2)
t = np.linspace(0, 4.0 * np.pi, 10_000)
y = np.vstack((np.cos(t), np.sin(t))).T

# create time series object to feed into echo state network
time_series = TimeSeries(dependent_variable=y, times=t)

# generate echo state network with a relatively high reservoir dimensionality
esn = EchoStateNetwork(reservoir_dimensionality=100, input_dimensionality=2)

# train esn on our time series
esn.train(time_series)

# predict 1,000 steps into the future
prediction = esn.predict(horizon=1_000)
```
