--- title: pyanomaly keywords: fastai sidebar: home_sidebar summary: "Conjunto de algoritmos para detectar anomalias em Series Temporais." description: "Conjunto de algoritmos para detectar anomalias em Series Temporais." ---
pip install pyanomaly
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
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)
df.plot(figsize=(8, 4));
mad = MAD()
mad.fit(df['Temp'])
outliers = mad.fit_predict(df['Temp'])
outliers.head()
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');
tu = Tukey()
tu.fit(df['Temp'])
outliers = tu.predict(df['Temp'])
outliers.head()
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');
outliers = twitter(df['Temp'], period=12)
outliers.head()
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');