Descompunerea seriilor de timp pentru detectarea valorilor aberante

Detecția anomaliilor în Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Sezonalitate

  • Tipare repetitive în seria de timp
  • Are o frecvență fixă:
    • orară
    • zilnică
    • săptămânală
    • lunară etc.
  • Exemple:
    • Temperaturi zilnice
    • Vânzări de înghețată
Detecția anomaliilor în Python

Sezonalitate

Grafic liniar al prețurilor de deschidere ale acțiunilor Google.

Detecția anomaliilor în Python

seasonal_decompose

from statsmodels.tsa.seasonal import seasonal_decompose

results = seasonal_decompose(google['Open'], period=365)

print(results)
<statsmodels.tsa.seasonal.DecomposeResult object at 0x7f0a67fac820>
Detecția anomaliilor în Python

Vizualizarea sezonalității

results.seasonal.plot(color="red", figsize=(12, 4))

Grafic al sezonalității prețurilor de deschidere ale acțiunilor Google

Detecția anomaliilor în Python

Exemple de sezonalitate

Exemple de sezonalitate în serii de timp.

Detecția anomaliilor în Python

Grafic inițial al acțiunilor

Grafic inițial al prețurilor de deschidere ale acțiunilor Google

Detecția anomaliilor în Python

Tendință

results.trend.plot(color="red", figsize=(12, 4))

Detecția anomaliilor în Python

Exemple de tendințe

Exemple de tendințe în serii de timp.

Detecția anomaliilor în Python

Reziduuri

results.resid.plot(color="red", figsize=(12, 4))

Grafic al reziduurilor prețurilor de deschidere ale acțiunilor Google.

Detecția anomaliilor în Python

Descompunere

figure = results.plot()

figure.set_figwidth(12)
figure.set_figheight(8)

Toate cele trei componente ale seriei de timp vizualizate.

Detecția anomaliilor în Python

Antrenarea unui clasificator

# Extract and reshape residuals
results = seasonal_decompose(google['Volume'], period=365)
residuals = results.resid
residuals = residuals.values.reshape(-1, 1)


# Fit MAD mad = MAD().fit(residuals)
# Find the outliers is_outlier = mad.labels_ == 1 outliers = google[is_outlier] print(len(outliers))
81
Detecția anomaliilor în Python

Să exersăm!

Detecția anomaliilor în Python

Preparing Video For Download...