Functime is a cutting-edge machine learning library specifically designed for time-series forecasting, leveraging the powerful capabilities of the Polars query engine. Here’s a comprehensive overview of what Functime does and its key features:
What Functime Does
Functime is tailored for forecasting practitioners and data scientists, enabling the efficient forecasting of thousands of time series from the comfort of a laptop. It addresses the significant scalability issues associated with traditional forecasting methods by providing a seamless and highly performant modelling workflow.
Key Features
Speed and Efficiency
- Powered by Polars, Functime achieves speeds greater than those of other libraries like Numba, thanks to its use of Rust and Rayon. This results in speedups of about 1-2 orders of magnitude in feature engineering and cross-validation.
Feature Extraction
- Functime offers over 100 time-series feature extractors, such as `binned_entropy` and `longest_streak_above_mean`. These features are optimized for lazy queries and work with both `polars.Series` and `polars.Expr`. The library provides a custom `ts` namespace for easy access to these features, with approximately 85% of the implementations optimized for performance.
Global Forecasting
- Unlike traditional local forecasting methods that fit and predict one series per model, Functime supports global forecasting. This means it fits and predicts a collection of time series using a single model, which is particularly efficient for panel data.
Forecasting Models
- The library includes a range of forecasting models, such as `lasso`, `xgboost`, and benchmark models like `naive` and `seasonal naive`. These models support automated hyperparameter tuning, exogenous features, seasonality effects, and probabilistic forecasts via quantile regression and conformal prediction.
Preprocessing and Cross-Validation
- Functime provides utilities for the full forecasting lifecycle, including preprocessing (e.g., `boxcox`, `impute`), time-series cross-validation with expanding and sliding window splitters, and backtesting. It also supports feature extraction across multiple time series and windows.
Metrics and Scoring
- The library includes various forecast metrics (e.g., MASE, SMAPE, CRPS) for scoring in parallel, ensuring that model performance can be evaluated efficiently.
Integration and Deployment
- Functime is designed to be production-ready, allowing for deployment on platforms like AWS Lambda due to its slim and efficient architecture. This makes it easy to translate from experimentation to production environments.
User Experience
- The library is known for its intuitive syntax, making it pleasant to write and read. It is fully featured yet easy to use, making it a powerful tool for both beginners and experienced data scientists.
In summary, Functime is a robust and efficient machine learning library for time-series forecasting, offering unparalleled speed, extensive feature extraction capabilities, and a comprehensive suite of forecasting models and tools, all powered by the high-performance Polars query engine.