From 879e92e404158a5ccc7a63bdec2e070aa44df33d Mon Sep 17 00:00:00 2001 From: Aadyot Bhatnagar Date: Mon, 6 Feb 2023 16:37:32 -0800 Subject: [PATCH] Update README. (#147) --- README.md | 38 ++++++++++++++++++++-------------- docs/build_docs.sh | 1 + docs/process_old_docs.py | 4 ++-- docs/requirements.txt | 3 ++- docs/source/merlion.models.rst | 21 +++++++++++++++++++ docs/source/merlion.rst | 18 +++++++++++----- 6 files changed, 61 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index f0ccd0108..420c79fff 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ ## Table of Contents 1. [Introduction](#introduction) +1. [Comparison with Related Libraries](#comparison-with-related-libraries) 1. [Installation](#installation) 1. [Documentation](#documentation) 1. [Getting Started](#getting-started) @@ -57,28 +58,33 @@ Merlion's key features are - Distributed computation [backend](https://opensource.salesforce.com/Merlion/merlion.spark.html) using PySpark, which can be used to serve time series applications at industrial scale. + +## Comparison with Related Libraries + The table below provides a visual overview of how Merlion's key features compare to other libraries for time series anomaly detection and/or forecasting. -| | Merlion | Prophet | Alibi Detect | Kats | statsmodels | nixtla | GluonTS | RRCF | STUMPY | Greykite |pmdarima -:--- | :---: | :---:| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :----: | :---: -| Univariate Forecasting | ✅ | ✅| | ✅ | ✅ | ✅ | ✅ | | |✅| ✅ -| Multivariate Forecasting | ✅ | | | ✅ | ✅| ✅ | ✅ | | | | | -| Univariate Anomaly Detection | ✅ | ✅ | ✅ | ✅ | | | | ✅ | ✅ | ✅ | ✅ | -| Multivariate Anomaly Detection | ✅ | | ✅ | ✅ | | | | ✅ | ✅ | | | | -| AutoML | ✅ | | | ✅ | | | | | | | ✅ | | ✅ -| Ensembles | ✅ | | | ✅ | | | | | ✅ | | | | -| Benchmarking | ✅ | | | | ✅ | ✅ | | | | | -| Visualization | ✅ | ✅ | | ✅ | | | | | | ✅ | ✅ | | +| | Merlion | Prophet | Alibi Detect | Kats | darts | statsmodels | nixtla | GluonTS | RRCF | STUMPY | Greykite |pmdarima +:--- | :---: | :---:| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :----: | :---: +| Univariate Forecasting | ✅ | ✅| | ✅ | ✅ | ✅ | ✅ | ✅ | | |✅| ✅ +| Multivariate Forecasting | ✅ | | | ✅ | ✅ | ✅| ✅ | ✅ | | | | | +| Univariate Anomaly Detection | ✅ | ✅ | ✅ | ✅ | ✅ | | | | ✅ | ✅ | ✅ | ✅ | +| Multivariate Anomaly Detection | ✅ | | ✅ | ✅ | ✅ | | | | ✅ | ✅ | | | | +| Pre Processing | ✅ | | ✅ | ✅ | ✅ | | ✅ | ✅ | | | ✅ | ✅ +| Post Processing | ✅ | | ✅ | | | | | | | | | | +| AutoML | ✅ | | | ✅ | | | | | | | | ✅ | | ✅ +| Ensembles | ✅ | | | ✅ | ✅ | | | | | ✅ | | | | +| Benchmarking | ✅ | | | | ✅ | ✅ | ✅ | | | | ✅ | +| Visualization | ✅ | ✅ | | ✅ | ✅ | | | | | | ✅ | The following features are new in Merlion 2.0: -| | Merlion | Prophet | Alibi Detect | Kats | statsmodels | nixtla | GluonTS | RRCF | STUMPY | Greykite |pmdarima -:--- | :---: | :---:| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :----: | :---: -| Exogenous Regressors | ✅ | ✅ | | | ✅ | | | | | ✅ | ✅ -| Change Point Detection | ✅ | ✅ | ✅ | ✅ | | | | | | ✅ | -| Clickable Visual UI | ✅ | | | | | | | | | | -| Distributed Backend | ✅ | | | | | ✅ | | | | | +| | Merlion | Prophet | Alibi Detect | Kats | darts | statsmodels | nixtla | GluonTS | RRCF | STUMPY | Greykite |pmdarima +:--- | :---: | :---:| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :----: | :---: +| Exogenous Regressors | ✅ | ✅ | | |✅ | ✅ | | | | | ✅ | ✅ +| Change Point Detection | ✅ | ✅ | ✅ | ✅ | | | | | | | ✅ | +| Clickable Visual UI | ✅ | | | | | | | | | | | +| Distributed Backend | ✅ | | | | | | ✅ | | | | | ## Installation diff --git a/docs/build_docs.sh b/docs/build_docs.sh index 9427c4fde..33e8d7f52 100755 --- a/docs/build_docs.sh +++ b/docs/build_docs.sh @@ -55,6 +55,7 @@ docs_files=("${DIRNAME}/source/*.rst" "examples") checkout_files=("${docs_files[@]}" "merlion" "ts_datasets" "setup.py" "MANIFEST.in") for version in "${versions[@]}"; do if [[ ! -d "${DIRNAME}/build/html/${version}" ]]; then + rm -rf "${DIRNAME}/build/html/${version}" if [[ ${version} != "latest" ]]; then git checkout -b "${version}_local_docs_only" for f in $(git diff --name-only --diff-filter=AR "tags/${version}" "${DIRNAME}/source/*.rst" "examples"); do diff --git a/docs/process_old_docs.py b/docs/process_old_docs.py index 4f4c7ba07..87e69ad9a 100644 --- a/docs/process_old_docs.py +++ b/docs/process_old_docs.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2022 salesforce.com, inc. +# Copyright (c) 2023 salesforce.com, inc. # All rights reserved. # SPDX-License-Identifier: BSD-3-Clause # For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause @@ -63,7 +63,7 @@ def main(): for file in html_files: with open(file) as f: soup = bs(f, "html.parser") - version_dl = [dl for dl in soup.find_all("dl") if dl.find("dt", text="Versions")] + version_dl = [dl for dl in soup.find_all("dl") if dl.find("dt", string="Versions")] if len(version_dl) == 0: continue version_dl[0].replace_with(create_version_dl(soup, prefix, version, versions)) diff --git a/docs/requirements.txt b/docs/requirements.txt index 38d2ef62c..c44ddffe2 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -3,6 +3,7 @@ beautifulsoup4 ipykernel nbsphinx pandoc -sphinx +docutils==0.16 +sphinx<6 sphinx_autodoc_typehints sphinx_rtd_theme diff --git a/docs/source/merlion.models.rst b/docs/source/merlion.models.rst index 429a5e12b..4652bae86 100644 --- a/docs/source/merlion.models.rst +++ b/docs/source/merlion.models.rst @@ -78,11 +78,32 @@ Subpackages :maxdepth: 3 merlion.models.anomaly + +.. toctree:: + :maxdepth: 2 + merlion.models.anomaly.change_point merlion.models.anomaly.forecast_based + +.. toctree:: + :maxdepth: 3 + merlion.models.forecast + +.. toctree:: + :maxdepth: 2 + merlion.models.ensemble + + +.. toctree:: + :maxdepth: 3 + merlion.models.automl + +.. toctree:: + :maxdepth: 2 + merlion.models.utils diff --git a/docs/source/merlion.rst b/docs/source/merlion.rst index cd309326c..1c1fd774a 100644 --- a/docs/source/merlion.rst +++ b/docs/source/merlion.rst @@ -53,18 +53,26 @@ The full API documentation is outlined below: :undoc-members: :show-inheritance: -.. toctree:: - :maxdepth: 5 - - merlion.models - .. toctree:: :maxdepth: 3 + merlion.models merlion.dashboard merlion.spark merlion.transform + +.. toctree:: + :maxdepth: 2 + merlion.post_process merlion.evaluate + +.. toctree:: + :maxdepth: 1 + merlion.plot + +.. toctree:: + :maxdepth: 2 + merlion.utils