SAM (Smart Asset Management) is a Python package for timeseries analysis, anomaly detection and forecasting.
The documentation is available on ReadTheDocs.
Author: Royal HaskoningDHV
Email: [email protected]
The easiest way to install is package is using pip:
pip install sam
There are different optional dependencies for SAM, if you are unsure use pip install 'sam[all]'
other options include plotting
(just use the plotting functionality), data_science
(all dependencies needed for a data scientist) and data_engineering
(dependencies for data engineer).
Keep in mind that the sam package is updated frequently, and after a while, your local version may be out of date with the online documentation. To be sure, run the pip install -U sam
command to install the latest version.
Below you can find a simple example on how to use one of our timeseries models. For more examples, check our example notebooks
from sam.datasets import load_rainbow_beach
from sam.models import MLPTimeseriesRegressor
from sam.feature_engineering import SimpleFeatureEngineer
data = load_rainbow_beach()
X, y = data, data["water_temperature"]
# Easily create rolling and time features to be used by the model
simple_features = SimpleFeatureEngineer(
rolling_features=[
("wave_height", "mean", 24),
("wave_height", "mean", 12),
],
time_features=[
("hour_of_day", "cyclical"),
],
keep_original=False,
)
# Define your model, see the docs for all parameters
model = MLPTimeseriesRegressor(
predict_ahead=(1, 2, 3), # Multiple predict aheads are possible
quantiles=(0.025, 0.975), # Predict quantile bounds for anomaly detection
feature_engineer=simple_features,
epochs=20,
)
model.fit(X, y)
A configuration file can be created as .config
and should be located in your working directory. This configuration file only stores api credentials for now, but more options may be added in the future. The configuration file is parsed using the Python3 configparser, and an example configuration is shown below:
[regenradar]
url=https://rhdhv.lizard.net/api/v3/raster-aggregates/?
user=user.name
password=secret
[openweathermap]
apikey=secret
Anyone can create feature requests or bug reports! You can browse and create new issues on GitHub: https://github.com/RoyalHaskoningDHV/sam/issues