Homepage | Documentation | Tutorials | Contribution Guide | Release Notes
ETNA is an easy-to-use time series forecasting framework. It includes built in toolkits for time series preprocessing, feature generation, a variety of predictive models with unified interface - from classic machine learning to SOTA neural networks, models combination methods and smart backtesting. ETNA is designed to make working with time series simple, productive, and fun.
ETNA is the first python open source framework of Tinkoff.ru Artificial Intelligence Center. The library started as an internal product in our company - we use it in over 10+ projects now, so we often release updates. Contributions are welcome - check our Contribution Guide.
ETNA is available on PyPI, so you can use pip
to install it.
Install default version:
pip install --upgrade pip
pip install etna
The default version doesn't contain all the dependencies, because some of them are needed only for specific models, e.g. Prophet, PyTorch. Available user extensions are the following:
prophet
torch
wandb
Install extension:
pip install etna[extension-name]
Install all extensions:
pip install etna[all]
There are also developer extensions. All the extensions are listed in pyproject.toml
.
Without the appropriate extension you will get an ImportError
trying to import the model that needs it.
For example, etna.models.ProphetModel
needs prophet
extension and can't be used without it.
ETNA supports configuration files. It means that library will check that all the specified packages are installed prior to script start and NOT during runtime.
To set up a configuration for your project you should create a .etna
file at the project's root. To see the available options look at Settings
. There is an example of configuration file.
Here's some example code for a quick start.
import pandas as pd
from etna.datasets.tsdataset import TSDataset
from etna.models import ProphetModel
from etna.pipeline import Pipeline
# Read the data
df = pd.read_csv("examples/data/example_dataset.csv")
# Create a TSDataset
df = TSDataset.to_dataset(df)
ts = TSDataset(df, freq="D")
# Choose a horizon
HORIZON = 8
# Fit the pipeline
pipeline = Pipeline(model=ProphetModel(), horizon=HORIZON)
pipeline.fit(ts)
# Make the forecast
forecast_ts = pipeline.forecast()
We have also prepared a set of tutorials for an easy introduction:
Notebook | Interactive launch |
---|---|
Get started | |
Backtest | |
EDA | |
Outliers | |
Clustering | |
Deep learning models | |
Ensembles |
ETNA documentation is available here.
-
Forecasting with ETNA: Fast and Furious on Medium
-
Store sales prediction with etna library on Kaggle
-
PyCon Russia September 2021 talk on YouTube
Andrey Alekseev, Nikita Barinov, Dmitriy Bunin, Aleksandr Chikov, Vladislav Denisov, Martin Gabdushev, Sergey Kolesnikov, Artem Makhin, Ivan Mitskovets, Albina Munirova, Nikolay Romantsov, Julia Shenshina
Artem Levashov, Aleksey Podkidyshev, Carlosbogo
Feel free to use our library in your commercial and private applications.
ETNA is covered by Apache 2.0. Read more about this license here