ForecastFlowML Docs#

ForecastFlowML is a scalable machine learning forecasting framework that enables parallel training (by distributing models rather than data) of scikit-learn like models based on PySpark.

With ForecastFlowML, you can build scikit-learn like regressors as direct multi-step forecasters, and train a seperate model for each group in your dataset. Our package leverages the power of PySpark to efficiently handle large datasets and enables distributed computing for faster model training.

Features#

ForecastFlowML provides a range of features that make it a powerful and flexible tool for time-series forecasting, including:

  • Scaleable and extensive time series feature engineering (lag, rolling mean/std, stockout, history length) with PySpark.

  • Parallel model training per group in the dataset with Pyspark Pandas UDFs.

  • Direct multi-step forecasting.

  • Built-in time based cross-validation.

  • Hyperparameter tuning for each group model with grid search.

  • Supports scikit-learn like libraries such as LightGBM or XGBoost.

Installation#

ForecastFlowML installation#

You can install the package using the following command:

pip install forecastflowml

Check Java#

Make sure you have installed Java 11. You can check whether you have Java or not with the following command:

java -version

Set PYSPARK_PYTHON#

In the python script, set PYSPARK_PYTHON environment variable to your Python executable path before creating the spark instance:

import sys
import os
from pyspark.sql import SparkSession
os.environ["PYSPARK_PYTHON"] = sys.executable
spark = SparkSession.builder.master("local[*]").getOrCreate()