MLForecast

1.0.31 · active · verified Sun Apr 12

MLForecast is a framework for scalable machine learning based time series forecasting. It enables users to apply various machine learning models (like scikit-learn, LightGBM, XGBoost) to time series data, handling complex feature engineering (lags, rolling statistics, date features) and offering distributed training capabilities. The library is actively maintained, with frequent releases, currently at version 1.0.31.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to set up `mlforecast` for a simple time series prediction task. It generates sample daily series data, defines a Linear Regression model with a lag feature (a rolling mean of the target from the previous day), adds date-based features, fits the model, and generates forecasts.

import pandas as pd
from sklearn.linear_model import LinearRegression
from mlforecast import MLForecast
from mlforecast.lag_transforms import RollingMean
from mlforecast.utils import generate_daily_series

# 1. Generate sample time series data
# Data must be in long format with 'unique_id', 'ds', 'y'
df = generate_daily_series(
    n_series=5, max_length=100, n_static_features=0, with_trend=True
)
df['ds'] = pd.to_datetime(df['ds'])

# 2. Define models and features
models = [LinearRegression()]
lags = [7]
lag_transforms = {
    1: [RollingMean(window_size=7)]
}
date_features = ['dayofweek', 'month']

# 3. Instantiate MLForecast
# freq='D' for daily data; use 'W', 'M', etc. or integer for integer timestamps
forecast_model = MLForecast(
    models=models,
    freq='D',
    lags=lags,
    lag_transforms=lag_transforms,
    date_features=date_features,
)

# 4. Fit the model
forecast_model.fit(df)

# 5. Make predictions for the next 7 days
h = 7
predictions = forecast_model.predict(h=h)

print(predictions.head())

view raw JSON →