Tidsseriedekomposition för avvikelsedetektering

Avvikelsedetektering i Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Säsongsvariation

  • Återkommande mönster i tidsserien
  • Har en fast frekvens:
    • varje timme
    • dagligen
    • veckovis
    • månadsvis, osv.
  • Exempel:
    • Dagliga temperaturer
    • Glasssförsäljning
Avvikelsedetektering i Python

Säsongsvariation

Ett linjediagram över öppningspriser för Google-aktier.

Avvikelsedetektering i 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>
Avvikelsedetektering i Python

Visualisera säsongsvariation

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

Ett diagram över säsongsvariation i öppningspriser för Google-aktier

Avvikelsedetektering i Python

Exempel på säsongsvariation

Exempel på säsongsvariation i tidsserier.

Avvikelsedetektering i Python

Inledande aktiekursdiagram

Inledande diagram över öppningspriser för Google-aktier

Avvikelsedetektering i Python

Trend

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

Avvikelsedetektering i Python

Exempel på trender

Exempel på trender i tidsserier.

Avvikelsedetektering i Python

Residualer

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

Ett diagram över residualer för öppningspriser för Google-aktier.

Avvikelsedetektering i Python

Dekomposition

figure = results.plot()

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

Alla tre komponenter i tidsserien visualiserade.

Avvikelsedetektering i Python

Anpassa en klassificerare

# 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
Avvikelsedetektering i Python

Nu kör vi en övning!

Avvikelsedetektering i Python

Preparing Video For Download...