Package: hyperts
Statistics | Deep Learning | Neural Architecture Search简体中文•Installation•Documentation•Examples: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 toyangjian@zetyun.com. (Application deadline: TBD.)OverviewHyperTS 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.InstallationNote:Prophet is required by HyperTS, install it fromcondabefore installing HyperTS usingpip.Tensorflow is an optional dependency for HyperTS, install it if using DL and NAS mode.HyperTS is available on Pypi and can be installed withpip:pipinstallhypertsYou can also install HyperTS fromcondavia theconda-forgechannel:condainstall-cconda-forgehypertsIf you would like the most up-to-date version, you can instead install direclty fromgithub:gitclonegit@github.com:DataCanvasIO/HyperTS.gitcdHyperTS
pipinstall-e.pipinstalltensorflow#optionalFor more installation tips, seeinstallation.TutorialEnglish Docs/Chinese DocsDiscriptionExpected Data FormatWhat data formats do HyperTS expect?Quick StartHow to get started quickly with HyperTS?Advanced LadderHow to realize the potential of HyperTS?Custom FunctionsHow to customize the functions of HyperTS?ExamplesTime Series ForecastingUsers can quickly create andrun()an experiment withmake_experiment(), wheretrain_data, andtaskare required input parameters. In the following forecast example, we define the experiment as a multivariate-forecasttask, and use the statistical model (statmode) . Besides, the mandatory argumentstimestampandcovariates(if have) should also be defined in the experiment.fromhypertsimportmake_experimentfromhyperts.datasetsimportload_network_trafficfromsklearn.model_selectionimporttrain_test_splitdata=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)Time Series Classification (click to expand)fromhypertsimportmake_experimentfromhyperts.datasetsimportload_basic_motionsfromsklearn.metricsimportf1_scorefromsklearn.model_selectionimporttrain_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)fromhypertsimportmake_experimentfromhyperts.datasetsimportload_real_known_cause_datasetfromsklearn.model_selectionimporttrain_test_splitdata=load_real_known_cause_dataset()ground_truth=data.pop('anomaly')detection_length=15000train_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)fromhyperts.toolboximportmetafeatures_from_timeseriesfromhyperts.datasetsimportload_random_univariate_forecast_datasetdata=load_random_univariate_forecast_dataset()metafeatures=metafeatures_from_timeseries(x=data,timestamp='ds',scale_ts=True)More detailed guides:EXAMPLES.Key FeaturesHyperTS 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.CommunicationIf you wish to contribute to this project, please refer toCONTRIBUTING.If you have any question or idea, you can alse participate with ourDiscussions Community.HyperTS Related ProjectsHypernets: A general automated machine learning (AutoML) framework.HyperGBM: A full pipeline AutoML tool integrated various GBM models.HyperDT/DeepTables: An AutoDL tool for tabular data.HyperKeras: An AutoDL tool for Neural Architecture Search and Hyperparameter Optimization on Tensorflow and Keras.HyperBoard: A visualization tool for Hypernets.Cooka: Lightweight interactive AutoML system.CitationIf 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}
}DataCanvasHyperTS is an open source project created byDataCanvas.