Phân rã chuỗi thời gian để phát hiện ngoại lệ

Phát hiện bất thường với Python

Bekhruz (Bex) Tuychiev

Kaggle Master, Data Science Content Creator

Tính thời vụ

  • Mẫu lặp lại trong chuỗi thời gian
  • Có tần suất cố định:
    • theo giờ
    • theo ngày
    • theo tuần
    • theo tháng, v.v.
  • Ví dụ:
    • Nhiệt độ hằng ngày
    • Doanh số kem
Phát hiện bất thường với Python

Tính thời vụ

Biểu đồ đường giá mở cửa cổ phiếu Google.

Phát hiện bất thường vớ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>
Phát hiện bất thường với Python

Vẽ tính thời vụ

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

Biểu đồ tính thời vụ của giá mở cửa cổ phiếu Google

Phát hiện bất thường với Python

Ví dụ về tính thời vụ

Ví dụ về tính thời vụ trong chuỗi thời gian.

Phát hiện bất thường với Python

Biểu đồ cổ phiếu ban đầu

Biểu đồ ban đầu giá mở cửa cổ phiếu Google

Phát hiện bất thường với Python

Xu hướng

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

Phát hiện bất thường với Python

Ví dụ về xu hướng

Ví dụ về xu hướng chuỗi thời gian.

Phát hiện bất thường với Python

Phần dư

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

Biểu đồ phần dư của giá mở cửa cổ phiếu Google.

Phát hiện bất thường với Python

Phân rã

figure = results.plot()

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

Ba thành phần của chuỗi thời gian được trực quan hóa.

Phát hiện bất thường với Python

Huấn luyện bộ phân loại

# 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
Phát hiện bất thường với Python

Ayo berlatih!

Phát hiện bất thường với Python

Preparing Video For Download...