๐ช A fast Adaptive Machine Learning library for Time-Series, that lets you build, deploy and update composite models easily. An order of magnitude speed-up, combined with flexibility and rigour. This is an internal project - documentation is not updated anymore and substantially differ from the current API.
FOLD
Fast Adaptive Time Series ML Engine
This is an internal project - documentation is not updated anymore and substantially differ from the current API. Explore the docs ยป
The Adaptive ML Engine that lets you build, deploy and update Models easily. An order of magnitude speed-up, combined with flexibility and rigour.
Main Features
- 10x faster Adaptive Backtesting - What does that mean?
- Composite Models made Adaptive - What does that mean?
- Distributed computing - Why is this important?
- Update deployed models (coming in May) - Why is this important?
Installation
- Prerequisites:
python >= 3.8andpip
- Install from pypi:
pip install fold-core
Quickstart
You can quickly train your chosen models and get predictions by running:
from sklearn.ensemble import RandomForestRegressor
from statsforecast.models import ARIMA
from fold import ExpandingWindowSplitter, train_evaluate
from fold.composites import Ensemble
from fold.transformations import OnlyPredictions
from fold.utils.dataset import getpreprocesseddataset
X, y = getpreprocesseddataset( "weather/historicalhourlyla", target_col="temperature", shorten=1000 )
pipeline = [ Ensemble( [ RandomForestRegressor(), ARIMA(order=(1, 1, 0)), ] ), OnlyPredictions(), ] splitter = ExpandingWindowSplitter(initialtrainwindow=0.2, step=0.2) scorecard, prediction, trainedpipelines, , = trainevaluate(pipeline, X, y, splitter)
(If you install krisi by running pip install krisi you get an extended report back, rather than a single metric.)
Fold is different
- Adaptive Models and Backtesting at lightning speed.
- Create composite models: ensembles, hybrids, stacking pipelines, easily.
- Built with Distributed Computing in mind.
ray, and use modin to handle out-of-memory datasets (full support for modin is coming in April).
- Bridging the gap between Online and Mini-Batch learning.
xgboost with ARIMA, in a single pipeline. Boost your model's accuracy by updating them on every timestamp, if desired.
- Update your deployed models, easily, as new data flows in.
Examples, Walkthroughs and Blog Posts
| Name | Type | Dataset Type | Docs Link | Colab |
|---|---|---|---|---|
| โก๏ธ Core Walkthrough | Walkthrough | Energy | Notebook | Colab |
| ๐ Speed Comparison of Fold to other libraries | Walkthrough | Weather | Notebook | Colab |
| ๐ Example Collection | Example | Weather & Synthetic | Collection Link | - |
| ๐๏ธ Why we ended up building an Adaptive ML engine for Time Series | Blog | Public Release Blog Post | Blog post on Applied Exploration | - |
Core Features
- Supports both Regression and Classification tasks.
- Online and Mini-batch learning.
- Feature selection and other transformations on an expanding/rolling window basis
- Use any scikit-learn/tabular model natively!
- Use any univariate or sequence models (wrappers provided in fold-wrappers).
- Use any Deep Learning Time Series models (wrappers provided in fold-wrappers).
- Super easy syntax!
- Probabilistic foreacasts (currently, for Classification, full support coming in April).
- Hyperparemeter optimization / Model selection. (coming in early April!)
What is Adaptive Backtesting?
It's like classical Backtesting / Time Series Cross-Validation, plus: Inside a test window, and during deployment, fold provides a way for models to update their parameters or access the last value. Learn more
Our Open-core Time Series Toolkit
Explore our Commercial License options here
Contribution
Submit an issue or reach out to us on info at dream-faster.ai for any inquiries.
Licence & Usage
We want to bring much-needed transparency, speed and rigour to the process of creating Time Series ML pipelines, while also building a sustainable business, that can support the ecosystem in the long-term. Fold's licence is inbetween source-available and a traditional commercial software licence. It requires a paid licence for any commercial use, after the initial, 30 day trial period.
We also want to contribute to open research by giving free access to non-commercial, research use of fold.
Limitations
- No intermittent time series support, very limited support for missing values.
- No hierarchical time series support.