{"id":13526515,"url":"https://github.com/DataCanvasIO/HyperTS","last_synced_at":"2025-04-01T07:32:53.325Z","repository":{"id":37288986,"uuid":"428104932","full_name":"DataCanvasIO/HyperTS","owner":"DataCanvasIO","description":"A Full-Pipeline Automated Time Series (AutoTS) Analysis Toolkit.","archived":false,"fork":false,"pushed_at":"2024-07-01T02:02:35.000Z","size":7989,"stargazers_count":273,"open_issues_count":20,"forks_count":30,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-25T11:09:44.072Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"https://hyperts.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataCanvasIO.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-15T03:02:13.000Z","updated_at":"2025-03-23T05:53:20.000Z","dependencies_parsed_at":"2024-01-12T17:34:45.439Z","dependency_job_id":"d1cf6209-cba0-431f-aa00-81d28ff2d167","html_url":"https://github.com/DataCanvasIO/HyperTS","commit_stats":{"total_commits":551,"total_committers":8,"mean_commits":68.875,"dds":"0.20145190562613435","last_synced_commit":"d7dee1e956bf932738b63291bc5497699565e9d5"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataCanvasIO%2FHyperTS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataCanvasIO%2FHyperTS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataCanvasIO%2FHyperTS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataCanvasIO%2FHyperTS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataCanvasIO","download_url":"https://codeload.github.com/DataCanvasIO/HyperTS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246569000,"owners_count":20798341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-08-01T06:01:30.855Z","updated_at":"2025-04-01T07:32:48.300Z","avatar_url":"https://github.com/DataCanvasIO.png","language":"Python","funding_links":[],"categories":["Code-Resource","📦 Packages"],"sub_categories":["2020","Python"],"readme":"\u003ch1 align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/DataCanvasIO/HyperTS/main/docs/static/images/logo.png\" width=\"400\" align=center/\u003e\n\u003c/h1\u003e\u003cbr\u003e\n\n\u003ch4 align=\"center\"\u003eStatistics | Deep Learning | Neural Architecture Search\u003c/h4\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[简体中文](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) \n\n[![Python Versions](https://img.shields.io/pypi/pyversions/hyperts.svg)](https://pypi.org/project/hyperts)\n[![pypi](https://img.shields.io/pypi/v/hyperts.svg)](https://pypi.python.org/pypi/hyperts)\n[![conda](https://img.shields.io/conda/vn/conda-forge/HyperTS.svg)](https://anaconda.org/conda-forge/HyperTS)\n[![TensorFlow Versions](https://img.shields.io/badge/TensorFlow-2.0+-blue.svg)](https://pypi.org/project/hyperts)\n[![License](https://img.shields.io/github/license/DataCanvasIO/hyperts.svg)](https://github.com/DataCanvasIO/hyperts/blob/master/LICENSE)\n\u003c/div\u003e\n\n:dizzy: Easy-to-use, powerful, and unified full pipeline automated time series toolkit. Supports forecasting, classification, regression, and anomaly detection.\n\n\n## We Are Hiring！\nDear 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.) \n\n\n## Overview\nHyperTS 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.\n\nMulti-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.\n\nAs 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.\n\n## Installation\n\nNote:\n\n- Prophet is required by HyperTS, install it from ``conda`` before installing HyperTS using ``pip``.\n- Tensorflow is an optional dependency for HyperTS, install it if using DL and NAS mode.\n\nHyperTS is available on Pypi and can be installed with ``pip``:\n\n```bash\npip install hyperts\n```\n\nYou can also install HyperTS from ``conda`` via the ``conda-forge`` channel:\n\n```bash\nconda install -c conda-forge hyperts\n```\n\nIf you would like the most up-to-date version, you can instead install direclty from ``github``:\n\n```bash\ngit clone git@github.com:DataCanvasIO/HyperTS.git\ncd HyperTS\npip install -e . \npip install tensorflow #optional, recommended version: \u003e=2.0.0,\u003c=2.10.0\n````\n\nFor more installation tips, see [installation](https://hyperts.readthedocs.io/en/latest/contents/0200_installation.html).\n\n## Tutorial\n\n|[English Docs](https://hyperts.readthedocs.io/en/latest/) / [Chinese Docs](https://hyperts.readthedocs.io/zh_CN/latest)| Discription |\n| --------------------------------- | --------------------------------- |\n[Expected Data Format](https://hyperts.readthedocs.io/en/latest/contents/0300_dataformat.html)|What data formats do HyperTS expect?|\n|[Quick Start](https://hyperts.readthedocs.io/en/latest/contents/0400_quick_start.html)| How to get started quickly with HyperTS?|\n|[Advanced Ladder](https://hyperts.readthedocs.io/en/latest/contents/0500_advanced_config.html)|How to realize the potential of HyperTS?|\n|[Custom Functions](https://hyperts.readthedocs.io/en/latest/contents/0600_custom_functions.html)|How to customize the functions of HyperTS?|\n\n## Examples\n\nTime Series Forecasting\n\nUsers 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.\n\n```python\nfrom hyperts import make_experiment\nfrom hyperts.datasets import load_network_traffic\n\nfrom sklearn.model_selection import train_test_split\n\ndata = load_network_traffic()\ntrain_data, test_data = train_test_split(data, test_size=0.2, shuffle=False)\n\nmodel = make_experiment(train_data.copy(),\n                        task='multivariate-forecast',\n                        mode='stats',\n                        timestamp='TimeStamp',\n                        covariates=['HourSin', 'WeekCos', 'CBWD']).run()\n\nX_test, y_test = model.split_X_y(test_data.copy())\n\ny_pred = model.predict(X_test)\n\nscores = model.evaluate(y_test, y_pred)\n\nmodel.plot(forecast=y_pred, actual=test_data)\n```\n\n![Forecast_Figure](https://raw.githubusercontent.com/DataCanvasIO/HyperTS/main/docs/static/images/Actual_vs_Forecast.jpg)\n\n\u003cdetails\u003e\n  \u003csummary\u003eTime Series Classification (click to expand)\u003c/summary\u003e\n\n```python\nfrom hyperts import make_experiment\nfrom hyperts.datasets import load_basic_motions\n\nfrom sklearn.metrics import f1_score\nfrom sklearn.model_selection import train_test_split\n\ndata = load_basic_motions()\ntrain_data, test_data = train_test_split(data, test_size=0.2)\n\nmodel = make_experiment(train_data.copy(),\n                        task='classification',\n                        mode='dl',\n                        tf_gpu_usage_strategy=1,\n                        reward_metric='accuracy',\n                        max_trials=30,\n                        early_stopping_rounds=10).run()\n\nX_test, y_test = model.split_X_y(test_data.copy())\n\ny_pred = model.predict(X_test)\ny_proba = model.predict_proba(X_test)\n\nscores = model.evaluate(y_test, y_pred, y_proba=y_proba, metrics=['accuracy', 'auc', f1_score])\n\nprint(scores)\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eTime Series Anomaly Detection (click to expand)\u003c/summary\u003e\n\n```python\nfrom hyperts import make_experiment\nfrom hyperts.datasets import load_real_known_cause_dataset\n\nfrom sklearn.model_selection import train_test_split\n\ndata = load_real_known_cause_dataset()\nground_truth = data.pop('anomaly')\n\ndetection_length = 15000\ntrain_data, test_data = train_test_split(data, test_size=detection_length, shuffle=False)\n\nmodel = make_experiment(train_data.copy(),\n                        task='detection',\n                        mode='stats',\n                        reward_metric='f1',\n                        max_trials=30,\n                        early_stopping_rounds=10).run()\n\nX_test, _ = model.split_X_y(test_data.copy())\ny_test = ground_truth.iloc[-detection_length:]\n\ny_pred = model.predict(X_test)\ny_proba = model.predict_proba(X_test)\n\nscores = model.evaluate(y_test, y_pred, y_proba=y_proba)\n\nmodel.plot(y_pred, actual=test_data, history=train_data, interactive=False)\n  ```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eTime Series MetaFeatures Extract (click to expand)\u003c/summary\u003e\n\n```python\nfrom hyperts.toolbox import metafeatures_from_timeseries\nfrom hyperts.datasets import load_random_univariate_forecast_dataset\n\ndata = load_random_univariate_forecast_dataset()\n\nmetafeatures = metafeatures_from_timeseries(x=data, timestamp='ds', scale_ts=True)\n```\n\u003c/details\u003e\n\n**More detailed guides:** [EXAMPLES.](https://github.com/DataCanvasIO/HyperTS/tree/main/examples)\n\n## Key Features\n\nHyperTS supports the following features:\n\n**Multi-task Support:** Time series forecasting, classification, regression, and anomaly detection.\n\n**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.\n\n**Multi-variate Support:** From univariate to multivariate time series.\n\n**Covariates Support:** Deep learning models support covariates as input featues for time series forecasting. \n\n**Probabilistic Intervals Support:** Time series forecasting visualization can show confidence intervals.\n\n**Diversified Preprocessing:** Outlier clipping, missing value imputing, sequence smoothing, normalization, etc. \n\n**Abundant Metrics:** A variety of performance metrics to evaluate results and guide models optimization, including MSE, SMAPE, Accuracy, F1-Score,etc. \n\n**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.\n\n**Ensemble:** Refinement greedy emsemble glues the most powerful models.\n\n**Cross Validation:** Multiple time series cross-validation strategies ensure generalization ability.\n\n## Communication\n- If you wish to contribute to this project, please refer to [CONTRIBUTING](CONTRIBUTING.md).\n- If you have any question or idea, you can alse participate with our [Discussions Community](https://github.com/DataCanvasIO/HyperTS/discussions).\n\n## HyperTS Related Projects\n* [Hypernets](https://github.com/DataCanvasIO/Hypernets): A general automated machine learning (AutoML) framework.\n* [HyperGBM](https://github.com/DataCanvasIO/HyperGBM): A full pipeline AutoML tool integrated various GBM models.\n* [HyperDT/DeepTables](https://github.com/DataCanvasIO/DeepTables): An AutoDL tool for tabular data.\n* [HyperKeras](https://github.com/DataCanvasIO/HyperKeras): An AutoDL tool for Neural Architecture Search and Hyperparameter Optimization on Tensorflow and Keras.\n* [HyperBoard](https://github.com/DataCanvasIO/HyperBoard): A visualization tool for Hypernets.\n* [Cooka](https://github.com/DataCanvasIO/Cooka): Lightweight interactive AutoML system.\n\n![DataCanvas AutoML Toolkit](https://raw.githubusercontent.com/DataCanvasIO/HyperTS/main/docs/static/images/DAT_latest.png)\n\n## Citation\n\nIf you use HyperTS in your research, please cite us as follows:\n\n   Xiaojing Zhang，Haifeng Wu，Jian Yang. \n   **HyperTS: A Full-Pipeline Automated Time Series Analysis Toolkit.** https://github.com/DataCanvasIO/HyperTS. 2022. Version 0.2.x.\n\nBibTex:\n\n```\n@misc{hyperts,\n  author={Xiaojing Zhang，Haifeng Wu，Jian Yang.},\n  title={{HyperTS}: { A Full-Pipeline Automated Time Series Analysis Toolkit}},\n  howpublished={https://github.com/DataCanvasIO/HyperTS},\n  note={Version 0.2.x},\n  year={2022}\n}\n```\n\n## DataCanvas\n\n![datacanvas](https://raw.githubusercontent.com/DataCanvasIO/HyperTS/main/docs/static/images/dc_logo_1.png)\n\nHyperTS is an open source project created by [DataCanvas](https://www.datacanvas.com/). \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDataCanvasIO%2FHyperTS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDataCanvasIO%2FHyperTS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDataCanvasIO%2FHyperTS/lists"}