All Projects → microsoft → Forecasting

microsoft / Forecasting

Licence: mit
Time Series Forecasting Best Practices & Examples

Programming Languages

python
139335 projects - #7 most used programming language
r
7636 projects

Projects that are alternatives of or similar to Forecasting

ts-forecasting-ensemble
CentOS based Docker container for Time Series Analysis and Modeling.
Stars: ✭ 19 (-99.11%)
Mutual labels:  time-series, forecasting, prophet
Timetk
A toolkit for working with time series in R
Stars: ✭ 371 (-82.52%)
Mutual labels:  tidyverse, time-series, forecasting
Merlion
Merlion: A Machine Learning Framework for Time Series Intelligence
Stars: ✭ 2,368 (+11.54%)
Mutual labels:  time-series, forecasting, automl
Lale
Library for Semi-Automated Data Science
Stars: ✭ 198 (-90.67%)
Mutual labels:  artificial-intelligence, automl, hyperparameter-tuning
Awesome Ai Ml Dl
Awesome Artificial Intelligence, Machine Learning and Deep Learning as we learn it. Study notes and a curated list of awesome resources of such topics.
Stars: ✭ 831 (-60.86%)
Mutual labels:  artificial-intelligence, jupyter-notebook, time-series
AutoTS
Automated Time Series Forecasting
Stars: ✭ 665 (-68.68%)
Mutual labels:  time-series, forecasting, automl
Data Science
Collection of useful data science topics along with code and articles
Stars: ✭ 315 (-85.16%)
Mutual labels:  artificial-intelligence, jupyter-notebook, time-series
Luminaire
Luminaire is a python package that provides ML driven solutions for monitoring time series data.
Stars: ✭ 316 (-85.12%)
Mutual labels:  time-series, automl, forecasting
H1st
The AI Application Platform We All Need. Human AND Machine Intelligence. Based on experience building AI solutions at Panasonic: robotics predictive maintenance, cold-chain energy optimization, Gigafactory battery mfg, avionics, automotive cybersecurity, and more.
Stars: ✭ 697 (-67.17%)
Mutual labels:  jupyter-notebook, time-series, automl
Hyperparameter hunter
Easy hyperparameter optimization and automatic result saving across machine learning algorithms and libraries
Stars: ✭ 648 (-69.48%)
Mutual labels:  artificial-intelligence, lightgbm, hyperparameter-tuning
Auto ts
Automatically build ARIMA, SARIMAX, VAR, FB Prophet and XGBoost Models on Time Series data sets with a Single Line of Code. Now updated with Dask to handle millions of rows.
Stars: ✭ 195 (-90.81%)
Mutual labels:  jupyter-notebook, time-series, automl
Neural prophet
NeuralProphet - A simple forecasting model based on Neural Networks in PyTorch
Stars: ✭ 1,125 (-47.01%)
Mutual labels:  artificial-intelligence, time-series, forecasting
Introduction To Time Series Forecasting Python
Introduction to time series preprocessing and forecasting in Python using AR, MA, ARMA, ARIMA, SARIMA and Prophet model with forecast evaluation.
Stars: ✭ 173 (-91.85%)
Mutual labels:  jupyter-notebook, time-series, forecasting
mlforecast
Scalable machine 🤖 learning for time series forecasting.
Stars: ✭ 96 (-95.48%)
Mutual labels:  time-series, forecasting, lightgbm
Pba
Efficient Learning of Augmentation Policy Schedules
Stars: ✭ 461 (-78.29%)
Mutual labels:  artificial-intelligence, jupyter-notebook, automl
Autodl
Automated Deep Learning without ANY human intervention. 1'st Solution for AutoDL [email protected]
Stars: ✭ 854 (-59.77%)
Mutual labels:  artificial-intelligence, automl, lightgbm
Auto ml
[UNMAINTAINED] Automated machine learning for analytics & production
Stars: ✭ 1,559 (-26.57%)
Mutual labels:  artificial-intelligence, automl, lightgbm
Voice activity detection
Voice Activity Detection based on Deep Learning & TensorFlow
Stars: ✭ 132 (-93.78%)
Mutual labels:  artificial-intelligence, time-series
Automl alex
State-of-the art Automated Machine Learning python library for Tabular Data
Stars: ✭ 132 (-93.78%)
Mutual labels:  automl, hyperparameter-tuning
Image classifier
CNN image classifier implemented in Keras Notebook 🖼️.
Stars: ✭ 139 (-93.45%)
Mutual labels:  artificial-intelligence, jupyter-notebook

Forecasting Best Practices

Time series forecasting is one of the most important topics in data science. Almost every business needs to predict the future in order to make better decisions and allocate resources more effectively.

This repository provides examples and best practice guidelines for building forecasting solutions. The goal of this repository is to build a comprehensive set of tools and examples that leverage recent advances in forecasting algorithms to build solutions and operationalize them. Rather than creating implementations from scratch, we draw from existing state-of-the-art libraries and build additional utilities around processing and featurizing the data, optimizing and evaluating models, and scaling up to the cloud.

The examples and best practices are provided as Python Jupyter notebooks and R markdown files and a library of utility functions. We hope that these examples and utilities can significantly reduce the “time to market” by simplifying the experience from defining the business problem to the development of solutions by orders of magnitude. In addition, the example notebooks would serve as guidelines and showcase best practices and usage of the tools in a wide variety of languages.

Cleanup notice (2020-06-23)

We've carried out a cleanup of large obsolete files to reduce the size of this repo. If you had cloned or forked it previously, please delete and clone/fork it again to avoid any potential merge conflicts.

Content

The following is a summary of models and methods for developing forecasting solutions covered in this repository. The examples are organized according to use cases. Currently, we focus on a retail sales forecasting use case as it is widely used in assortment planning, inventory optimization, and price optimization. To enable high-throughput forecasting scenarios, we have included examples for forecasting multiple time series with distributed training techniques such as Ray in Python, parallel package in R, and multi-threading in LightGBM. Note that html links are provided next to R examples for best viewing experience when reading this document on our github.io page.

Model Language Description
Auto ARIMA Python Auto Regressive Integrated Moving Average (ARIMA) model that is automatically selected
Linear Regression Python Linear regression model trained on lagged features of the target variable and external features
LightGBM Python Gradient boosting decision tree implemented with LightGBM package for high accuracy and fast speed
DilatedCNN Python Dilated Convolutional Neural Network that captures long-range temporal flow with dilated causal connections
Mean Forecast (.html) R Simple forecasting method based on historical mean
ARIMA (.html) R ARIMA model without or with external features
ETS (.html) R Exponential Smoothing algorithm with additive errors
Prophet (.html) R Automated forecasting procedure based on an additive model with non-linear trends

The repository also comes with AzureML-themed notebooks and best practices recipes to accelerate the development of scalable, production-grade forecasting solutions on Azure. In particular, we have the following examples for forecasting with Azure AutoML as well as tuning and deploying a forecasting model on Azure.

Method Language Description
Azure AutoML Python AzureML service that automates model development process and identifies the best machine learning pipeline
HyperDrive Python AzureML service for tuning hyperparameters of machine learning models in parallel on cloud
AzureML Web Service Python AzureML service for deploying a model as a web service on Azure Container Instances

Getting Started in Python

To quickly get started with the repository on your local machine, use the following commands.

  1. Install Anaconda with Python >= 3.6. Miniconda is a quick way to get started.

  2. Clone the repository

    git clone https://github.com/microsoft/forecasting
    cd forecasting/
    
  3. Run setup scripts to create conda environment. Please execute one of the following commands from the root of Forecasting repo based on your operating system.

    • Linux
    ./tools/environment_setup.sh
    
    • Windows
    tools\environment_setup.bat
    

    Note that for Windows you need to run the batch script from Anaconda Prompt. The script creates a conda environment forecasting_env and installs the forecasting utility library fclib.

  4. Start the Jupyter notebook server

    jupyter notebook
    
  5. Run the LightGBM single-round notebook under the 00_quick_start folder. Make sure that the selected Jupyter kernel is forecasting_env.

If you have any issues with the above setup, or want to find more detailed instructions on how to set up your environment and run examples provided in the repository, on local or a remote machine, please navigate to the Setup Guide.

Getting Started in R

We assume you already have R installed on your machine. If not, simply follow the instructions on CRAN to download and install R.

The recommended editor is RStudio, which supports interactive editing and previewing of R notebooks. However, you can use any editor or IDE that supports RMarkdown. In particular, Visual Studio Code with the R extension can be used to edit and render the notebook files. The rendered .nb.html files can be viewed in any modern web browser.

The examples use the Tidyverts family of packages, which is a modern framework for time series analysis that builds on the widely-used Tidyverse family. The Tidyverts framework is still under active development, so it's recommended that you update your packages regularly to get the latest bug fixes and features.

Target Audience

Our target audience for this repository includes data scientists and machine learning engineers with varying levels of knowledge in forecasting as our content is source-only and targets custom machine learning modelling. The utilities and examples provided are intended to be solution accelerators for real-world forecasting problems.

Contributing

We hope that the open source community would contribute to the content and bring in the latest SOTA algorithm. This project welcomes contributions and suggestions. Before contributing, please see our Contributing Guide.

Reference

The following is a list of related repositories that you may find helpful.

Deep Learning for Time Series Forecasting A collection of examples for using deep neural networks for time series forecasting with Keras.
Microsoft AI Github Find other Best Practice projects, and Azure AI designed patterns in our central repository.

Build Status

Build Branch Status
Linux CPU master Build Status
Linux CPU staging Build Status
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].