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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyanomaly-0.0.2.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 95c2f2993105890dd4879536e60d693c8117d86ed65f87f02e11fd741517845d
MD5 7370ed0fc1edfddfe6f4c16d968eaac9
BLAKE2b-256 e5aeafff8af183eac77231699684292da191fdfeb8cc4dda76059c11a3f399ef

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