Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
604 commits
Select commit Hold shift + click to select a range
07022b0
Update Docs-Installation-Note.
zhangxjohn Apr 25, 2022
990a3b1
Added report_best_trial_params.
zhangxjohn Apr 29, 2022
9c08d49
SARIMAX replaces ARIMA.
zhangxjohn Apr 29, 2022
85bc3c2
Fixed the pt of LSTNet.
zhangxjohn Apr 29, 2022
e8eacff
Refactor the macro search space to simplify customization.
zhangxjohn May 6, 2022
822820b
Init.
zhangxjohn May 13, 2022
2e49ca2
Added OutliersTransformer.
zhangxjohn May 13, 2022
f76418f
Clipping outliers from static preprocess to dynamic search.
zhangxjohn May 13, 2022
59fbc49
Refactor dl, data processing and experiment.
zhangxjohn May 13, 2022
ce8b6ba
[zh_CN] Update Chinese examples.
zhangxjohn May 17, 2022
f8c1ce1
[en_US] Update examples.
zhangxjohn May 17, 2022
1257d3d
Loose the learning rate of final training.
zhangxjohn May 18, 2022
2de4ab0
Refactor dl search space.
zhangxjohn May 20, 2022
fbf430a
Fix freq infer.
zhangxjohn May 23, 2022
1def4bd
Init meta feature extractors of time series.
zhangxjohn May 23, 2022
94f8768
Init meta feature extractors of time series.
zhangxjohn May 23, 2022
fc29e05
Refactor.
zhangxjohn May 25, 2022
5a1c53a
Add feature scale&normalization and statistical metafeatures.
zhangxjohn May 25, 2022
4b2ac8e
Init.
zhangxjohn May 27, 2022
40b39fb
Fixed meta features.
zhangxjohn May 27, 2022
02dc0aa
Refactor fit function.
zhangxjohn May 31, 2022
6de21b6
Adapt to meta learning.
zhangxjohn May 31, 2022
ece0f50
Upgrade to 0.1.2.2
zhangxjohn May 31, 2022
3e037af
Refactor fit function.
zhangxjohn May 31, 2022
18e18b1
Upgrade 0.1.2.2
zhangxjohn May 31, 2022
d14fd95
Upgrade to 0.1.2.2
zhangxjohn May 31, 2022
e641609
Fix python-pytest.yml.
zhangxjohn May 31, 2022
84ebfc3
Refactor configurations.
zhangxjohn Jun 1, 2022
8ff2c00
Fixed smooth_missed_ts_rows.
zhangxjohn Jun 1, 2022
a4792a6
Add get function.
zhangxjohn Jun 1, 2022
350fb3a
Init warm start.
zhangxjohn Jun 2, 2022
b2560da
Migrated from __init__ to helper_fn.
zhangxjohn Jun 7, 2022
27b6deb
Add LayerNorm for continuous inputs.
zhangxjohn Jun 21, 2022
e724797
Initial commit N-Beats model.
zhangxjohn Jun 21, 2022
81927c7
Add Time2Vec&RevIN layers.
zhangxjohn Jun 21, 2022
2bff075
Update README.
zhangxjohn Jun 22, 2022
2900ca8
Update README.
zhangxjohn Jun 23, 2022
6c929d5
Add dl.layers unit test.
zhangxjohn Jun 24, 2022
5feb344
Initial commit.
zhangxjohn Jun 24, 2022
9a6ee70
Add extract time series meta features function.
zhangxjohn Jun 24, 2022
d24f6ea
Fixed some issues.
zhangxjohn Jun 24, 2022
ec2cda0
(#41) Support dynamic down sampling (in search space).
zhangxjohn Jun 24, 2022
f6b202c
(#40) Update N-Beats model.
zhangxjohn Jun 24, 2022
0afb57e
(#40) Update N-Beats model.
zhangxjohn Jun 24, 2022
b4ea750
Fix pos_label inference func.
zhangxjohn Jun 27, 2022
89d60ae
Update README.
zhangxjohn Jun 27, 2022
26a43ee
Fix pos label inference func.
zhangxjohn Jun 27, 2022
5dbd435
Update README.
zhangxjohn Jun 30, 2022
bfac64d
Fix python-pytest.yml.
zhangxjohn Jun 30, 2022
f662100
Update python-pytest.yml
oaksharks Jun 30, 2022
7b1b886
Fix python-pytest.yml.
zhangxjohn Jul 1, 2022
dc7af00
Fix python-pytest.yml.
zhangxjohn Jul 1, 2022
d1f3f20
Fix python-pytest.yml.
zhangxjohn Jul 1, 2022
38ea9d3
Fix python-pytest.yml.
zhangxjohn Jul 1, 2022
88cf97c
Fix python-pytest.yml.
zhangxjohn Jul 1, 2022
4565720
Fix python-pytest.yml.
zhangxjohn Jul 1, 2022
8569129
Fix the number of max_trials.
zhangxjohn Jul 1, 2022
b29cebf
(#42) Update InceptionTime model for classification task.
zhangxjohn Jul 1, 2022
bbbfc48
Update README.
zhangxjohn Jul 8, 2022
1246f2f
Update README.
zhangxjohn Jul 8, 2022
c606c9a
Update README.
zhangxjohn Jul 8, 2022
6cc4ae1
Update README.
zhangxjohn Jul 12, 2022
05bca1c
Add FactorizedReduce layer.
zhangxjohn Jul 15, 2022
d973f28
Init commit.
zhangxjohn Jul 15, 2022
1c02ae8
Test experiment when mode is 'nas'.
zhangxjohn Jul 15, 2022
8d57eec
Test tsnas search space.
zhangxjohn Jul 15, 2022
8a051be
Init nas wrappers.
zhangxjohn Jul 15, 2022
4190f83
Merge neural architecture search.
zhangxjohn Jul 15, 2022
5fe7422
Upgrade to 0.1.3.
zhangxjohn Jul 18, 2022
dd1699e
[en_US] Update examples.
zhangxjohn Jul 19, 2022
13c8229
Update README.
zhangxjohn Jul 19, 2022
784a6fb
Update Docs.
zhangxjohn Jul 19, 2022
cf97881
Update README.
zhangxjohn Jul 20, 2022
7c25ac5
Update README.
zhangxjohn Jul 20, 2022
2d6eafc
Update unit test cases.
zhangxjohn Jul 20, 2022
07e0d51
Update unit test cases.
zhangxjohn Jul 20, 2022
6298ae6
Update unit test cases.
zhangxjohn Jul 20, 2022
b1861c6
Add no tf or prophet tests job
oaksharks Jul 20, 2022
0408a49
Add no tf or prophet tests job
oaksharks Jul 20, 2022
c402fd8
Update unit test cases.
zhangxjohn Jul 20, 2022
9471bd2
Fix search space.
zhangxjohn Jul 20, 2022
424efc0
Remove no prophet tests job
oaksharks Jul 20, 2022
b8f86b5
Update unit test cases.
zhangxjohn Jul 20, 2022
9675c3a
Upgrade to 0.1.4.
zhangxjohn Jul 21, 2022
5325f5d
Fix TASK_LIST_FORECAST.
zhangxjohn Jul 21, 2022
66b7a85
Fix issues.
zhangxjohn Jul 28, 2022
a4de5bc
(#46) Update Docs to add API.
zhangxjohn Jul 28, 2022
0f2d7f5
(#46) Update Docs to add API.
zhangxjohn Jul 28, 2022
1e47f8b
(#46) Update Docs to add API.
zhangxjohn Jul 28, 2022
c05adc1
Update Docs.
zhangxjohn Jul 28, 2022
10de28d
Update Docs.
zhangxjohn Jul 28, 2022
920e159
[zh_CN] Update Chinese examples.
zhangxjohn Jul 28, 2022
92205fb
[en_US] Update examples.
zhangxjohn Jul 28, 2022
43fb4ec
Fixed some issues.
zhangxjohn Jul 29, 2022
1a8aca0
(#48) Support for saving and loading models(TSPipeline).
zhangxjohn Aug 4, 2022
778d50a
[en_US] Update examples.
zhangxjohn Aug 4, 2022
364cb0e
[en_US] Update examples #48.
zhangxjohn Aug 4, 2022
11bc936
[en_US] Update examples #48.
zhangxjohn Aug 4, 2022
7900264
Fix typo.
zhangxjohn Aug 15, 2022
47585fa
(#53) Fixed missing value processing in predict.
zhangxjohn Aug 18, 2022
5d57539
Calibrate the step of forecast.
zhangxjohn Aug 30, 2022
6b42ee6
Fixed DLClassRegressSearchSpace.
zhangxjohn Sep 1, 2022
649e9ad
Refactor for regression task.
zhangxjohn Sep 1, 2022
0b334ca
Update README.md
microprediction Sep 7, 2022
d8208ca
Update README.md
microprediction Sep 7, 2022
1dbe575
Merge pull request #54 from microprediction/main
zhangxjohn Sep 7, 2022
d17dad0
Fixed some issues.
zhangxjohn Sep 9, 2022
36852c9
Merge remote-tracking branch 'origin/main'
zhangxjohn Sep 9, 2022
61a01a2
Extend InceptionTime to Regression task.
zhangxjohn Sep 9, 2022
ed24e86
Fixed some functions.
zhangxjohn Sep 23, 2022
0e6b95c
Fixed some functions.
zhangxjohn Sep 23, 2022
db7a2ec
Initial anomaly detection model base.
zhangxjohn Sep 30, 2022
1342288
Initial TSOneClassSVM detector.
zhangxjohn Oct 10, 2022
d151b79
Adaptation anomaly detection task.
zhangxjohn Oct 10, 2022
538187a
Add some constants.
zhangxjohn Oct 10, 2022
ebc24b5
Add anomaly detection dataset: realKnownCause.
zhangxjohn Oct 10, 2022
9ec3890
Update unit test cases.
zhangxjohn Oct 10, 2022
0684dc6
Update iforest.
zhangxjohn Oct 10, 2022
1f0799b
Add StatsDetectionSearchSpace.
zhangxjohn Oct 10, 2022
b3f882a
Refactor for anomaly detection.
zhangxjohn Oct 10, 2022
2016b4c
[en_US] Update examples.
zhangxjohn Oct 11, 2022
67b0e3e
Add OneClassSVM for anomaly detection.
zhangxjohn Oct 11, 2022
a0d90a6
Refactor for anomaly detection.
zhangxjohn Oct 11, 2022
8252d0a
Update README.md.
zhangxjohn Oct 18, 2022
ac0edcd
Update README.md.
zhangxjohn Oct 18, 2022
de225ab
Init.
zhangxjohn Oct 24, 2022
da8c102
Add Sampling layers for VAE.
zhangxjohn Oct 24, 2022
2099e0f
Fix name 'simple_rnn' to 'basic'.
zhangxjohn Oct 24, 2022
be8a22e
Fix iforest and ocsvm wrapper.
zhangxjohn Oct 24, 2022
bc56746
Init ConvVAE.
zhangxjohn Oct 24, 2022
5d2ea1e
Add Base Deep Detection Mixin.
zhangxjohn Oct 24, 2022
cca6619
Fix typo.
zhangxjohn Oct 24, 2022
fa9887d
Add anomaly detection dl mode.
zhangxjohn Oct 24, 2022
f1a59ad
Add anomaly detection dl search space.
zhangxjohn Oct 24, 2022
dbdc2f7
Add anomaly detection dl search space.
zhangxjohn Oct 24, 2022
0292dc5
Add anomaly detection 'dl' mode.
zhangxjohn Oct 24, 2022
ebeb8b8
[en_US] Update examples.
zhangxjohn Oct 26, 2022
c216d4b
Update README.md.
zhangxjohn Oct 26, 2022
389b6ba
Update Docs.
zhangxjohn Oct 26, 2022
16381c3
Update Docs.
zhangxjohn Oct 27, 2022
4b75049
[zh_CN] Update Chinese examples.
zhangxjohn Oct 27, 2022
95373a9
[en_US] Update examples.
zhangxjohn Oct 27, 2022
697b982
Fix Observed End Date of plot_mpl.
zhangxjohn Oct 28, 2022
2e00b1b
Add TSToolBox class.
zhangxjohn Oct 28, 2022
0fe580e
Fix generate_ts_covariables to generate_time_covariates.
zhangxjohn Oct 28, 2022
4b9f164
Update dl&stats some function.
zhangxjohn Oct 28, 2022
3175b2f
Update detection search space.
zhangxjohn Oct 28, 2022
29eb854
(#65) Update ``data_cleaner_args`` to CovariateTransformer.
zhangxjohn Oct 28, 2022
c52c0ec
(#65) Update ``data_cleaner_args`` to CovariateTransformer.
zhangxjohn Oct 28, 2022
281294c
[zh_CN] Update Chinese examples.
zhangxjohn Nov 7, 2022
11059a2
Fixed the conditions of 1D array-reshape.
zhangxjohn Nov 11, 2022
4f30a4c
[en_US] Update examples.
zhangxjohn Nov 23, 2022
a3cc46a
Update Docs.
zhangxjohn Nov 23, 2022
40f4bf0
Update requirements.txt
zhangxjohn Nov 23, 2022
4215126
Update README.md.
zhangxjohn Nov 23, 2022
fbbe88f
Fixed default initial kwargs of ARIMA and KNN.
zhangxjohn Nov 23, 2022
2c9b475
Upgrade to 0.2.0.
zhangxjohn Nov 23, 2022
7c65470
[zh_CN] Update Chinese examples.
zhangxjohn Nov 23, 2022
1e90e58
[en_US] Update examples.
zhangxjohn Nov 23, 2022
631ed50
Compatible with ``tensorflow==2.11.0``.
zhangxjohn Nov 23, 2022
029777c
add tf test job
oaksharks Nov 23, 2022
d1619c4
Merge remote-tracking branch 'origin/main' into main
oaksharks Nov 23, 2022
b0f1290
(#71) Compatible with ``tensorflow==2.11.0``.
zhangxjohn Nov 23, 2022
472c779
include tf disabled jobs
oaksharks Nov 23, 2022
121236a
include tf disabled jobs
oaksharks Nov 23, 2022
a9097bd
update random state.
zhangxjohn Nov 29, 2022
8ab61fd
Fix issues.
zhangxjohn Dec 27, 2022
b8e090f
Fix issues.
zhangxjohn Dec 27, 2022
81f26e7
Update overview.
zhangxjohn Dec 28, 2022
d50f1f2
show images in home page @pypi.org
oaksharks Jan 4, 2023
cea8bb3
(#78) Fix ```cmdstanpy``` output INFO - Logging error.
zhangxjohn Jan 31, 2023
7e53d2b
update ci
oaksharks Jan 31, 2023
bc55a34
update ci
oaksharks Jan 31, 2023
cf960bc
update ci
oaksharks Jan 31, 2023
f1fe40a
update ci
oaksharks Jan 31, 2023
1d43d41
update ci
oaksharks Jan 31, 2023
952cec1
update ci
oaksharks Jan 31, 2023
84ccb1d
update ci
oaksharks Jan 31, 2023
24e4ab6
update ci
oaksharks Jan 31, 2023
fe9ebfc
update ci
oaksharks Jan 31, 2023
107e99f
```reset_index``` for arrow_head.
zhangxjohn Feb 1, 2023
0a8a30a
fixed data index.
zhangxjohn Feb 1, 2023
aa274e0
fixed typo.
zhangxjohn Feb 1, 2023
f929dbd
update ci
oaksharks Feb 2, 2023
61cbe4e
Refactor the function of column type recognition for classification.
zhangxjohn Feb 17, 2023
9f14189
Refactor the function of column type recognition for classification.
zhangxjohn Feb 17, 2023
81ec960
mark "model" as transient
oaksharks Mar 3, 2023
aa49b45
add citation
LIUZhaohan0 Mar 21, 2023
d18c503
Add optimizer ```Lion```.
zhangxjohn Mar 24, 2023
413b3ac
Merge remote-tracking branch 'origin/main'
zhangxjohn Mar 24, 2023
921376d
Add optimizer ```Lion```.
zhangxjohn Mar 24, 2023
d7dee1e
(#86) Fix typo.
zhangxjohn Mar 28, 2023
464acb5
Improved some issues.
zhangxjohn May 5, 2023
595d2fa
adapt to hypernets
oaksharks May 6, 2023
aab18c7
speed up test case
oaksharks May 6, 2023
97a20a1
update ci
oaksharks May 8, 2023
abd4750
Fix VAR the choice of ```trend``` parameter.
zhangxjohn May 9, 2023
cf8a14a
#96 update setup.py
oaksharks May 16, 2023
3b5bae3
Fixed split eval horizon for forecast.
zhangxjohn May 17, 2023
2a0f8a6
Fixed split eval horizon for forecast.
zhangxjohn May 17, 2023
ff5e11f
Fixed split eval horizon for forecast.
zhangxjohn May 17, 2023
777e6c1
Add ```seasonality``` analysis.
zhangxjohn Jun 2, 2023
f05c84d
Refactor the datetime format and fix the clip function of preds.
zhangxjohn Jun 6, 2023
81c804a
[fix] seems like a typo
NatLee Jun 17, 2023
cf3b46f
Merge pull request #101 from NatLee/patch-1
zhangxjohn Jun 19, 2023
546610f
add scheduler trigger
oaksharks Jul 10, 2023
ce3490e
add scheduler trigger
oaksharks Jul 10, 2023
8266f2e
update image
LIUZhaohan0 Jul 13, 2023
f5fd92b
update image
LIUZhaohan0 Jul 13, 2023
db62c5e
update image
LIUZhaohan0 Jul 14, 2023
4345682
update image
LIUZhaohan0 Jul 14, 2023
62ada4a
update image
LIUZhaohan0 Jul 14, 2023
d49d5d7
schedule ci at 6:00 am gmt+8
oaksharks Jul 17, 2023
719d890
update hypernets version
oaksharks Jul 18, 2023
461a722
adapt to hypernets.
zhangxjohn Sep 12, 2023
8dd03e8
open 0.2.1.beta.
zhangxjohn Sep 12, 2023
8d0ca05
Delete /images/logo.png
LIUZhaohan0 Nov 21, 2023
4b2a3c5
updatelogo
LIUZhaohan0 Nov 21, 2023
f9ac957
updatelogo
LIUZhaohan0 Nov 22, 2023
f81b888
update logo name and numpy version.
zhangxjohn Nov 22, 2023
f3dbd24
update `AdamW` optimizer.
zhangxjohn Dec 11, 2023
b4f69b1
fixed.
zhangxjohn Dec 12, 2023
323df6f
update version.
zhangxjohn Dec 12, 2023
2cf3a77
fixed.
zhangxjohn Dec 12, 2023
73a5caa
adjust legend.
zhangxjohn Dec 12, 2023
07c8bc6
Update Release Note(0.2.1).
zhangxjohn Dec 18, 2023
65f77ab
Update Release Note(0.2.1).
zhangxjohn Dec 18, 2023
d72fa26
Update Release Note(0.2.1).
zhangxjohn Dec 18, 2023
a9d1b15
update python version
oaksharks Dec 19, 2023
2e282b1
update tf version
oaksharks Dec 19, 2023
1189855
update numpy version to support latest tf
oaksharks Dec 19, 2023
ca47592
update tf version
oaksharks Dec 19, 2023
7eea3a1
update tf version
oaksharks Dec 19, 2023
eddb5bb
update tf version
oaksharks Dec 19, 2023
490c599
update tf version
oaksharks Dec 19, 2023
db59270
update python version
oaksharks Dec 19, 2023
fee10dc
update sktime version
oaksharks Dec 19, 2023
4dcc307
update sktime version
oaksharks Dec 19, 2023
be5fb58
Refactor Classification and remove the dependency on ```sktime```.
zhangxjohn Dec 21, 2023
9e245ff
Add ```numba```.
zhangxjohn Dec 21, 2023
eb23c5e
fix base_estimator to estimator.
zhangxjohn Dec 21, 2023
15600f2
remove ```sktime```.
zhangxjohn Dec 21, 2023
85fd2cc
A note about ```sktime```.
zhangxjohn Dec 21, 2023
61019f9
fix pandas version.
zhangxjohn Dec 21, 2023
6e4c2ff
Modified version conflict.
zhangxjohn Dec 21, 2023
f095f19
Modified version conflict about `scikit-learn`.
zhangxjohn Feb 23, 2024
ce65fe4
Update README and requirements.
zhangxjohn Mar 29, 2024
ba91638
Update README.
zhangxjohn Jun 24, 2024
1e1dc36
fix conflict.
zhangxjohn Jul 1, 2024
ede91b5
remove python3.7
zhangxjohn Apr 17, 2025
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
40 changes: 28 additions & 12 deletions .github/workflows/python-pytest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ on:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
# since * is a special character in YAML you have to quote this string
- cron: '0 22 1/7 * *'

jobs:
build:
Expand All @@ -17,28 +20,41 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
python-version: [3.7, 3.8, 3.6]
exclude:
- os: windows-latest
python-version: 3.6
python-version: ["3.8", "3.9", "3.10"] # feature-tools only update to 0.23.3 on python3.6 and the latest is 1.2.0(2021/11)
tf-version: ["\">=2.0.0,<=2.10\"", "disable"] # empty string indicates the latest version

# exclude:
# - os: windows-latest
# python-version: "==2.10"
# - os: windows-latest
# tf-version: ""

steps:
- uses: conda-incubator/setup-miniconda@v2
- name: Set up Python ${{ matrix.python-version }}
- uses: actions/checkout@v2

- name: Set up Python
uses: actions/setup-python@v2
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
- name: Conda list
shell: bash -l {0}
run: conda list

# pip install "sktime<=0.17.2"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install git+https://github.com/DataCanvasIO/Hypernets
conda install -y -c conda-forge prophet==1.0.1
pip install -r requirements.txt
pip install pytest-cov==2.4.0 python-coveralls codacy-coverage
pip install pytest-cov python-coveralls codacy-coverage

- name: Install tensorflow dependencies
if: ${{ matrix.tf-version != 'disable' }}
run: |
pip install tensorflow${{ matrix.tf-version }}

- name: pip list
run: |
pip list
pip check

- name: Test with pytest
run: |
pytest --cov=hyperts --durations=30
34 changes: 34 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Contributing Guidelines
HyperTS has been developed and used by many active community members. Everyone is more than welcomed to make the project better and more accessible to more users. Whether it's a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community.

We are proud of this project and have been working to make it great since day one. We believe you will love it and we need your help and everything about HyperTS you have in your mind pushes this project forward.

Join Us!

## Bug Reports and Feature Requests
The single most important contribution that you can make is to report bugs and make feature requests. The development work on HyperTS is largely driven by these, so please make your voice heard!

Here are some issue templates we recommend while you report bugs or suggest features.
- Bug Issue
- Feature Request
- Other Issues

Ideally, you can attach some code in your issue to reproduce the bug.


## Contributing via Pull Requests
Code contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:

1. You are working against the latest source on the master branch.
2. You check existing open, and recently merged, pull requests to make
sure someone else hasn't addressed the problem already.
3. You open an issue to discuss any significant work - we would hate for
your time to be wasted.

To send us a pull request, please:

1. Fork the repository.
2. Modify the source
3. Ensure local tests pass.
4. Commit to your fork using clear commit messages.
5. Send us a pull request.
247 changes: 245 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,245 @@
# HyperTS
A AutoML&AutoDL Toolkit about Time Series.
<h1 align="center">
<img src="https://raw.githubusercontent.com/DataCanvasIO/HyperTS/main/docs/static/images/logo.png" width="400" align=center/>
</h1><br>

<h4 align="center">Statistics | Deep Learning | Neural Architecture Search</h4>

<div align="center">

[简体中文](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)
</div>

: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 yangjian@zetyun.com. (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 git@github.com: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_traffic

from 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)

<details>
<summary>Time Series Classification (click to expand)</summary>

```python
from hyperts import make_experiment
from hyperts.datasets import load_basic_motions

from sklearn.metrics import f1_score
from sklearn.model_selection import train_test_split

data = 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)
```
</details>

<details>
<summary>Time Series Anomaly Detection (click to expand)</summary>

```python
from hyperts import make_experiment
from hyperts.datasets import load_real_known_cause_dataset

from 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)
```
</details>

<details>
<summary>Time Series MetaFeatures Extract (click to expand)</summary>

```python
from hyperts.toolbox import metafeatures_from_timeseries
from hyperts.datasets import load_random_univariate_forecast_dataset

data = load_random_univariate_forecast_dataset()

metafeatures = metafeatures_from_timeseries(x=data, timestamp='ds', scale_ts=True)
```
</details>

**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/).
Loading