diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-05 13:38:53 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-05 13:38:53 +0000 |
commit | 123fad38a02634d971dc0210bc91efcc42335aa5 (patch) | |
tree | 93ba5e00d6973090189685bcd0f18b67b31cab44 | |
parent | 061c4a4d8256b0d98ae07b6b2c3cd1aca2868550 (diff) |
automatic import of python-u8dartsopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-u8darts.spec | 570 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 572 insertions, 0 deletions
@@ -0,0 +1 @@ +/u8darts-0.24.0.tar.gz diff --git a/python-u8darts.spec b/python-u8darts.spec new file mode 100644 index 0000000..5a8bb3f --- /dev/null +++ b/python-u8darts.spec @@ -0,0 +1,570 @@ +%global _empty_manifest_terminate_build 0 +Name: python-u8darts +Version: 0.24.0 +Release: 1 +Summary: A python library for easy manipulation and forecasting of time series. +License: Apache License 2.0 +URL: https://unit8co.github.io/darts/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c4/62/1cd35c432477d42b35129ec8e182d3930bf089ae2396f46fad702910471c/u8darts-0.24.0.tar.gz +BuildArch: noarch + +Requires: python3-catboost +Requires: python3-holidays +Requires: python3-joblib +Requires: python3-lightgbm +Requires: python3-matplotlib +Requires: python3-nfoursid +Requires: python3-numpy +Requires: python3-pandas +Requires: python3-pmdarima +Requires: python3-prophet +Requires: python3-pyod +Requires: python3-requests +Requires: python3-scikit-learn +Requires: python3-scipy +Requires: python3-shap +Requires: python3-statsforecast +Requires: python3-statsmodels +Requires: python3-tbats +Requires: python3-tqdm +Requires: python3-xarray +Requires: python3-xgboost +Requires: python3-catboost +Requires: python3-holidays +Requires: python3-joblib +Requires: python3-lightgbm +Requires: python3-matplotlib +Requires: python3-nfoursid +Requires: python3-numpy +Requires: python3-pandas +Requires: python3-pmdarima +Requires: python3-prophet +Requires: python3-pyod +Requires: python3-requests +Requires: python3-scikit-learn +Requires: python3-scipy +Requires: python3-shap +Requires: python3-statsforecast +Requires: python3-statsmodels +Requires: python3-tbats +Requires: python3-tqdm +Requires: python3-xarray +Requires: python3-xgboost +Requires: python3-pytorch-lightning +Requires: python3-tensorboardX +Requires: python3-torch +Requires: python3-pytorch-lightning +Requires: python3-tensorboardX +Requires: python3-torch + +%description +[](https://badge.fury.io/py/darts) +[](https://anaconda.org/conda-forge/u8darts-all) + + + + +[](https://pepy.tech/project/u8darts) +[](https://pepy.tech/project/darts) +[](https://codecov.io/gh/unit8co/darts) +[](https://github.com/psf/black) [](https://gitter.im/u8darts/darts?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +**Darts** is a Python library for user-friendly forecasting and anomaly detection +on time series. It contains a variety of models, from classics such as ARIMA to +deep neural networks. The forecasting models can all be used in the same way, +using `fit()` and `predict()` functions, similar to scikit-learn. +The library also makes it easy to backtest models, +combine the predictions of several models, and take external data into account. +Darts supports both univariate and multivariate time series and models. +The ML-based models can be trained on potentially large datasets containing multiple time +series, and some of the models offer a rich support for probabilistic forecasting. +Darts also offers extensive anomaly detection capabilities. +For instance, it is trivial to apply PyOD models on time series to obtain anomaly scores, +or to wrap any of Darts forecasting or filtering models to obtain fully +fledged anomaly detection models. +## Documentation +* [Quickstart](https://unit8co.github.io/darts/quickstart/00-quickstart.html) +* [User Guide](https://unit8co.github.io/darts/userguide.html) +* [API Reference](https://unit8co.github.io/darts/generated_api/darts.html) +* [Examples](https://unit8co.github.io/darts/examples.html) +##### High Level Introductions +* [Introductory Blog Post](https://medium.com/unit8-machine-learning-publication/darts-time-series-made-easy-in-python-5ac2947a8878) +* [Introduction video (25 minutes)](https://youtu.be/g6OXDnXEtFA) +##### Articles on Selected Topics +* [Training Models on Multiple Time Series](https://medium.com/unit8-machine-learning-publication/training-forecasting-models-on-multiple-time-series-with-darts-dc4be70b1844) +* [Using Past and Future Covariates](https://medium.com/unit8-machine-learning-publication/time-series-forecasting-using-past-and-future-external-data-with-darts-1f0539585993) +* [Temporal Convolutional Networks and Forecasting](https://medium.com/unit8-machine-learning-publication/temporal-convolutional-networks-and-forecasting-5ce1b6e97ce4) +* [Probabilistic Forecasting](https://medium.com/unit8-machine-learning-publication/probabilistic-forecasting-in-darts-e88fbe83344e) +* [Transfer Learning for Time Series Forecasting](https://medium.com/unit8-machine-learning-publication/transfer-learning-for-time-series-forecasting-87f39e375278) +* [Hierarchical Forecast Reconciliation](https://medium.com/unit8-machine-learning-publication/hierarchical-forecast-reconciliation-with-darts-8b4b058bb543) +## Quick Install +We recommend to first setup a clean Python environment for your project with Python 3.7+ using your favorite tool +([conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html "conda-env"), +[venv](https://docs.python.org/3/library/venv.html), [virtualenv](https://virtualenv.pypa.io/en/latest/) with +or without [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/)). +Once your environment is set up you can install darts using pip: + pip install darts +For more details you can refer to our +[installation instructions](https://github.com/unit8co/darts/blob/master/INSTALL.md). +## Example Usage +### Forecasting +Create a `TimeSeries` object from a Pandas DataFrame, and split it in train/validation series: +```python +import pandas as pd +from darts import TimeSeries +# Read a pandas DataFrame +df = pd.read_csv("AirPassengers.csv", delimiter=",") +# Create a TimeSeries, specifying the time and value columns +series = TimeSeries.from_dataframe(df, "Month", "#Passengers") +# Set aside the last 36 months as a validation series +train, val = series[:-36], series[-36:] +``` +Fit an exponential smoothing model, and make a (probabilistic) prediction over the validation series' duration: +```python +from darts.models import ExponentialSmoothing +model = ExponentialSmoothing() +model.fit(train) +prediction = model.predict(len(val), num_samples=1000) +``` +Plot the median, 5th and 95th percentiles: +```python +import matplotlib.pyplot as plt +series.plot() +prediction.plot(label="forecast", low_quantile=0.05, high_quantile=0.95) +plt.legend() +``` +<div style="text-align:center;"> +<img src="https://github.com/unit8co/darts/raw/master/static/images/example.png" alt="darts forecast example" /> +</div> +### Anomaly Detection +Load a multivariate series, trim it, keep 2 components, split train and validation sets: +```python +from darts.datasets import ETTh2Dataset +series = ETTh2Dataset().load()[:10000][["MUFL", "LULL"]] +train, val = series.split_before(0.6) +``` +Build a k-means anomaly scorer, train it on the train set +and use it on the validation set to get anomaly scores: +```python +from darts.ad import KMeansScorer +scorer = KMeansScorer(k=2, window=5) +scorer.fit(train) +anom_score = scorer.score(val) +``` +Build a binary anomaly detector and train it over train scores, +then use it over validation scores to get binary anomaly classification: +```python +from darts.ad import QuantileDetector +detector = QuantileDetector(high_quantile=0.99) +detector.fit(scorer.score(train)) +binary_anom = detector.detect(anom_score) +``` +Plot (shifting and scaling some of the series +to make everything appear on the same figure): +```python +import matplotlib.pyplot as plt +series.plot() +(anom_score / 2. - 100).plot(label="computed anomaly score", c="orangered", lw=3) +(binary_anom * 45 - 150).plot(label="detected binary anomaly", lw=4) +``` +<div style="text-align:center;"> +<img src="https://github.com/unit8co/darts/raw/master/static/images/example_ad.png" alt="darts anomaly detection example" /> +</div> +## Features +* **Forecasting Models:** A large collection of forecasting models; from statistical models (such as + ARIMA) to deep learning models (such as N-BEATS). See [table of models below](#forecasting-models). +* **Anomaly Detection** The `darts.ad` module contains a collection of anomaly scorers, + detectors and aggregators, which can all be combined to detect anomalies in time series. + It is easy to wrap any of Darts forecasting or filtering models to build + a fully fledged anomaly detection model that compares predictions with actuals. + The `PyODScorer` makes it trivial to use PyOD detectors on time series. +* **Multivariate Support:** `TimeSeries` can be multivariate - i.e., contain multiple time-varying + dimensions instead of a single scalar value. Many models can consume and produce multivariate series. +* **Multiple series training (global models):** All machine learning based models (incl. all neural networks) + support being trained on multiple (potentially multivariate) series. This can scale to large datasets too. +* **Probabilistic Support:** `TimeSeries` objects can (optionally) represent stochastic + time series; this can for instance be used to get confidence intervals, and many models support different + flavours of probabilistic forecasting (such as estimating parametric distributions or quantiles). + Some anomaly detection scorers are also able to exploit these predictive distributions. +* **Past and Future Covariates support:** Many models in Darts support past-observed and/or future-known + covariate (external data) time series as inputs for producing forecasts. +* **Static Covariates support:** In addition to time-dependent data, `TimeSeries` can also contain + static data for each dimension, which can be exploited by some models. +* **Hierarchical Reconciliation:** Darts offers transformers to perform reconciliation. + These can make the forecasts add up in a way that respects the underlying hierarchy. +* **Regression Models:** It is possible to plug-in any scikit-learn compatible model + to obtain forecasts as functions of lagged values of the target series and covariates. +* **Explainability:** Darts has the ability to *explain* some forecasting models using Shap values. +* **Data processing:** Tools to easily apply (and revert) common transformations on + time series data (scaling, filling missing values, differencing, boxcox, ...) +* **Metrics:** A variety of metrics for evaluating time series' goodness of fit; + from R2-scores to Mean Absolute Scaled Error. +* **Backtesting:** Utilities for simulating historical forecasts, using moving time windows. +* **PyTorch Lightning Support:** All deep learning models are implemented using PyTorch Lightning, + supporting among other things custom callbacks, GPUs/TPUs training and custom trainers. +* **Filtering Models:** Darts offers three filtering models: `KalmanFilter`, `GaussianProcessFilter`, + and `MovingAverageFilter`, which allow to filter time series, and in some cases obtain probabilistic + inferences of the underlying states/values. +* **Datasets** The `darts.datasets` submodule contains some popular time series datasets for rapid + and reproducible experimentation. +## Forecasting Models +Here's a breakdown of the forecasting models currently implemented in Darts. We are constantly working +on bringing more models and features. + +%package -n python3-u8darts +Summary: A python library for easy manipulation and forecasting of time series. +Provides: python-u8darts +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-u8darts +[](https://badge.fury.io/py/darts) +[](https://anaconda.org/conda-forge/u8darts-all) + + + + +[](https://pepy.tech/project/u8darts) +[](https://pepy.tech/project/darts) +[](https://codecov.io/gh/unit8co/darts) +[](https://github.com/psf/black) [](https://gitter.im/u8darts/darts?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +**Darts** is a Python library for user-friendly forecasting and anomaly detection +on time series. It contains a variety of models, from classics such as ARIMA to +deep neural networks. The forecasting models can all be used in the same way, +using `fit()` and `predict()` functions, similar to scikit-learn. +The library also makes it easy to backtest models, +combine the predictions of several models, and take external data into account. +Darts supports both univariate and multivariate time series and models. +The ML-based models can be trained on potentially large datasets containing multiple time +series, and some of the models offer a rich support for probabilistic forecasting. +Darts also offers extensive anomaly detection capabilities. +For instance, it is trivial to apply PyOD models on time series to obtain anomaly scores, +or to wrap any of Darts forecasting or filtering models to obtain fully +fledged anomaly detection models. +## Documentation +* [Quickstart](https://unit8co.github.io/darts/quickstart/00-quickstart.html) +* [User Guide](https://unit8co.github.io/darts/userguide.html) +* [API Reference](https://unit8co.github.io/darts/generated_api/darts.html) +* [Examples](https://unit8co.github.io/darts/examples.html) +##### High Level Introductions +* [Introductory Blog Post](https://medium.com/unit8-machine-learning-publication/darts-time-series-made-easy-in-python-5ac2947a8878) +* [Introduction video (25 minutes)](https://youtu.be/g6OXDnXEtFA) +##### Articles on Selected Topics +* [Training Models on Multiple Time Series](https://medium.com/unit8-machine-learning-publication/training-forecasting-models-on-multiple-time-series-with-darts-dc4be70b1844) +* [Using Past and Future Covariates](https://medium.com/unit8-machine-learning-publication/time-series-forecasting-using-past-and-future-external-data-with-darts-1f0539585993) +* [Temporal Convolutional Networks and Forecasting](https://medium.com/unit8-machine-learning-publication/temporal-convolutional-networks-and-forecasting-5ce1b6e97ce4) +* [Probabilistic Forecasting](https://medium.com/unit8-machine-learning-publication/probabilistic-forecasting-in-darts-e88fbe83344e) +* [Transfer Learning for Time Series Forecasting](https://medium.com/unit8-machine-learning-publication/transfer-learning-for-time-series-forecasting-87f39e375278) +* [Hierarchical Forecast Reconciliation](https://medium.com/unit8-machine-learning-publication/hierarchical-forecast-reconciliation-with-darts-8b4b058bb543) +## Quick Install +We recommend to first setup a clean Python environment for your project with Python 3.7+ using your favorite tool +([conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html "conda-env"), +[venv](https://docs.python.org/3/library/venv.html), [virtualenv](https://virtualenv.pypa.io/en/latest/) with +or without [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/)). +Once your environment is set up you can install darts using pip: + pip install darts +For more details you can refer to our +[installation instructions](https://github.com/unit8co/darts/blob/master/INSTALL.md). +## Example Usage +### Forecasting +Create a `TimeSeries` object from a Pandas DataFrame, and split it in train/validation series: +```python +import pandas as pd +from darts import TimeSeries +# Read a pandas DataFrame +df = pd.read_csv("AirPassengers.csv", delimiter=",") +# Create a TimeSeries, specifying the time and value columns +series = TimeSeries.from_dataframe(df, "Month", "#Passengers") +# Set aside the last 36 months as a validation series +train, val = series[:-36], series[-36:] +``` +Fit an exponential smoothing model, and make a (probabilistic) prediction over the validation series' duration: +```python +from darts.models import ExponentialSmoothing +model = ExponentialSmoothing() +model.fit(train) +prediction = model.predict(len(val), num_samples=1000) +``` +Plot the median, 5th and 95th percentiles: +```python +import matplotlib.pyplot as plt +series.plot() +prediction.plot(label="forecast", low_quantile=0.05, high_quantile=0.95) +plt.legend() +``` +<div style="text-align:center;"> +<img src="https://github.com/unit8co/darts/raw/master/static/images/example.png" alt="darts forecast example" /> +</div> +### Anomaly Detection +Load a multivariate series, trim it, keep 2 components, split train and validation sets: +```python +from darts.datasets import ETTh2Dataset +series = ETTh2Dataset().load()[:10000][["MUFL", "LULL"]] +train, val = series.split_before(0.6) +``` +Build a k-means anomaly scorer, train it on the train set +and use it on the validation set to get anomaly scores: +```python +from darts.ad import KMeansScorer +scorer = KMeansScorer(k=2, window=5) +scorer.fit(train) +anom_score = scorer.score(val) +``` +Build a binary anomaly detector and train it over train scores, +then use it over validation scores to get binary anomaly classification: +```python +from darts.ad import QuantileDetector +detector = QuantileDetector(high_quantile=0.99) +detector.fit(scorer.score(train)) +binary_anom = detector.detect(anom_score) +``` +Plot (shifting and scaling some of the series +to make everything appear on the same figure): +```python +import matplotlib.pyplot as plt +series.plot() +(anom_score / 2. - 100).plot(label="computed anomaly score", c="orangered", lw=3) +(binary_anom * 45 - 150).plot(label="detected binary anomaly", lw=4) +``` +<div style="text-align:center;"> +<img src="https://github.com/unit8co/darts/raw/master/static/images/example_ad.png" alt="darts anomaly detection example" /> +</div> +## Features +* **Forecasting Models:** A large collection of forecasting models; from statistical models (such as + ARIMA) to deep learning models (such as N-BEATS). See [table of models below](#forecasting-models). +* **Anomaly Detection** The `darts.ad` module contains a collection of anomaly scorers, + detectors and aggregators, which can all be combined to detect anomalies in time series. + It is easy to wrap any of Darts forecasting or filtering models to build + a fully fledged anomaly detection model that compares predictions with actuals. + The `PyODScorer` makes it trivial to use PyOD detectors on time series. +* **Multivariate Support:** `TimeSeries` can be multivariate - i.e., contain multiple time-varying + dimensions instead of a single scalar value. Many models can consume and produce multivariate series. +* **Multiple series training (global models):** All machine learning based models (incl. all neural networks) + support being trained on multiple (potentially multivariate) series. This can scale to large datasets too. +* **Probabilistic Support:** `TimeSeries` objects can (optionally) represent stochastic + time series; this can for instance be used to get confidence intervals, and many models support different + flavours of probabilistic forecasting (such as estimating parametric distributions or quantiles). + Some anomaly detection scorers are also able to exploit these predictive distributions. +* **Past and Future Covariates support:** Many models in Darts support past-observed and/or future-known + covariate (external data) time series as inputs for producing forecasts. +* **Static Covariates support:** In addition to time-dependent data, `TimeSeries` can also contain + static data for each dimension, which can be exploited by some models. +* **Hierarchical Reconciliation:** Darts offers transformers to perform reconciliation. + These can make the forecasts add up in a way that respects the underlying hierarchy. +* **Regression Models:** It is possible to plug-in any scikit-learn compatible model + to obtain forecasts as functions of lagged values of the target series and covariates. +* **Explainability:** Darts has the ability to *explain* some forecasting models using Shap values. +* **Data processing:** Tools to easily apply (and revert) common transformations on + time series data (scaling, filling missing values, differencing, boxcox, ...) +* **Metrics:** A variety of metrics for evaluating time series' goodness of fit; + from R2-scores to Mean Absolute Scaled Error. +* **Backtesting:** Utilities for simulating historical forecasts, using moving time windows. +* **PyTorch Lightning Support:** All deep learning models are implemented using PyTorch Lightning, + supporting among other things custom callbacks, GPUs/TPUs training and custom trainers. +* **Filtering Models:** Darts offers three filtering models: `KalmanFilter`, `GaussianProcessFilter`, + and `MovingAverageFilter`, which allow to filter time series, and in some cases obtain probabilistic + inferences of the underlying states/values. +* **Datasets** The `darts.datasets` submodule contains some popular time series datasets for rapid + and reproducible experimentation. +## Forecasting Models +Here's a breakdown of the forecasting models currently implemented in Darts. We are constantly working +on bringing more models and features. + +%package help +Summary: Development documents and examples for u8darts +Provides: python3-u8darts-doc +%description help +[](https://badge.fury.io/py/darts) +[](https://anaconda.org/conda-forge/u8darts-all) + + + + +[](https://pepy.tech/project/u8darts) +[](https://pepy.tech/project/darts) +[](https://codecov.io/gh/unit8co/darts) +[](https://github.com/psf/black) [](https://gitter.im/u8darts/darts?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +**Darts** is a Python library for user-friendly forecasting and anomaly detection +on time series. It contains a variety of models, from classics such as ARIMA to +deep neural networks. The forecasting models can all be used in the same way, +using `fit()` and `predict()` functions, similar to scikit-learn. +The library also makes it easy to backtest models, +combine the predictions of several models, and take external data into account. +Darts supports both univariate and multivariate time series and models. +The ML-based models can be trained on potentially large datasets containing multiple time +series, and some of the models offer a rich support for probabilistic forecasting. +Darts also offers extensive anomaly detection capabilities. +For instance, it is trivial to apply PyOD models on time series to obtain anomaly scores, +or to wrap any of Darts forecasting or filtering models to obtain fully +fledged anomaly detection models. +## Documentation +* [Quickstart](https://unit8co.github.io/darts/quickstart/00-quickstart.html) +* [User Guide](https://unit8co.github.io/darts/userguide.html) +* [API Reference](https://unit8co.github.io/darts/generated_api/darts.html) +* [Examples](https://unit8co.github.io/darts/examples.html) +##### High Level Introductions +* [Introductory Blog Post](https://medium.com/unit8-machine-learning-publication/darts-time-series-made-easy-in-python-5ac2947a8878) +* [Introduction video (25 minutes)](https://youtu.be/g6OXDnXEtFA) +##### Articles on Selected Topics +* [Training Models on Multiple Time Series](https://medium.com/unit8-machine-learning-publication/training-forecasting-models-on-multiple-time-series-with-darts-dc4be70b1844) +* [Using Past and Future Covariates](https://medium.com/unit8-machine-learning-publication/time-series-forecasting-using-past-and-future-external-data-with-darts-1f0539585993) +* [Temporal Convolutional Networks and Forecasting](https://medium.com/unit8-machine-learning-publication/temporal-convolutional-networks-and-forecasting-5ce1b6e97ce4) +* [Probabilistic Forecasting](https://medium.com/unit8-machine-learning-publication/probabilistic-forecasting-in-darts-e88fbe83344e) +* [Transfer Learning for Time Series Forecasting](https://medium.com/unit8-machine-learning-publication/transfer-learning-for-time-series-forecasting-87f39e375278) +* [Hierarchical Forecast Reconciliation](https://medium.com/unit8-machine-learning-publication/hierarchical-forecast-reconciliation-with-darts-8b4b058bb543) +## Quick Install +We recommend to first setup a clean Python environment for your project with Python 3.7+ using your favorite tool +([conda](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html "conda-env"), +[venv](https://docs.python.org/3/library/venv.html), [virtualenv](https://virtualenv.pypa.io/en/latest/) with +or without [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/)). +Once your environment is set up you can install darts using pip: + pip install darts +For more details you can refer to our +[installation instructions](https://github.com/unit8co/darts/blob/master/INSTALL.md). +## Example Usage +### Forecasting +Create a `TimeSeries` object from a Pandas DataFrame, and split it in train/validation series: +```python +import pandas as pd +from darts import TimeSeries +# Read a pandas DataFrame +df = pd.read_csv("AirPassengers.csv", delimiter=",") +# Create a TimeSeries, specifying the time and value columns +series = TimeSeries.from_dataframe(df, "Month", "#Passengers") +# Set aside the last 36 months as a validation series +train, val = series[:-36], series[-36:] +``` +Fit an exponential smoothing model, and make a (probabilistic) prediction over the validation series' duration: +```python +from darts.models import ExponentialSmoothing +model = ExponentialSmoothing() +model.fit(train) +prediction = model.predict(len(val), num_samples=1000) +``` +Plot the median, 5th and 95th percentiles: +```python +import matplotlib.pyplot as plt +series.plot() +prediction.plot(label="forecast", low_quantile=0.05, high_quantile=0.95) +plt.legend() +``` +<div style="text-align:center;"> +<img src="https://github.com/unit8co/darts/raw/master/static/images/example.png" alt="darts forecast example" /> +</div> +### Anomaly Detection +Load a multivariate series, trim it, keep 2 components, split train and validation sets: +```python +from darts.datasets import ETTh2Dataset +series = ETTh2Dataset().load()[:10000][["MUFL", "LULL"]] +train, val = series.split_before(0.6) +``` +Build a k-means anomaly scorer, train it on the train set +and use it on the validation set to get anomaly scores: +```python +from darts.ad import KMeansScorer +scorer = KMeansScorer(k=2, window=5) +scorer.fit(train) +anom_score = scorer.score(val) +``` +Build a binary anomaly detector and train it over train scores, +then use it over validation scores to get binary anomaly classification: +```python +from darts.ad import QuantileDetector +detector = QuantileDetector(high_quantile=0.99) +detector.fit(scorer.score(train)) +binary_anom = detector.detect(anom_score) +``` +Plot (shifting and scaling some of the series +to make everything appear on the same figure): +```python +import matplotlib.pyplot as plt +series.plot() +(anom_score / 2. - 100).plot(label="computed anomaly score", c="orangered", lw=3) +(binary_anom * 45 - 150).plot(label="detected binary anomaly", lw=4) +``` +<div style="text-align:center;"> +<img src="https://github.com/unit8co/darts/raw/master/static/images/example_ad.png" alt="darts anomaly detection example" /> +</div> +## Features +* **Forecasting Models:** A large collection of forecasting models; from statistical models (such as + ARIMA) to deep learning models (such as N-BEATS). See [table of models below](#forecasting-models). +* **Anomaly Detection** The `darts.ad` module contains a collection of anomaly scorers, + detectors and aggregators, which can all be combined to detect anomalies in time series. + It is easy to wrap any of Darts forecasting or filtering models to build + a fully fledged anomaly detection model that compares predictions with actuals. + The `PyODScorer` makes it trivial to use PyOD detectors on time series. +* **Multivariate Support:** `TimeSeries` can be multivariate - i.e., contain multiple time-varying + dimensions instead of a single scalar value. Many models can consume and produce multivariate series. +* **Multiple series training (global models):** All machine learning based models (incl. all neural networks) + support being trained on multiple (potentially multivariate) series. This can scale to large datasets too. +* **Probabilistic Support:** `TimeSeries` objects can (optionally) represent stochastic + time series; this can for instance be used to get confidence intervals, and many models support different + flavours of probabilistic forecasting (such as estimating parametric distributions or quantiles). + Some anomaly detection scorers are also able to exploit these predictive distributions. +* **Past and Future Covariates support:** Many models in Darts support past-observed and/or future-known + covariate (external data) time series as inputs for producing forecasts. +* **Static Covariates support:** In addition to time-dependent data, `TimeSeries` can also contain + static data for each dimension, which can be exploited by some models. +* **Hierarchical Reconciliation:** Darts offers transformers to perform reconciliation. + These can make the forecasts add up in a way that respects the underlying hierarchy. +* **Regression Models:** It is possible to plug-in any scikit-learn compatible model + to obtain forecasts as functions of lagged values of the target series and covariates. +* **Explainability:** Darts has the ability to *explain* some forecasting models using Shap values. +* **Data processing:** Tools to easily apply (and revert) common transformations on + time series data (scaling, filling missing values, differencing, boxcox, ...) +* **Metrics:** A variety of metrics for evaluating time series' goodness of fit; + from R2-scores to Mean Absolute Scaled Error. +* **Backtesting:** Utilities for simulating historical forecasts, using moving time windows. +* **PyTorch Lightning Support:** All deep learning models are implemented using PyTorch Lightning, + supporting among other things custom callbacks, GPUs/TPUs training and custom trainers. +* **Filtering Models:** Darts offers three filtering models: `KalmanFilter`, `GaussianProcessFilter`, + and `MovingAverageFilter`, which allow to filter time series, and in some cases obtain probabilistic + inferences of the underlying states/values. +* **Datasets** The `darts.datasets` submodule contains some popular time series datasets for rapid + and reproducible experimentation. +## Forecasting Models +Here's a breakdown of the forecasting models currently implemented in Darts. We are constantly working +on bringing more models and features. + +%prep +%autosetup -n u8darts-0.24.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-u8darts -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.24.0-1 +- Package Spec generated @@ -0,0 +1 @@ +50cd4f23dbd9129d27d2a63f0aed82d2 u8darts-0.24.0.tar.gz |