Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/DataCanvasIO/HyperTS
A Full-Pipeline Automated Time Series (AutoTS) Analysis Toolkit.
https://github.com/DataCanvasIO/HyperTS
anomaly-detection autodl automl autots classification covariates forecasting hyperparameter-optimization iforest inceptiontime lstnet meta-features multivariate nbeats neural-architecture-search prophet regression tensorflow time-series
Last synced: about 1 month ago
JSON representation
A Full-Pipeline Automated Time Series (AutoTS) Analysis Toolkit.
- Host: GitHub
- URL: https://github.com/DataCanvasIO/HyperTS
- Owner: DataCanvasIO
- License: apache-2.0
- Created: 2021-11-15T03:02:13.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-01T02:02:35.000Z (5 months ago)
- Last Synced: 2024-10-02T12:47:56.344Z (2 months ago)
- Topics: anomaly-detection, autodl, automl, autots, classification, covariates, forecasting, hyperparameter-optimization, iforest, inceptiontime, lstnet, meta-features, multivariate, nbeats, neural-architecture-search, prophet, regression, tensorflow, time-series
- Language: Python
- Homepage: https://hyperts.readthedocs.io
- Size: 7.62 MB
- Stars: 262
- Watchers: 11
- Forks: 27
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-time-series - HyperTS: A Full-Pipeline Automated Time Series Analysis Toolkit
- awesome-time-series - HyperTS - Pipeline Automated Time Series (AutoTS) Analysis Toolkit. (š¦ Packages / Python)
README
Statistics | Deep Learning | Neural Architecture Search
[ē®ä½äøę](README_zh_CN.md) ā¢ [Installation](https://hyperts.readthedocs.io/en/latest/contents/0200_installation.html) ā¢ [Documentation](https://hyperts.readthedocs.io/en/latest/) ā¢ [Examples](https://github.com/DataCanvasIO/HyperTS/tree/main/examples)
[![Python Versions](https://img.shields.io/pypi/pyversions/hyperts.svg)](https://pypi.org/project/hyperts)
[![pypi](https://img.shields.io/pypi/v/hyperts.svg)](https://pypi.python.org/pypi/hyperts)
[![conda](https://img.shields.io/conda/vn/conda-forge/HyperTS.svg)](https://anaconda.org/conda-forge/HyperTS)
[![TensorFlow Versions](https://img.shields.io/badge/TensorFlow-2.0+-blue.svg)](https://pypi.org/project/hyperts)
[![License](https://img.shields.io/github/license/DataCanvasIO/hyperts.svg)](https://github.com/DataCanvasIO/hyperts/blob/master/LICENSE):dizzy: Easy-to-use, powerful, and unified full pipeline automated time series toolkit. Supports forecasting, classification, regression, and anomaly detection.
## We Are Hiringļ¼
Dear folks, we are offering challenging opportunities located in Beijing for both professionals and students who are keen on AutoML/NAS. Come be a part of DataCanvas! Please send your CV to [email protected]. (Application deadline: TBD.)## Overview
HyperTS is a Python package that provides an end-to-end time series (TS) analysis toolkit. It covers complete and flexible AutoML workflows for TS, including data clearning, preprocessing, feature engineering, model selection, hyperparamter optimization, result evaluation, and visualization.Multi-mode drive, light-heavy combination is the highlighted features of HyperTS. Therefore, statistical models (STATS), deep learning (DL), and neural architecture search (NAS) can be switched arbitrarily to get a powerful TS estimator.
As an easy-to-use and lower-threshold API, users can get a model after simply running the experiment, and then execute ```.predict()```, ```.predict_proba()```, ```.evalute()```, ```.plot()``` for various time series analysis.
## Installation
Note:
- Prophet is required by HyperTS, install it from ``conda`` before installing HyperTS using ``pip``.
- Tensorflow is an optional dependency for HyperTS, install it if using DL and NAS mode.HyperTS is available on Pypi and can be installed with ``pip``:
```bash
pip install hyperts
```You can also install HyperTS from ``conda`` via the ``conda-forge`` channel:
```bash
conda install -c conda-forge hyperts
```If you would like the most up-to-date version, you can instead install direclty from ``github``:
```bash
git clone [email protected]:DataCanvasIO/HyperTS.git
cd HyperTS
pip install -e .
pip install tensorflow #optional, recommended version: >=2.0.0,<=2.10.0
````For more installation tips, see [installation](https://hyperts.readthedocs.io/en/latest/contents/0200_installation.html).
## Tutorial
|[English Docs](https://hyperts.readthedocs.io/en/latest/) / [Chinese Docs](https://hyperts.readthedocs.io/zh_CN/latest)| Discription |
| --------------------------------- | --------------------------------- |
[Expected Data Format](https://hyperts.readthedocs.io/en/latest/contents/0300_dataformat.html)|What data formats do HyperTS expect?|
|[Quick Start](https://hyperts.readthedocs.io/en/latest/contents/0400_quick_start.html)| How to get started quickly with HyperTS?|
|[Advanced Ladder](https://hyperts.readthedocs.io/en/latest/contents/0500_advanced_config.html)|How to realize the potential of HyperTS?|
|[Custom Functions](https://hyperts.readthedocs.io/en/latest/contents/0600_custom_functions.html)|How to customize the functions of HyperTS?|## Examples
Time Series Forecasting
Users can quickly create and ```run()``` an experiment with ```make_experiment()```, where ```train_data```, and ```task``` are required input parameters. In the following forecast example, we define the experiment as a multivariate-forecast ```task```, and use the statistical model (stat ```mode```) . Besides, the mandatory arguments ```timestamp``` and ```covariates``` (if have) should also be defined in the experiment.
```python
from hyperts import make_experiment
from hyperts.datasets import load_network_trafficfrom sklearn.model_selection import train_test_split
data = load_network_traffic()
train_data, test_data = train_test_split(data, test_size=0.2, shuffle=False)model = make_experiment(train_data.copy(),
task='multivariate-forecast',
mode='stats',
timestamp='TimeStamp',
covariates=['HourSin', 'WeekCos', 'CBWD']).run()X_test, y_test = model.split_X_y(test_data.copy())
y_pred = model.predict(X_test)
scores = model.evaluate(y_test, y_pred)
model.plot(forecast=y_pred, actual=test_data)
```![Forecast_Figure](https://raw.githubusercontent.com/DataCanvasIO/HyperTS/main/docs/static/images/Actual_vs_Forecast.jpg)
Time Series Classification (click to expand)
```python
from hyperts import make_experiment
from hyperts.datasets import load_basic_motionsfrom sklearn.metrics import f1_score
from sklearn.model_selection import train_test_splitdata = load_basic_motions()
train_data, test_data = train_test_split(data, test_size=0.2)model = make_experiment(train_data.copy(),
task='classification',
mode='dl',
tf_gpu_usage_strategy=1,
reward_metric='accuracy',
max_trials=30,
early_stopping_rounds=10).run()X_test, y_test = model.split_X_y(test_data.copy())
y_pred = model.predict(X_test)
y_proba = model.predict_proba(X_test)scores = model.evaluate(y_test, y_pred, y_proba=y_proba, metrics=['accuracy', 'auc', f1_score])
print(scores)
```Time Series Anomaly Detection (click to expand)
```python
from hyperts import make_experiment
from hyperts.datasets import load_real_known_cause_datasetfrom sklearn.model_selection import train_test_split
data = load_real_known_cause_dataset()
ground_truth = data.pop('anomaly')detection_length = 15000
train_data, test_data = train_test_split(data, test_size=detection_length, shuffle=False)model = make_experiment(train_data.copy(),
task='detection',
mode='stats',
reward_metric='f1',
max_trials=30,
early_stopping_rounds=10).run()X_test, _ = model.split_X_y(test_data.copy())
y_test = ground_truth.iloc[-detection_length:]y_pred = model.predict(X_test)
y_proba = model.predict_proba(X_test)scores = model.evaluate(y_test, y_pred, y_proba=y_proba)
model.plot(y_pred, actual=test_data, history=train_data, interactive=False)
```Time Series MetaFeatures Extract (click to expand)
```python
from hyperts.toolbox import metafeatures_from_timeseries
from hyperts.datasets import load_random_univariate_forecast_datasetdata = load_random_univariate_forecast_dataset()
metafeatures = metafeatures_from_timeseries(x=data, timestamp='ds', scale_ts=True)
```**More detailed guides:** [EXAMPLES.](https://github.com/DataCanvasIO/HyperTS/tree/main/examples)
## Key Features
HyperTS supports the following features:
**Multi-task Support:** Time series forecasting, classification, regression, and anomaly detection.
**Multi-mode Support:** A large collection of TS models, including statistical models (Prophet, ARIMA, VAR, iForest, etc.), deep learning models(DeepAR, GRU, LSTNet, NBeats, VAE, etc.), and neural architecture search.
**Multi-variate Support:** From univariate to multivariate time series.
**Covariates Support:** Deep learning models support covariates as input featues for time series forecasting.
**Probabilistic Intervals Support:** Time series forecasting visualization can show confidence intervals.
**Diversified Preprocessing:** Outlier clipping, missing value imputing, sequence smoothing, normalization, etc.
**Abundant Metrics:** A variety of performance metrics to evaluate results and guide models optimization, including MSE, SMAPE, Accuracy, F1-Score,etc.
**Powerful Search Strategies:** Adapting Grid Search, Monte Carlo Tree Search, Evolution Algorithm combined with a meta-learner to enable a powerful and effective TS pipeline.
**Ensemble:** Refinement greedy emsemble glues the most powerful models.
**Cross Validation:** Multiple time series cross-validation strategies ensure generalization ability.
## Communication
- If you wish to contribute to this project, please refer to [CONTRIBUTING](CONTRIBUTING.md).
- If you have any question or idea, you can alse participate with our [Discussions Community](https://github.com/DataCanvasIO/HyperTS/discussions).## HyperTS Related Projects
* [Hypernets](https://github.com/DataCanvasIO/Hypernets): A general automated machine learning (AutoML) framework.
* [HyperGBM](https://github.com/DataCanvasIO/HyperGBM): A full pipeline AutoML tool integrated various GBM models.
* [HyperDT/DeepTables](https://github.com/DataCanvasIO/DeepTables): An AutoDL tool for tabular data.
* [HyperKeras](https://github.com/DataCanvasIO/HyperKeras): An AutoDL tool for Neural Architecture Search and Hyperparameter Optimization on Tensorflow and Keras.
* [HyperBoard](https://github.com/DataCanvasIO/HyperBoard): A visualization tool for Hypernets.
* [Cooka](https://github.com/DataCanvasIO/Cooka): Lightweight interactive AutoML system.![DataCanvas AutoML Toolkit](https://raw.githubusercontent.com/DataCanvasIO/HyperTS/main/docs/static/images/DAT_latest.png)
## Citation
If you use HyperTS in your research, please cite us as follows:
Xiaojing Zhangļ¼Haifeng Wuļ¼Jian Yang.
**HyperTS: A Full-Pipeline Automated Time Series Analysis Toolkit.** https://github.com/DataCanvasIO/HyperTS. 2022. Version 0.2.x.BibTex:
```
@misc{hyperts,
author={Xiaojing Zhangļ¼Haifeng Wuļ¼Jian Yang.},
title={{HyperTS}: { A Full-Pipeline Automated Time Series Analysis Toolkit}},
howpublished={https://github.com/DataCanvasIO/HyperTS},
note={Version 0.2.x},
year={2022}
}
```## DataCanvas
![datacanvas](https://raw.githubusercontent.com/DataCanvasIO/HyperTS/main/docs/static/images/dc_logo_1.png)
HyperTS is an open source project created by [DataCanvas](https://www.datacanvas.com/).