Scomposizione di serie temporali per rilevare outlier

Rilevamento delle anomalie in Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Stagionalità

  • Pattern che si ripetono nella serie temporale
  • Ha una frequenza fissa:
    • oraria
    • giornaliera
    • settimanale
    • mensile, ecc.
  • Esempi:
    • Temperature giornaliere
    • Vendite di gelati
Rilevamento delle anomalie in Python

Stagionalità

Un lineplot dei prezzi di apertura delle azioni Google.

Rilevamento delle anomalie in 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>
Rilevamento delle anomalie in Python

Grafico della stagionalità

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

Un grafico della stagionalità dei prezzi di apertura delle azioni Google

Rilevamento delle anomalie in Python

Esempi di stagionalità

Esempi di stagionalità nelle serie temporali.

Rilevamento delle anomalie in Python

Grafico iniziale delle azioni

Un grafico iniziale dei prezzi di apertura delle azioni Google

Rilevamento delle anomalie in Python

Trend

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

Rilevamento delle anomalie in Python

Esempi di trend

Esempi di trend in serie temporali.

Rilevamento delle anomalie in Python

Residui

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

Un grafico dei residui dei prezzi di apertura delle azioni Google.

Rilevamento delle anomalie in Python

Scomposizione

figure = results.plot()

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

Tutte e tre le componenti della serie temporale visualizzate.

Rilevamento delle anomalie in Python

Addestrare un classificatore

# 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
Rilevamento delle anomalie in Python

Ayo berlatih!

Rilevamento delle anomalie in Python

Preparing Video For Download...