ADTK lanjutan

2.9.2

ADTK lanjutan

Diperbarui 2020-02-12 Baca 2 menit
Ringkasan
  • Menyusun tujuan metode, asumsi, dan kondisi penggunaan yang tepat.
  • Menilai bagaimana aturan update atau kriteria split memengaruhi perilaku model.
  • Menggunakan contoh implementasi untuk memandu keputusan tuning parameter.

Intuisi #

Anomaly Detection Toolkit (ADTK) digunakan untuk melakukan deteksi anomali. Deteksi anomali diterapkan pada data buatan multidimensi. Kali ini, deteksi anomali akan diterapkan pada data dengan beberapa dimensi.

Penjelasan Rinci #

Anomaly Detection Toolkit (ADTK) digunakan untuk melakukan deteksi anomali. Deteksi anomali diterapkan pada data buatan multidimensi. Kali ini, deteksi anomali akan diterapkan pada data dengan beberapa dimensi.

1
2
3
4
5
6
7
8
import numpy as np
import pandas as pd
from adtk.data import validate_series

s_train = pd.read_csv("./training.csv", index_col="timestamp", parse_dates=True)
s_train = validate_series(s_train)
s_train["value2"] = s_train["value"].apply(lambda v: np.sin(v) + np.cos(v))
s_train

valuevalue2
timestamp
2014-04-01 00:00:0018.0904860.037230
2014-04-01 00:05:0020.3598431.058643
2014-04-01 00:10:0021.1054700.141581
2014-04-01 00:15:0021.1515850.076564
2014-04-01 00:20:0018.1371410.103122
.........
2014-04-14 23:35:0018.2692900.288071
2014-04-14 23:40:0019.0873511.207420
2014-04-14 23:45:0019.5946891.413067
2014-04-14 23:50:0019.7678171.401750
2014-04-14 23:55:0020.4791560.939501

4032 rows × 2 columns

1
2
3
from adtk.visualization import plot

plot(s_train)

Deteksi anomali dengan ADTK (Bagian 2) | Window, musiman, da… (diagram)

Perbandingan Metode Deteksi Anomali #

Deteksi anomali dilakukan menggunakan SeasonalAD. Metode lainnya dapat dilihat di Detector.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import matplotlib.pyplot as plt
from adtk.detector import OutlierDetector, PcaAD, RegressionAD
from sklearn.linear_model import LinearRegression
from sklearn.neighbors import LocalOutlierFactor

model_dict = {
    "OutlierDetector": OutlierDetector(LocalOutlierFactor(contamination=0.05)),
    "RegressionAD": RegressionAD(regressor=LinearRegression(), target="value2", c=3.0),
    "PcaAD": PcaAD(k=2),
}

for model_name, model in model_dict.items():
    anomalies = model.fit_detect(s_train)

    plot(
        s_train,
        anomaly=anomalies,
        ts_linewidth=1,
        ts_markersize=3,
        anomaly_color="red",
        anomaly_alpha=0.3,
        curve_group="all",
    )
    plt.title(model_name)
    plt.show()

Metode lainnya dapat dilihat di Detector (diagram)

Metode lainnya dapat dilihat di Detector (diagram)

Metode lainnya dapat dilihat di Detector (diagram)