All Projects → LeeDoYup → Robuststl

LeeDoYup / Robuststl

Licence: mit
Unofficial Implementation of RobustSTL: A Robust Seasonal-Trend Decomposition Algorithm for Long Time Series (AAAI 2019)

Projects that are alternatives of or similar to Robuststl

Suite2p
cell detection in calcium imaging recordings
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Oreilly Captions
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Pytorch Question Answering
Important paper implementations for Question Answering using PyTorch
Stars: ✭ 154 (+0%)
Mutual labels:  jupyter-notebook
Pyiron
pyiron - an integrated development environment (IDE) for computational materials science.
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Py Rfcn Priv
code for py-R-FCN-multiGPU maintained by bupt-priv
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Ipynb Quicklook
A Quick Look generator for Jupyter/IPython notebooks without further dependencies
Stars: ✭ 152 (-1.3%)
Mutual labels:  jupyter-notebook
Zanzibar Aerial Mapping
Open source notebooks to create state-of-the-art detection, segmentation, & classification of buildings on drone/aerial imagery with deep learning
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Python For Probability Statistics And Machine Learning 2e
Second edition of Springer Book Python for Probability, Statistics, and Machine Learning
Stars: ✭ 154 (+0%)
Mutual labels:  jupyter-notebook
Datasciencevm
Tools and Docs on the Azure Data Science Virtual Machine (http://aka.ms/dsvm)
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Natural Language Processing Specialization
This repo contains my coursework, assignments, and Slides for Natural Language Processing Specialization by deeplearning.ai on Coursera
Stars: ✭ 151 (-1.95%)
Mutual labels:  jupyter-notebook
Textmining Tutorial
(한국어) 텍스트 마이닝을 위한 공부거리들
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Ios Coreml Yolo
Almost Real-time Object Detection using Apple's CoreML and YOLO v1 -
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Python Data Visualization Course
Course materials for teaching data visualization in Python.
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Predict Remaining Useful Life
Predict remaining useful life of a component based on historical sensor observations using automated feature engineering
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Hamiltorch
PyTorch-based library for Riemannian Manifold Hamiltonian Monte Carlo (RMHMC) and inference in Bayesian neural networks
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Ar Depth
Fast Depth Densification for Occlusion-Aware Augmented Reality
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Oreilly Intro To Predictive Clv
Repo that contains the supporting material for O'Reilly Webinar "An Intro to Predictive Modeling for Customer Lifetime Value" on Feb 28, 2017
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Mastering Python For Finance Second Edition
Mastering Python for Finance – Second Edition, published by Packt
Stars: ✭ 153 (-0.65%)
Mutual labels:  jupyter-notebook
Self Learning
Books Papers, Courses & more I have to learn soon
Stars: ✭ 146 (-5.19%)
Mutual labels:  jupyter-notebook
Hdbscan
A high performance implementation of HDBSCAN clustering.
Stars: ✭ 2,032 (+1219.48%)
Mutual labels:  jupyter-notebook

RobustSTL: A Robust Seasonal-Trend Decomposition Algorithm for Long Time Series (AAAI 2019)

This repository contains python (3.5.2) implementation of RobustSTL (paper) .

Decomposing complex time series into trend, seasonality, and remainder components is an important task to facilitate time series anomaly detection and forecasting.
RobustSTL extract trend using LAD loss with sparse regularization and non-local seasonal filtering.
Compared to previous approaches (such as traditional STL), RobustSTL has advantages on

  1. Ability to handle seasonality fluctuation and shift, and abrupt change in trend and reminder
  2. robustness of data with anomalies
  3. applicability on time series with long seasonality period.

Requirments & Run

First, install some required libraries using pip.

pip3 install -r requirments.txt
python3 main.py

Sample Results

We generate a synthetic sample (sample_generator.py) and decompose it into trend, seasonality, and remainder. In run_example.ipynb, I attach the example codes to use RobustSTL and the outputs.

Codes

  • main.py : run example code
  • RobustSTL.py: contains RobustSTL algorithm and each process.
  • utils.py: common utility functions
  • sample_generator.py: generation codes of synthetic sample.
  • l1.py : optimizer of l1 norm approximation (source: cvxopt)

Arugments of RobustSTL

  • input : input series
  • season_len : length of seasonal period
  • reg1 : first order regularization parameter for trend extraction
  • reg2 : second order regularization parameter for trend extraction
  • K : number of past season samples in seasonality extraction
  • H : number of neighborhood in seasonality extraction
  • dn1, dn2 : hyperparameter of bilateral filter in denoising step.
  • ds1, ds2 : hyperparameter of bilarteral filter in seasonality extraction step.

Shape of input sample

Basically, RobustSTL is for univariate time series sample.
However, this codes are available on multi-variate time series sample. (It apply the algorithm to each series, using multiprocessing) Each series have to have same time length.

  • Univariate Time Series: [Time] or [Time,1]
  • Multivariate Time Series: [N, Time] or [N, Time, 1]

Etc

The original paper has wrong notation in seasonality extraction.
The difference is log

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].