Skip to main content

Anomaly detection algorithm for time series datasets

Project description

Automated Online Sequential ESD (Python)

This package includes Python codes for online sequential ESD(osESD), a variation of GESD tests. It is a accurate and efficient way to detect anomalies in an univariate time series dataset.

We provide the basic function osESD and an automated grid search method auto-osESD. auto-osESD can be used to find the best parameters for a specific dataset,
using basic parameters or parameters provided explicitly by the user.

Installation

1. Download library.

Download osESD library using pip.

pip install osESD

2. Import function.

Import function in python code. osESD is for a single online sequential ESD test, and will return indices of the anomalies. Also, it will produce a text file with these anomalies in the designated output file (default 'osESD_results'). auto_osESD is for convenient tuning of osESD, and will run with default parameters if not specified otherwise.

from osESD import osESD, auto_osESD

3. Run on dataset.

Read data and run it using osESD. The model is designed to run on univarites time series dataset in a csv. fashion. Imported csv. dataset and custom name of the dataset should be entered. Also, the name of the column with values should be entered to 'value_name' and the name of the column with anomaly values should be entered as 'anomaly_name'.

import os
import pandas as pd

from osESD import osESD, auto_osESD

os.chdir(os.path.dirname(os.path.abspath(__file__)))

df = pd.read_csv("ARIMA1_ber_1.csv")
anoms_1 = osESD(df,"A2_benchmark", value_name='value',anomaly_name='anomaly')
print(anoms_1)

anoms_2 = osESD(df,"A2_benchmark", value_name='value',anomaly_name='anomaly',size=100, dwin=5, rwin=5, maxr=6, alpha=0.01)
print(anoms_2)

auto_anoms_1 = auto_osESD(df,"A2_benchmark_auto")
print(auto_anoms_1)

auto_anoms_2 = auto_osESD(df,"A2_benchmark_auto", size=[20,50,100,150],conditions=[True,False],alphas=[0.001,0.01],weights=[0,0,1,0],learning_length=0.3)
print(auto_anoms_2)

Versions

Python = 3.8.16    
argparse = 1.1  
numpy = 1.24.3  
pandas = 1.5.3  
torch = 1.13.1  
matplotlib = 3.7.0  
scikit-learn = 1.2.1  
scipy = 1.10.1  
rrcf = 0.4.4  

License

License :: OSI Approved :: MIT License
Operating System :: OS Independent

Acknowledgements

This work was supported by the Ministry of Education of the Republic of Korea 
and the National Research Foundation of Korea (NRF-2018R1A5A7059549). 
This work was also supported by `Human Resources Program in Energy Technology' 
of the Korea Institute of Energy, Technology Evaluation and Planning (KETEP), 
and was granted financial resources from the Ministry of Trade, 
Industry $\&$ Energy, Republic of Korea (No. 20204010600090).

Related research and tests were mainly done in 
Intelligent Data Systems Laboratory in Hanyang University, Seoul, South Korea.

References

Paper (currently under revision).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

osesd-1.1.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

osESD-1.1.0-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file osesd-1.1.0.tar.gz.

File metadata

  • Download URL: osesd-1.1.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.2

File hashes

Hashes for osesd-1.1.0.tar.gz
Algorithm Hash digest
SHA256 bb5e5a4f29aae9a21455ef169e09b885d7a8867b2ac65d5d7d164b5ca9baa237
MD5 494135e63e1a863976109b6dbdc99c66
BLAKE2b-256 b7d3ade00d5ed5d85401de923d5b1f125b4ef70f0c08bd32bae238f8130c04b4

See more details on using hashes here.

File details

Details for the file osESD-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: osESD-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.2

File hashes

Hashes for osESD-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c34b3b108b4b3e0a49b257691db1bf76d031ba4838c05769e0728f36c22b7c66
MD5 db9473d496b85796299dbcd61f20a2e2
BLAKE2b-256 bd1a914267c730ee95d02059a18391a41efdae6b194e72969686bcf7a880549e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page