Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jbris/time_series_anomaly_detection_examples
Several examples of anomaly detection algorithms for time series data.
https://github.com/jbris/time_series_anomaly_detection_examples
anomaly-detection anomaly-detection-algorithm data-science docker grafana grafana-influxdb influxdb influxdb-grafana machine-learning machine-learning-algorithms python r rstudio statistics telegraf tensorflow tensorflow-examples tensorflow-tutorials time-series time-series-analysis
Last synced: about 1 month ago
JSON representation
Several examples of anomaly detection algorithms for time series data.
- Host: GitHub
- URL: https://github.com/jbris/time_series_anomaly_detection_examples
- Owner: JBris
- License: mit
- Created: 2020-03-20T04:26:50.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-10-04T11:45:05.000Z (about 1 year ago)
- Last Synced: 2023-10-04T20:00:02.125Z (about 1 year ago)
- Topics: anomaly-detection, anomaly-detection-algorithm, data-science, docker, grafana, grafana-influxdb, influxdb, influxdb-grafana, machine-learning, machine-learning-algorithms, python, r, rstudio, statistics, telegraf, tensorflow, tensorflow-examples, tensorflow-tutorials, time-series, time-series-analysis
- Language: Python
- Homepage:
- Size: 3.53 MB
- Stars: 13
- Watchers: 1
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# time_series_anomaly_detection_examples
## Table of Contents
* [Introduction](#introduction)
* [Python](#python)
* [R](#r)
* [InfluxDB](#influxdb)### Introduction
The Time Series Anomaly Detection repo contains several examples of anomaly detection algorithms for use with time series data sets.
Examples can be found in the [python directory](python) and [r directory](r).
InfluxDB and Grafana are optionally included in the Docker stack for data storage and visualization purposes. Telegraf has been included to fill the InfluxDB with dummy metric data.
Redis is optionally included in the Docker stack for caching (i.e. memoization) purposes.
If you're using Docker, execute [build.sh](build.sh) to get started.
### Python
Examples are typically written in python. From the [.env.example file](.env.example), you can see that scripts are written in python 3.8.2. A list of module dependencies can be found in the [Dockerfile](python/Dockerfile) and [requirements.txt](python/requirements.txt). You aren't forced to use Docker, and can use something like Conda instead if that's your preference.
If you opt to use Docker, you can view the [Makefile](Makefile) for relevant Docker commands. The `make penter` command will create a new container and execute the python CLI. The `make prun` command will run a python script. For example, `make prun d=ts_price_anomaly_detection s=view` will run [ts_price_anomaly_detection/view.py](python/ts_price_anomaly_detection/view.py)
Example anomaly detection algorithms can be found in the [python](python) directory, and each example directory contains a similar structure. When exploring an example, you should first read the README.md and references.md files. The references.md file will provide you with a relevant link to a tutorial page and data set. Download the recommended data set and place it in the local data directory (don't place it in the [root data directory](data)).
You can then execute various python scripts to analyze and model the data. It's recommended that you run explore.py then view.py first to better understand the distribution of the data.
### R
Additional examples are written in R. From the [.env.example file](.env.example), you can see that R scripts are written in version 3.6.3. A list of additional R packages can be found in the [Dockerfile](r/Dockerfile).
As the [docker-compose.yml](docker-compose.yml) file shows, this repo employs the [rocker/tidyverse image](https://hub.docker.com/r/rocker/tidyverse) which already includes the tidyverse collection and RStudio server.
If you opt to use Docker, you can view the [Makefile](Makefile) for relevant Docker commands. The `make renter` command will allow users to execute shell commands within the R container. The `make rrun` command will run an R script. For example, `make rrun s=bitcoin_anomalies` will run [$R_STUDIO_USER/bitcoin_anomalies.r](r/user/bitcoin_anomalies.r)
Example anomaly detection algorithms can be found in the [r directory](r). You can then execute various r scripts to analyze and model the data.
### InfluxDB
InfluxDB is a time series database. For those who are unfamiliar, more information can be found at [influxdata.com](https://www.influxdata.com/). InfluxDB can be combined with [Grafana](https://grafana.com/) to analyze and visualize the data. View the [.env.example file](.env.example) to configure your InfluxDB & Grafana versions and ports.
CSV files can be easily imported to your InfluxDB instance using the [csv-to-influxdb](https://github.com/fabio-miranda/csv-to-influxdb) package. Each example directory will contain a README.md file with a `csv-to-influxdb.py` command to execute.