W aplikacji internetowej otrzymuję wyzwalacz za każdym razem, gdy wystąpi zdarzenie. Chcę wykryć "gwałtowne" szczyty częstotliwości, które prawdopodobnie przekładają się na nienormalne zachowanie.Wykrywanie w czasie rzeczywistym szczytów częstotliwości zdarzeń
mogę myśleć o dwóch naiwnych sposobów osiągnięcia tego:
Stały próg - „Jeśli więcej niż 500 zdarzeń w ciągu minuty, chyba czegoś złego”. Ta metoda nie może obsługiwać gładkich przekroczeń progów lub stale zwiększać ruchu, chyba że aplikacja może okresowo dostosowywać wartość progową.
Hierarchia powiązana z oknem - Podziel okno na N równych (?) Przedziałów. Podczas N> 0, oblicz częstotliwość zdarzeń w [teraz- (N * interval_length), teraz]. Zapisz go na liście. Zmniejsz N o 1. Powtórz. Wykryj listy odstające. Jeśli istnieje poboczna większa niż średnia częstotliwość [teraz-window_length, teraz], czegoś chyba nie tak.”
Chciałbym wiedzieć, czy jest raczej powszechne/standardowe rozwiązanie dla tego problemu lub . czy można myśleć o niczym bardziej efektywny lub eleganckim
góry dziękuję
EDIT -. Kolejna propozycja
mój przyjaciel zasugerował nieprawidłowej wykrywanie zachowanie z Holt-Winters prognozowanie. Możesz znaleźć więcej informacji na temat tej metody w poniższych linków:
http://www.hpl.hp.com/news/events/csc/2005/jake_slides.pdf
http://www.usenix.org/events/lisa00/full_papers/brutlag/brutlag_html/
Tx za udzielenie odpowiedzi =) Niektóre pytania tutaj. A) Im bardziej nowe wydarzenie, tym większa waga, prawda? b) Co oznacza "a"? Czy nie mógłbym po prostu dopasować T, aby uniknąć multiplikacji "n"? – sawidis
Dobre spostrzeżenia. Zapomniałem o indeksie w 'α_i'. Jeśli chcesz mieć specjalną wagę. Może to być 'a_i = 1' dla każdego' i'. Jeśli chcesz przesunąć T w prawo i dodać nową wartość x_n, masz rację. –
I tak, nowszy ==> ważniejszy. –