2017-02-06 10 views
5

Github Link LUMINOL Biblioteki: https://github.com/linkedin/luminolPrzykład roboczym LUMINOL wykrywania anomalii i korelacji Bibliotece przez LinkedIn

Czy ktoś może wyjaśnić mi z przykładowy kod, jak wykorzystać ten moduł do znalezienia nieprawidłowości w zbiorze danych.

Chcę użyć tego modułu do znajdowania anomalii w moich szeregach czasowych danych.

P.S .: Wypróbowałem przykład 1 podany w pliku README.md, ale otrzymałem błąd, więc proszę o podanie działającego przykładu na znalezienie anomalii.

Przykład 1 Umieść wyniki anomalii na liście.

from luminol.anomaly_detector import AnomalyDetector 
my_detector = AnomalyDetector(ts) 
score = my_detector.get_all_scores() 
anom_score = list() 
for (timestamp, value) in score.iteritems(): 
    t_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp)) 
    anom_score.append([t_str, value]) 

Pierwsze Wartość błędu (22 'Nieprawidłowy argument') Zgodnie: t_str = time.strftime ("Y%%%% d m-H:% M% S, time.localtime (timestamp))

Używanie Pythona 2.7

Thanks :)

Odpowiedz

1

Przykład działa po dodaniu import time i definiowania ts. Zastosowanie time.localtime zakłada, że ​​dane początkowe używają czasu unixowego. Dodatkowe parametry dla AnomalyDetector są oznaczone here. Dostępne algorytmy są zdefiniowane jako here. Jeśli wartość algorithm_name nie zostanie określona, ​​AnomalyDetector powróci do korzystania z default_detector, która używa ważonej sumy exponential averages i. Te slides mogą być również pomocne.

Data.csv

1490323038, 3 
1490323048, 4 
1490323058, 6 
1490323068, 78 
1490323078, 67 
1490323088, 5 

app.py

from luminol.anomaly_detector import AnomalyDetector 
import time 

# ts = 'data.csv' # or 
ts = { 
    '1490323038': 3, 
    '1490323048': 4, 
    '1490323058': 6, 
    '1490323068': 78, 
    '1490323078': 67, 
    '1490323088': 5, 
} 

my_detector = AnomalyDetector(ts) 
score = my_detector.get_all_scores() 
anom_score = [] 

for (timestamp, value) in score.iteritems(): 
    t_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp)) 
    anom_score.append([t_str, value]) 

for score in anom_score: 
    print(score) 

wyjściowa:

['2017-03-23 19:37:18', 0.0] 
['2017-03-23 19:37:28', 0.02482518793211144] 
['2017-03-23 19:37:38', 0.06951052620991202] 
['2017-03-23 19:37:48', 2.5187085350547482] 
['2017-03-23 19:37:58', 1.201340494410737] 
['2017-03-23 19:38:08', 0.9673414624904575] 
Powiązane problemy