Tijdreeksdecompositie voor outlierdetectie

Anomaly Detection in Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Seizoenspatroon

  • Herhalende patronen in de tijdreeks
  • Heeft een vaste frequentie:
    • elk uur
    • dagelijks
    • wekelijks
    • maandelijks, enz.
  • Voorbeelden:
    • Dagelijkse temperaturen
    • Verkoop van ijs
Anomaly Detection in Python

Seizoenspatroon

Een lijnplot van de openingskoersen van Google-aandelen.

Anomaly Detection 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>
Anomaly Detection in Python

Seizoenspatroon plotten

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

Een plot van het seizoenspatroon van de openingskoersen van Google-aandelen

Anomaly Detection in Python

Voorbeelden seizoenspatroon

Voorbeelden van seizoenspatroon in tijdreeksen.

Anomaly Detection in Python

Eerste aandelenplot

Een eerste plot van de openingskoersen van Google-aandelen

Anomaly Detection in Python

Trend

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

Anomaly Detection in Python

Trendvoorbeelden

Voorbeelden van trends in tijdreeksen.

Anomaly Detection in Python

Residuen

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

Een plot van de residuen van de openingskoersen van Google-aandelen.

Anomaly Detection in Python

Decompositie

figure = results.plot()

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

Alle drie de componenten van een tijdreeks gevisualiseerd.

Anomaly Detection in Python

Classifier fitten

# 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
Anomaly Detection in Python

Laten we oefenen!

Anomaly Detection in Python

Preparing Video For Download...