skforecast
Skforecast is a Python library for time series forecasting using scikit-learn compatible models, statistical methods, and foundation models. It works with any estimator compatible with the scikit-learn API, including popular options like LightGBM, XGBoost, CatBoost, Keras, and many others.
What it is and what it does
Skforecast bridges scikit-learn and time series forecasting by letting you use any scikit-learn compatible regressor to forecast future values. It handles the complexity of converting time series data into supervised learning problems through lagged features and provides both single-series and multi-series workflows. The library includes tools for feature engineering, model selection, hyperparameter tuning via optuna, and backtesting to validate forecasts on historical data before deployment.
The package is built on numpy, pandas, and scikit-learn, with optional acceleration via numba and parallel job execution through joblib. It targets developers and data scientists who want production-ready forecasting without building custom pipelines, and it integrates naturally into existing scikit-learn workflows. The library is actively maintained, supports Python 3.10 through 3.14, and is NumFOCUS affiliated.
Use it for:
- Build multi-step ahead forecasts for time series data using scikit-learn compatible regressors.
- Perform hyperparameter tuning and model selection for forecasting tasks using optuna integration.
- Backtest forecasting models on historical data to evaluate realistic performance before deployment.
- Forecast multiple related time series simultaneously with flexible single and multi-series workflows.
- Engineer lagged features and other time series transformations automatically for supervised learning.
- Integrate forecasting into production pipelines using scikit-learn compatible estimators.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Skforecast is a Python library for time series forecasting that works with any scikit-learn compatible estimator, providing tools for feature engineering, model selection, hyperparameter tuning, and backtesting.
Yes. Skforecast is actively maintained, has low install friction, carries a permissive BSD-3-Clause license, and has no known vulnerabilities. It solves a genuine problem—using scikit-learn models for time series forecasting—with a mature API and strong community backing. Install it if you need to forecast time series with scikit-learn compatible estimators.
Install
skforecast on PyPI
pip
pip install skforecastuv
uv add skforecastpoetry
poetry add skforecastInstalling skforecast
Before you install
Low install friction with a pure Python wheel and nine well-established runtime dependencies (numpy, pandas, scikit-learn, scipy, optuna, joblib, numba, tqdm, rich). Actively maintained with recent releases and strong community engagement.
License in practice
BSD-3-Clause permissive license allows commercial and private use with minimal restrictions, making it suitable for both open-source and proprietary projects.
Quickstart
pip install skforecast
from skforecast.recursive import ForecasterRecursive
from skforecast.datasets import load_demo_dataset
import pandas as pd
y = load_demo_dataset()
forecaster = ForecasterRecursive(
estimator=None,
lags=15
)
forecaster.fit(y=y)
predictions = forecaster.predict(steps=12)
Requires Python 3.10 or later. Requires a scikit-learn compatible estimator to be provided.
Verify before relying
- Which specific scikit-learn compatible estimators are recommended or tested with skforecast.
- Performance benchmarks comparing skforecast to alternative time series libraries.
- Specific memory or computational requirements for large-scale forecasting tasks.
- Whether the library supports GPU acceleration for model training and prediction.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — numpy, pandas, tqdm, scikit-learn, scipy, optuna, joblib, numba, rich |
| Maintenance | actively maintained — 37 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 126,956/month — #11,757 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: skforecast-0.23.0-py3-none-any.whl
Keywords: data-science, machine-learning, data-mining, time-series, scikit-learn, forecasting, time-series-analysis, time-series-regression, autoregressive, deep-learning, lightgbm, xgboost, catboost
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
pycaretPyCaret automates machine learning workflows by…
permissive · top 15,000 on PyPI
sktimesktime provides a unified interface for time…
permissive · top 5,000 on PyPI
feature-engineFeature-engine provides transformers for…
permissive · top 15,000 on PyPI
ifcopenshellIfcOpenShell is a Python library for parsing,…
copyleft · top 15,000 on PyPI
statsforecastStatsForecast provides fast implementations of…
permissive · top 5,000 on PyPI
neuralforecastNeuralForecast provides a collection of neural…
permissive · top 15,000 on PyPI
pykalmanpykalman provides Kalman filtering, smoothing,…
permissive · top 15,000 on PyPI
scikit-baseProvides base classes and design patterns for…
permissive · top 5,000 on PyPI
mlforecastmlforecast trains machine learning models on…
permissive · top 15,000 on PyPI
sklearn-crfsuitesklearn-crfsuite wraps CRFsuite (Conditional…
permissive · top 15,000 on PyPI