Décomposition de séries temporelles pour la détection d'anomalies

Détection d’anomalies en Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Saisonnalité

  • Motifs récurrents dans la série temporelle
  • Fréquence fixe :
    • horaire
    • quotidien
    • hebdomadaire
    • mensuel, etc.
  • Exemples :
    • Températures quotidiennes
    • Ventes de glaces
Détection d’anomalies en Python

Saisonnalité

Courbe des cours d'ouverture des actions Google.

Détection d’anomalies en 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>
Détection d’anomalies en Python

Tracer la saisonnalité

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

Courbe de la composante saisonnière des cours d'ouverture de Google

Détection d’anomalies en Python

Exemples de saisonnalité

Exemples de saisonnalité dans des séries temporelles.

Détection d’anomalies en Python

Graphique initial des actions

Graphique initial des cours d'ouverture de Google

Détection d’anomalies en Python

Tendance

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

Détection d’anomalies en Python

Exemples de tendances

Exemples de tendances de séries temporelles.

Détection d’anomalies en Python

Résidus

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

Courbe des résidus des cours d'ouverture de Google.

Détection d’anomalies en Python

Décomposition

figure = results.plot()

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

Visualisation des trois composantes d'une série temporelle.

Détection d’anomalies en Python

Ajuster un classifieur

# 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
Détection d’anomalies en Python

Passons à la pratique !

Détection d’anomalies en Python

Preparing Video For Download...