Czy istnieje kompleksowy pakiet open source (najlepiej w Pythonie lub R), który może być wykorzystywany do wykrywania anomalii w szeregach czasowych?
W scikit-learn znajduje się pakiet SVM jednej klasy, ale nie dotyczy on danych szeregów czasowych. Szukam bardziej wyrafinowanych pakietów, które na przykład wykorzystują sieci bayesowskie do wykrywania anomalii.
python
time-series
anomaly-detection
pythinker
źródło
źródło
Odpowiedzi:
Wiem, że jestem tu trochę spóźniony, ale tak, jest pakiet do wykrywania anomalii wraz z odstającymi kombinacjami ram.
Wciąż jest na wczesnym etapie rozwoju na github i wkrótce zostanie opublikowany w JMLR.
Pakiet jest w języku python, a nazwa pakietu to pyod ( https://github.com/yzhao062/Pyod ).
Ma wiele algorytmów dla następujących indywidualnych podejść:
Wreszcie, jeśli szukasz szeregów czasowych per se, wtedy ten link github będzie przydatny.
Ma następujące pakiety list do wykrywania wartości odstających od szeregów czasowych:
datastream.io
sylwetka na tle nieba
banpei
Wykrywanie anomalii
źródło
Istnieje wiele sposobów radzenia sobie z nieprawidłowościami szeregów czasowych
1) Jeśli znane są nieprawidłowości , zbuduj model klasyfikacji. Ten model służy do wykrywania tego samego rodzaju nieprawidłowości dla danych szeregów czasowych.
2) Jeśli nieprawidłowości są nieznane , to, co zrobiliśmy w naszej organizacji - jest kombinacją grupowania i klasyfikacji -
Najpierw użyj LOF / K-średnich / odległości Cooka, aby zidentyfikować wartości odstające. Przekształć całe dane w problem klasyfikacji, ponieważ mamy teraz 2 klasy - wartości odstające i normalne. Teraz zbuduj model klasyfikacji i uzyskaj reguły (model klasyfikacji) w celu identyfikacji nieprawidłowości w czasie wykonywania (dane szeregów czasowych).
3) Jeśli anomalie są nieznane , podczas moich badań najczęstszym sposobem identyfikacji anomalii jest zbudowanie normalnego modelu, a wszelkie odchylenia od normalnego modelu (błędu) są nieprawidłowe, więc w twoim przypadku prognozujesz swoje szeregi czasowe na następną godzinę, a następnie porównujesz z rzeczywistymi wartościami. Jeśli błąd jest większy niż oczekiwano, dzieje się coś nienormalnego.
Nie byłem w stanie znaleźć żadnego bezpośredniego pakietu w Pythonie lub R, aby to zrobić, ponieważ nikt nie wiedział, co jest naprawdę nienormalne: P, we wszystkich przypadkach było to związane z wykrywaniem wartości odstających.
kilka przydatnych linków
https://machinelearningstories.blogspot.com/2018/12/easiest-way-of-detection-abnormality.html
https://machinelearningstories.blogspot.com/2018/07/anomaly-detection-anomaly-detection-by.html
źródło
Spróbuj Biblii Proroka
Prorok to procedura prognozowania danych szeregów czasowych w oparciu o model addytywny, w którym trendy nieliniowe są dopasowane do sezonowości rocznej, tygodniowej i dziennej oraz efektów wakacyjnych. Działa najlepiej z szeregami czasowymi, które mają silne efekty sezonowe i kilka sezonów danych historycznych. Prorok jest odporny na brakujące dane i zmiany trendu i zazwyczaj dobrze radzi sobie z wartościami odstającymi.
Więcej na: Wykrywanie anomalii w szeregach czasowych z biblioteką Proroka
źródło