Skip to main content

Time series anomaly detection in Python

Project description

pyanomaly

Conjunto de algoritmos para detectar anomalias em Series Temporais.

Instalação

pip install pyanomaly

Como usar

Iremos realizar os testes no dataset contendo temperaturas diarias da cidade de Melbourne.

dataset: https://raw.githubusercontent.com/jbrownlee/Datasets/master/daily-min-temperatures.csv

# data
import numpy as np
import pandas as pd
# plot
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()

df = pd.read_csv('./dados/daily-min-temperatures.csv', parse_dates=['Date'])
df.set_index('Date', inplace=True)
print(df.head(5).T)
Date  1981-01-01  1981-01-02  1981-01-03  1981-01-04  1981-01-05
Temp        20.7        17.9        18.8        14.6        15.8
df.plot(figsize=(8, 4));

png

Mad

mad = MAD()
mad.fit(df['Temp'])
outliers = mad.fit_predict(df['Temp'])

outliers.head()
Date
1981-01-15    25.0
1981-01-18    24.8
1981-02-09    25.0
1982-01-17    24.0
1982-01-20    25.2
Name: Temp, dtype: float64
fig, ax = plt.subplots(1, 1, figsize=(12, 6))

sns.lineplot(x=df.index, y=df['Temp'], ax=ax)
sns.scatterplot(x=outliers.index, y=outliers, 
                color='r', ax=ax)

plt.title('Zscore Robusto', fontsize='large');

png

Tukey

tu = Tukey()

tu.fit(df['Temp'])
outliers = tu.predict(df['Temp'])

outliers.head()
Date
1981-01-15    25.0
1981-01-18    24.8
1981-02-09    25.0
1982-01-17    24.0
1982-01-20    25.2
Name: Temp, dtype: float64
fig, ax = plt.subplots(1, 1, figsize=(12, 6))

sns.lineplot(x=df.index, y=df['Temp'], ax=ax)
sns.scatterplot(x=outliers.index, y=outliers, 
                color='r', ax=ax)

plt.title('Tukey Method', fontsize='large');

png

Twitter - S-MAD

outliers = twitter(df['Temp'], period=12)
outliers.head()
Date
1981-01-15    25.0
1981-01-18    24.8
1981-02-09    25.0
1982-01-20    25.2
1982-02-15    26.3
Name: Temp, dtype: float64
fig, ax = plt.subplots(1, 1, figsize=(12, 6))

sns.lineplot(x=df.index, y=df['Temp'], ax=ax)
sns.scatterplot(x=outliers.index, y=outliers, 
                color='r', ax=ax)

plt.title('Tukey Method', fontsize='large');

png

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

pyanomaly-0.0.2.4.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

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

pyanomaly-0.0.2.4-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file pyanomaly-0.0.2.4.tar.gz.

File metadata

  • Download URL: pyanomaly-0.0.2.4.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0.post20200814 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.6

File hashes

Hashes for pyanomaly-0.0.2.4.tar.gz
Algorithm Hash digest
SHA256 28d0b401c953c36938a7e2f012f918b50df71ea7a690cb96ae5142c7ed343bec
MD5 b99d674f32c15e910caac578a52228c9
BLAKE2b-256 6f93735cc8b4aa360a6b60bd3b6d1d17da6ad5f7a0a59ff6e92cb846cabf29fe

See more details on using hashes here.

File details

Details for the file pyanomaly-0.0.2.4-py3-none-any.whl.

File metadata

  • Download URL: pyanomaly-0.0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0.post20200814 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.7.6

File hashes

Hashes for pyanomaly-0.0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 59ab7870879c78cde58dc4e469510d63b0e205f64a9dfd15bcbe452079476ac4
MD5 fb15fd9bbf09054f9a071bf5904f5bdd
BLAKE2b-256 7533fdea602a6fcf7bc0a9f11b3ec6892102b452b5aad9e228b83b077f3f8505

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