Tuesday 19 December 2017

Przenoszenie średniej szczytowej detekcji


Potrzebujemy systemu wczesnego ostrzegania Mam do czynienia z serwerem, o którym wiadomo, że mają problemy z wydajnością pod obciążeniem Błędy są rejestrowane w bazie danych wraz z znacznikiem czasu Istnieje kilka czynności, które mogą zostać podjęte w celu zmniejszenia obciążenia serwera, ale tylko wtedy, ktoś zdaje sobie sprawę z tego problemu. Pozwala określić, ile błędów wystąpiły, w jaki sposób można zidentyfikować początek skoku błędów w czasie rzeczywistym Możemy obliczyć okresowo lub na każdym wystąpieniu błędu. Jesteśmy zaniepokojeni sporadycznymi błędami, ale don t mają określony próg Mogę po prostu powiadomić kogoś za każdym razem, gdy otrzymamy, powiedzmy, trzy błędy w ciągu pięciu minut, ale jestem pewien, że jest lepszy sposób. Chciałbym być w stanie dostosować czułość algorytmu na podstawie informacji zwrotnych od administratorów Na razie chcielibyśmy być dość wrażliwi, mimo że wiemy, że możemy spodziewać się fałszywych pozytywów. Nie jestem statystyką, co jest oczywiste, a wdrożenie tego wymaga stosunkowo prostego z naszymi istniejącymi narzędziami SQL Serve r i starą szkołę ASP JScript Nie szukam odpowiedzi w kodzie, ale jeśli wymaga dodatkowego oprogramowania, to chyba wygrana praca dla nas, chociaż chętnie przyjmuję niewłaściwe, ale idealne rozwiązania jako komentarz, dla mojej ciekawości. 12 w 21 44. Minęło 5 miesięcy od kiedy zadałeś Ci to pytanie i miejmy nadzieję, że coś wymyśliłeś Mam zamiar przedstawić kilka różnych sugestii tutaj, mając nadzieję, że znajdziesz je w innych scenariuszach. Nie myślę, że musisz spojrzeć na algorytmy wykrywania skoków. A o to idzie Zacznijmy od obrazu błędów występujących na osi czasu. Czego chcesz, to wskaźnik liczbowy, miarę szybkości występowania błędów I to powinieneś być w stanie ustalić - Twoi administratorzy powinni mieć możliwość ustalania limitów, które kontrolują, z jaką błędy czułości stają się ostrzeżeniami. Wspomniałeś o skokach, najłatwiejszym sposobem na zdobycie ostrza jest narysowanie histogramu w odstępach co 20 minut. Twoi administratorzy określiłby czułość ba sed na wysokości słupków i najbardziej błędne tolerowanie w odstępie 20-minutowym. W tym momencie możesz się zastanawiać, czy 20 minutowa długość okna może zostać skorygowana. Może i możesz pomyśleć o długości okna, gdy definiuje to słowo razem w wyniku występowania błędów w frazie. Co to jest problem z tą metodą? szczególny scenariusz Cóż, twoja zmienna jest liczbą całkowitą, prawdopodobnie mniejszą niż 3 Nie ustawiłeś progu na 1, ponieważ oznacza to, że każdy błąd jest ostrzeżeniem, które nie wymaga algorytmu. Więc twoje wybory na progu wynoszą 2 i 3 To nie daje administratorom systemu dużo pełnej kontroli. Zamiast liczyć błędy w oknie czasowym, należy śledzić liczbę minut między bieżącymi i ostatnimi błędami Jeśli ta wartość jest zbyt mała, oznacza to, że Twoje błędy są robi się zbyt często i musisz wzbudzić ostrzeżenie. Twoi administratorzy prawdopodobnie ustawią limit na 10, tzn. jeśli błędy dzieją się krócej niż 10 minut, to jest problem lub 20 minut. Może 30 minut dla systemu mającego mniej ważności. Ta metoda prow Większa elastyczność W przeciwieństwie do pomiaru 1, dla którego można było pracować z małym zbiorem wartości, teraz masz środek, który zapewnia dobre 20-30 wartości. Administratorzy mają zatem więcej możliwości dostrajania. podejście do tego problemu Zamiast patrzeć na częstotliwości błędów, można przewidzieć błędy przed ich wystąpieniem. Wspomniałeś, że takie zachowanie wystąpiło na pojedynczym serwerze, o którym wiadomo, że mają problemy z wydajnością Możesz monitorować niektóre wskaźniki skuteczności na tej maszynie i powiedz im, kiedy wystąpi błąd Będziemy zwracać uwagę na zużycie CPU, zużycie pamięci i wskaźniki KPI związane z dyskiem IO Jeśli zużycie procesora przekroczy 80, system będzie spowolnić. Wiem, że powiedziałeś, że nie chcesz instalować żadnego oprogramowania i to prawda, że ​​możesz to zrobić przy użyciu PerfMon Ale istnieją tam bezpłatne narzędzia, które zrobią to dla Ciebie, podobnie jak Nagios i Zenoss. A dla osób, które przybyły tutaj nadzieję aby znaleźć coś na temat wykrywania kolizji w serii czasowej. Zapelowa detekcja w serii czasu. Najprostszą rzeczą, którą musisz zacząć robić jest obliczanie średniej ruchomej wartości wejściowych Jeśli seria jest x1, x2, to obliczysz średnia ruchoma po każdej obserwacji jako. Mk 1 - alpha M alpha xk. where alpha określi, jaka masa daje najmniejszą wartość xk. Jeśli nowa wartość przekroczyła średnią ruchomej, na przykład. Po podniesieniu ostrzeżenia. Wszystkie średnie są ładne podczas pracy z danymi w czasie rzeczywistym Ale przypuśćmy, że masz już kilka danych w tabeli i po prostu chcesz uruchamiać zapytania SQL w celu znalezienia spikes. I sugerowałbym średnią wartość swojego czasu-seriespute odchylenie standardowe sigma. Separuj te wartości, które są większe niż 2 sigma powyżej średniej, być może będziesz musiał dostosować ten czynnik 2. Więcej informacji na temat serii czasów. Wiele realnych czasów serii wykazuje cykliczne zachowanie. Jest model o nazwie ARIMA, który pomaga wydobywać te cykle z cyklu czasowego. Więcej średnich, które biorą pod uwagę cykliczne zachowanie Holt i Winters. I szukał algorytmów wykrywania online i głównie znaleźć artykuły naukowe, które są nad moją głową Mogą trzymać się odpowiedzi, ale don t przechodzą mój osobisty prosty test Popraw mnie jeśli się mylę, ale nie myślę, że szukam szczytowego algorytmu wykrywania Gdy błędy osiągnęły szczyt, wydaje się, że z definicji brakowało mi okazji, aby poprawić najgorsze wydanie Apologies, jeśli moje wykorzystanie spike był mylący I Zgadnij, muszę przewidzieć ciągły wzrost błędów lub zidentyfikować duży krok w górę dbenton 25 października 12 w 15 26. 1 dla statystycznej kontroli procesu, jest kilka użytecznych informacji tutaj na temat wykrywania kroku. For SPC nie jest zbyt trudne, aby napisać wdrożenie reguł Western Electric Rules lub Nelson Rules. Jest utworzyć USP w serwerze SQL, który będzie powtarzać za pomocą zestawu danych i ping każdego punktu przeciw regułom używającym jego sąsiednich punktów Może podsumować liczbę błędów na godzinę w zależności od Twoich potrzeb Ten typ dotyczy pytania przesłanego na temat przepełnienia stosu podczas gdy nazad po prostu napisał szybką odpowiedź, jeśli pomaga statystycznej kontroli procesów w Charts SQL Server 2008 R2.Update Najlepszym algorytmem do tej pory jest ten jeden. Te pytanie e xplores solidne algorytmy wykrywania nagłych szczytów w danych czasowych w czasie rzeczywistym. Przestrzegaj poniższego zestawu danych. Format Matlab, ale nie chodzi o język, ale o algorytm. Można wyraźnie zobaczyć, że istnieją trzy duże szczyty i niektóre małe szczyty Ten zestaw danych jest szczególnym przykładem klasy zestawów czasowych, że chodzi o kwestię o tej klasie zestawów danych dwa ogólne cechy. Nie ma podstawowego hałasu o ogólnym mean. There są duże szczyty lub wyższych punktów danych, które znacznie różnią się od hałasu. Nież również zakładam następujące. szerokość szczytów nie można określić wcześniej. Kąży szczyt wyraźnie różni się od innych wartości. Używany algorytm musi obliczyć czas w czasie rzeczywistym, więc zmieniać się z każdym nowym punktem odniesienia. Aby taką sytuację trzeba skonstruować wartość brzegową, która wyzwala sygnały. Jednakże wartość brzegowa nie może być statyczna i musi być określona w czasie rzeczywistym na podstawie algorytm. My pytanie co to jest dobry algorytm obliczania takich progów w czasie rzeczywistym Czy istnieją specyficzne algorytmy dla takich sytuacji Jakie są najbardziej znane algorytmy. Rob ust algorytmów lub użytecznych spostrzeżeń są bardzo mile widziane mogą odpowiedzieć w dowolnym języku to chodzi o algorytm. Użyłem tego do wykrycia gwałtownej zmiany intensywności światła na fotoczułarce zrobiłem to przez przeciętną średnią i ignorując punkty danych, które są większy niż próg Warto zauważyć, że ten próg różni się od progu określającego szczyt Więc powiedz, że zawiera się tylko punkty danych, które są w obrębie jednego stddev do średniej ruchomej i rozważ te punkty danych z więcej niż trzema stddev jako szczytami Ten algorytm bardzo dobrze dla naszego kontekstu aplikacji tym razem justhalf 28 marca w 7 54.Ah, widzę, że nie spodziewałem się go w formie kodu Jeśli wcześniej widziałem to pytanie prawdopodobnie otrzymasz tę odpowiedź znacznie szybciej D W każdym razie, mój wniosek tego czasu było wykrycie, czy fotosensor jest zasłonięty od źródła światła otoczenia, dlatego potrzebujemy średniej ruchomej, ponieważ źródło światła otoczenia może się stopniowo zmieniać w czasie Stworzyliśmy to jako grę, w której y powinieneś podnieść rękę nad czujnikami po określonym wzorze D justhalf 28 marca 14 w 10 05. wygładzony z-score algo bardzo solidny algorytm progowy. I skonstruował algorytm, który działa bardzo dobrze dla tego typu zestawów danych Opiera się on na zasadzie dyspersji, jeśli nowy punkt danych to dana liczba odchyleń standardowych od pewnej średniej ruchomej, sygnały algorytmu zwane również z-score Algorytm jest bardzo solidny, ponieważ konstruuje oddzielną średnią i odchylenie ruchu, tak że sygnały nie uszkodzą progu Sygnały przyszłych sygnałów są więc identyfikowane z taką samą dokładnością, niezależnie od ilości poprzednich sygnałów Algorytm pobiera 3 wartości opóźnienia opóźnienia progu okna zerowego, w którym sygnał algorytmu ma wpływ i wpływa na 0 i 1 nowe sygnały na średnim i odchyleniu standardowym Na przykład opóźnienie wynoszące 5 będzie wykorzystywać ostatnie 5 obserwacji w celu wygładzenia danych Próg 3 5 sygnalizuje, nt jest 3 5 standardowych odchyleń od ruchomych średnich I wpływ 0 5 daje sygnały o połowę wpływu, które mają normalne punkty pomiarowe Podobnie, wpływ 0 ignoruje sygnały całkowicie dla ponownego obliczenia nowego progu, wpływ jest więc najsilniejszy Opcja 1 jest najmniejsza. Jest on następujący. Kod Matlaba dla tego demo znajdziesz pod koniec tej odpowiedzi Aby skorzystać z demo, wystarczy go uruchomić i utworzyć serię czasu, klikając na górny schemat algorytm zaczyna działać po rysowaniu opóźnienia liczba obserwacji. Appendix 1 Matlab i kod R dla algorytmu. Każdy kod obu języków przyniesie następujący wynik dla danych oryginalnego pytania. Implementacje w innych językach. Golang Xeoncross. Appendix 2 Kod demonstracyjny Matlab kliknij, aby data. The kod został napisany w taki sposób, że przelicza pełny algorytm za każdym razem Oczywiście można też nieco zmienić kod tak, że filtrowane avgFilter i stdFilter sa ved, a wartości są po prostu aktualizowane, gdy pojawiają się nowe informacje, sprawi to, że algorytm będzie znacznie szybszy W celach demonstracyjnych postanowiłem umieścić cały kod razem w jednej funkcji. Jeśli skorzystasz z tej funkcji, proszę mi zaufać lub ta odpowiedź Jeśli masz jakieś pytania dotyczące tego algorytmu, wpisz je w poniższych komentarzach lub dotrzyj do mnie na LinkedIn. aired 25 marca w 16 16.One podejście jest wykrywanie pików na podstawie następującej obserwacji. Time t jest szczytem, ​​jeśli yty t-1 ytyt 1. Unika się fałszywych alarmów, czekając aż upstream się skończy Nie jest to dokładnie czas w czasie rzeczywistym w tym sensie, że traci on szczyt o jedną czułość dt może być kontrolowany przez wymaganie marginesu porównania Istnieje handel off między hałaśliwym wykrywaniem a opóźnieniem czasowym detekcji Możesz wzbogacić model poprzez dodanie większej liczby parametrów. where dt i m są parametrami do kontrolowania czułości i opóźnienia czasowego. Jest to, co dostajesz ze wspomnianym algorytmem. Jest ten kod do odtworzenia t działał w python. By ustawienie m 0 5 można uzyskać czysty sygnał z tylko jednym fałszywym pozytywnym. In przetwarzania sygnału, wykrywanie szczytowe jest często dokonywane przez transformatę wavelet W zasadzie zrobić dyskretny transformatę wavelet na swoim czasie szereg danych Zero-przejścia w współczynniki szczegółów, które są zwracane będą odpowiadać szczytom w sygnale serii czasowej Otrzymujesz różne amplitudy szczytowe wykryte przy różnych poziomach współczynników szczegółowości, co daje wielopoziomową rozdzielczość. 31 marca 14 w 20 54. Jeśli wartość graniczna lub inne kryteria zależy od przyszłych wartości, to jedynym rozwiązaniem bez maszyny czasowej lub innej wiedzy na temat przyszłych wartości jest opóźnienie każdej decyzji, dopóki nie ma wystarczających przyszłych wartości. Jeśli chcesz uzyskać poziom powyżej średniej, która rozciąga się na przykład na 20 punktów, to musisz poczekać, aż co najmniej 19 punktów przed każdą szczytową decyzją, albo następny nowy punkt może całkowicie wyrzucić Twój próg 19 punktów temu. Obecna fabuła nie ma żadnych szczytów, chyba że w jakiś sposób z góry wiedzą, że następny punkt nie jest t1e99, który po zregulowaniu wymiaru Y w wątku, byłby płaski aż do tego punktu. odpowiedzi z 24 marca na 1 57. uważaj na sygnał w dziedzinie czasowej i chcesz aby wygładzyć sygnał Przekazywanie średnich i filtrów Gaussa, które są używane Jak wybrać, który jest używany dla what. What są warunki, w których Gaussian jest lepszy i warunki, w których średnia ruchoma jest better. What staram się zrobić z tym sygnałem , detekcja szczytowa początkowo, a następnie zastosowanie małych okien z każdej części i dowiedzieć się, zmiany częstotliwości Doppler przesunięcia dla każdej części, aby dowiedzieć się kierunku ruchu od zmiany częstotliwości Chcę wygładzić sygnał w dziedzinie czasu bez utraty informacji w domena częstotliwości Myślałem, że część obliczania przesunięcia Dopplera, przy użyciu STFT byłby dobrym odniesienia może być podane do niektórych papierów, które mogłyby również być bardzo przydatne. asked 29 września 16 w 11 12.

No comments:

Post a Comment