Udostępnij za pośrednictwem


Wykrywanie anomalii szeregów czasowych

Ważne

Obsługa programu Machine Learning Studio (wersja klasyczna) zakończy się 31 sierpnia 2024 r. Zalecamy przejście do usługi Azure Machine Learning przed tym terminem.

Od 1 grudnia 2021 r. nie będzie można tworzyć nowych zasobów programu Machine Learning Studio (wersja klasyczna). Do 31 sierpnia 2024 r. można będzie nadal korzystać z istniejących zasobów programu Machine Learning Studio (wersja klasyczna).

Dokumentacja programu ML Studio (wersja klasyczna) jest wycofywana i może nie być aktualizowana w przyszłości.

Wykrywa anomalie w wejściowych danych szeregów czasowych.

Kategoria: Szeregi czasowe

Uwaga

Dotyczy: tylko Machine Learning Studio (wersja klasyczna)

Podobne moduły przeciągania i upuszczania są dostępne w projektancie Azure Machine Learning.

Omówienie modułu

W tym artykule opisano sposób używania modułu wykrywania anomalii szeregów czasowych w programie Machine Learning Studio (wersja klasyczna) do wykrywania anomalii w danych szeregów czasowych. W module przedstawiono normalne cechy operacyjne szeregu czasowego podanego jako dane wejściowe i wykorzystuje te informacje do wykrywania odchyleń od normalnego wzorca. Moduł może wykrywać zarówno zmiany w ogólnym trendzie, jak i zmiany wielkości lub zakresu wartości.

Wykrywanie zmian w danych szeregów czasowych ma szerokie aplikacje. Można go na przykład użyć do monitorowania czujników, sieci lub użycia zasobów w czasie zbliżonym do rzeczywistego. Śledząc błędy usługi, użycie usługi i inne kluczowe wskaźniki wydajności, możesz szybko reagować na krytyczne anomalie. Inne aplikacje obejmują opiekę zdrowotną i finanse.

Metody wykrywania anomalii

Wykrywanie anomalii to problem ze znalezieniem wzorców w danych, które nie są zgodne z modelem "normalnego" zachowania. Typowe podejścia do wykrywania takich zmian używają prostych progów obliczanych przez człowieka lub średniej i odchylenia standardowego w celu określenia, kiedy dane znacznie odbiegają od średniej.

Jednak takie proste podejścia nie są łatwo dostosowywane do danych szeregów czasowych:

  • Duża liczba fałszywych anomalii jest generowana

  • Metody nie mają zastosowania do zmieniania wartości danych

  • Nie można łatwo skalować do dużych szeregów czasowych

Ten moduł zawiera dwie dodatkowe metody oceny wariancji od trendu szeregów czasowych:

  • Mierzenie wielkości zmian w górę i w dół

    Na przykład liczba żądań w usłudze internetowej może być najlepsza przez pewien czas, a następnie znacznie się zwiększa.

  • Mierzenie kierunku i czasu trwania trendów: pozytywne i negatywne zmiany

    Na przykład trwały trend wzrostowy długości kolejki usługi może wskazywać na podstawowy problem. Mimo że ogólny trend stale rośnie i dlatego może być uznawany za stabilny, zmiana nachylenia może być oflagowana jako anomalia. Z drugiej strony, jeśli monitorujesz użycie pamięci serwera, stały spadek rozmiaru wolnej pamięci może wskazywać na problem.

Przykłady nietypowych wzorców w szeregach czasowych

Zmiany na poziomie w górę i w dół

Załóżmy na przykład, że monitorujesz liczbę żądań dziennie w usłudze internetowej w danym okresie, a liczba żądań wydaje się pozostawać w określonym zakresie. Jednak po aktualizacji usługi internetowej liczba żądań do tej usługi internetowej ulega zmianie. Nowy trend może być wyższy lub niższy niż oryginalny trend; można wykryć zarówno skoki w górę, jak i w dół.

upward and downward level changes

Pozytywne lub negatywne zmiany trendów

Załóżmy na przykład, że monitorujesz długość kolejki w witrynie pomocy technicznej usługi. Trwały trend w górę może wskazywać na problem z usługą bazową.

W innych przypadkach trwały negatywny trend może być anomalią. Jeśli na przykład monitorujesz użycie pamięci na serwerze, po zmniejszeniu rozmiaru wolnej pamięci może to wskazywać na potencjalny wyciek pamięci.

positive or negative trend change

Zasoby

Aby uzyskać więcej informacji na temat badań będących podstawą tego podejścia, zobacz następujące artykuły:

  • Shen-Shyang Ho; Wechsler, H., "A Martingale Framework for Detecting Changes in Data Strumienie by Testing Exchangeability", Pattern Analysis and Machine Intelligence, IEEE Transactions , vol.32, no.12, pp.2113,2127, Grudzień 2010

    Źródła i cytaty (Microsoft Academic)

  • Valentina Fedorova, Alex J. Gammerman, Ilia Nouretdinov, Vladimir Vovk, "Plug-in martingales do testowania wymiany on-line", ICML 2012

    Źródła i cytaty (Microsoft Academic)

  • Władimir Vovk, Ilia Nouretdinov, Alex J. Gammerman, "Testing Exchangeability Online", ICML 2003.

    Źródła i cytaty (Microsoft Academic)

Jak skonfigurować wykrywanie anomalii szeregów czasowych

  1. Dodaj moduł Wykrywania anomalii szeregów czasowych do eksperymentu i połącz zestaw danych zawierający szereg czasowy.

    Zestaw danych używany jako dane wejściowe musi zawierać co najmniej jedną kolumnę zawierającą wartości daty/godziny w formacie ciągu, a drugą kolumnę zawierającą wartości trendu w formacie liczbowym. Inne kolumny są ignorowane.

    Ponieważ każdy wiersz odpowiada punktowi danych w szeregu czasowym reprezentującym wartość w tym czasie, wartości czasu powinny być unikatowe.

  2. Kolumna danych: wybierz jedną kolumnę w zestawie danych, która zawiera wartości danych liczbowych. Te wartości to punkty danych trendu, które chcesz modelować, takie jak sumy populacji w czasie, koszty na miesiąc lub temperatury w pewnym okresie.

  3. Kolumna czasu: wybierz jedną kolumnę w zestawie danych, która zawiera skojarzona wartość szeregów czasowych.

    Kolumna musi zawierać prawidłowe wartości daty/godziny, co oznacza, że wszystkie daty muszą mieścić się w zakresie dat obsługiwanych przez .NET Framework.

    Kolumna Time musi używać typu danych DateTime. Jeśli daty są w formacie ciągu, możesz je rzutować przy użyciu modułu Apply SQL Transformation (Zastosuj SQL Transformation) lub przekonwertować je przy użyciu modułu Execute R Script (Wykonywanie skryptu języka R). Jeśli daty są reprezentowane jako liczby całkowite, należy również użyć odpowiedniej funkcji konwersji daty/godziny do reprezentowania wartości przy użyciu prawidłowego formatu daty/godziny.

    Na przykład następująca instrukcja SQL zmienia wartość daty szeregowej Excel na format daty/godziny:

     SELECT CAST([SerialDate]  AS SmallDateTime) as [NewValidDate] from t1;  
    

    Po poprawnym formacie wartości daty użyj modułu Edit Metadata (Edytowanie metadanych), aby ustawić typ kolumny na DateTime.

  4. Typ Martingale: wybierz funkcję martingale do użycia.

    • PowerAvg. Ta opcja jest marginalizowaną implementacją władzy martingale.

      Wartość domyślna to PowerAvg bez dodatkowych parametrów. Ta opcja zapewnia bardziej stabilne narzędzie do wykrywania anomalii i powinno być odpowiednie dla większości potrzeb.

    • Zasilanie. Nie marginalizowane wdrożenie władzy martingale.

      Opcja Zasilania umożliwia użytkownikom podanie wartości z zakresu od 0 do 1 dla parametru Epsilon w celu kontrolowania wrażliwości detektora. Ogólnie rzecz biorąc, wyższa wartość epsilon oznacza większą wrażliwość na anomalie, ale mniej pewności.

    Aby uzyskać definicję martingales i metod używanych w tym module, zobacz: Wykrywanie anomalii przy użyciu uczenia maszynowego w celu wykrywania nieprawidłowości w danych szeregów czasowych

  5. Typ funkcji dziwności: ta opcja jest używana do określonych typów anomalii. Obsługiwane są trzy opcje, które nie wymagają dalszych parametrów:

    • RangePercentile.

      Jest to ustawienie domyślne i jest używane głównie do wykrywania zmian na poziomie.

    • SlowPosTrend. Wybierz tę opcję, aby wykryć pozytywne zmiany trendu.

    • SlowNegTrend. Wybierz tę opcję, aby wykryć negatywne zmiany trendu.

  6. Długość wartości Martingale i Strangeness: określ rozmiar okna historii, który jest używany do obliczania wartości martingale w historii wyszukiwania.

    Wartość domyślna to 500, ale można określić dowolną liczbę całkowitą z zakresu od 0 do 5000. W przypadku dużych szeregów czasowych wartość domyślna powinna działać dobrze. W przypadku mniejszych szeregów czasowych można spróbować oszacować wartość oczekiwanej długości nietypowego zachowania.

    Zalecamy ustawienie tych dwóch parametrów na tę samą wartość.

  7. Długość wartości dziwności: określ długość okna historii używanego do obliczania dziwności w każdym punkcie danych.

    Wartość domyślna to 500, ale można określić dowolną liczbę całkowitą z zakresu od 0 do 5000.

    Ten parametr ma te same ograniczenia co długość Martingale. Oznacza to, że należy ustawić wartość na szacowaną liczbę punktów danych potrzebnych do poznania "normalnego" zachowania.

    Wartość domyślna 500 działa dobrze w większości przypadków, ale jeśli skala, w której jest mierzona "normalność", może być korzystne, aby długość wartości dziwności była większa niż Długość Martingale.

    Jeśli na przykład monitorujesz błędy i zakładasz, że punkty danych są przechwytywane w odstępach 15 minut, czas potrzebny do poznania normalnego trendu może się znacznie różnić od miesiąca do miesiąca.

    Ogólnie rzecz biorąc, użycie większego rozmiaru okna prowadzi do wolniejszej wydajności, ponieważ moduł musi nauczyć się większego zestawu danych.

    Zalecamy ustawienie tych dwóch parametrów na tę samą wartość.

  8. Próg alertu: określ wartość powyżej której wynik anomalii generuje alert.

    Wartość domyślna to 3,25, co oznacza, że alert jest generowany dla każdego wiersza zawierającego wynik 3,25 lub więcej. Y

    Można określić dowolną liczbę zmiennoprzecinkowa z zakresu od 0 do 100. Istnieje jednak kompromis między wrażliwością a zaufaniem do wyboru progu:

    • Niższy próg sprawi, że detektor będzie bardziej wrażliwy na anomalie i wygeneruje więcej alertów.

    • Niższy próg może spowodować błędne sklasyfikowanie normalnych zmian jako anomalii.

  9. Uruchom eksperyment.

    Należy pamiętać, że nie trzeba trenować tego modelu oddzielnie; algorytm uczy się wzorca z danych, które podajesz jako dane wejściowe w tym module.

Wyniki

Po zakończeniu trenowania moduł generuje szereg czasowy o tej samej długości co wejściowy szereg czasowy; Jednak dwie kolumny są dodawane w celu wskazania wartości, które są potencjalnie nietypowe.

  • Wynik anomalii: pierwsza kolumna zawiera wynik reprezentujący prawdopodobieństwo, że wartość szeregów czasowych jest nietypowa.

  • Alert: Ta kolumna zawiera flagę o wartości 0 lub 1, gdzie 1 oznacza, że wykryto anomalię. Możesz ustawić próg generowania alertu na podstawie kolumny oceny, ale ustawić parametr Próg alertu .

Przykłady

W poniższych przykładach pokazano, jak ustawić funkcję martingale w celu wykrywania anomalii i interpretowania wyników.

Wykrywanie zmian na poziomie

Aby zilustrować wpływ różnych ustawień, przykładowy zestaw danych używany w tym przykładzie składa się z 8870 punktów danych z trzema zmianami na poziomie. Na podstawie tych danych utworzyliśmy dwa modele przy użyciu następujących parametrów.

  • Typ Martingale: PowerAvg

  • Typ funkcji dziwności: RangePercentile

  • Długość Martingale = 50

  • Długość wartości dziwności = 50

Model został wytrenowany na danych przychodzących, ale dla progu alertu zastosowano inną wartość. Wyniki przewidywania są wykreśliane na poniższych obrazach dla modeli 1 i Model 2. Na tych wykresach niebieskie linie reprezentują wartości danych, a czerwone linie reprezentują alerty zgłoszone dla anomalii.

Próg alertu 0,9

level change with alert of 0.9

W tym modelu wartość progowa jest niższa i w związku z tym są zgłaszane alerty (wykryte anomalie), nawet jeśli zmiany są chwilowe.

W zależności od typu monitorujących szeregów czasowych niektóre z tych alertów mogą być uznawane za fałszywe alerty. Jednak niższy próg może być preferowany, jeśli nie możesz sobie pozwolić na pomijanie żadnych anomalii.

Próg alertu 3,25

level change with alert of 3.25

W tym modelu próg alertu był znacznie wyższy, a w rezultacie model wykrywa tylko te zmiany, które utrzymują się dłużej. Wyższy próg alertów może być bardziej pożądany w scenariuszu, w którym chcesz przechwycić tylko bardziej długotrwałe zmiany.

Wykrywanie zmian nachylenia dodatniego

Aby zilustrować tę opcję wykrywania anomalii, użyliśmy przykładowego zestawu danych zawierającego 300 punktów danych. Wszystkie punkty stanowiły ogólny pozytywny trend z dwoma anomaliami.

Ponownie utworzyliśmy dwa modele przy użyciu parametrów identycznych z wyjątkiem wartości progowej alertu.

  • Typ Martingale: PowerAvg

  • Typ funkcji dziwności: SlowPosTrend

  • Długość Martingale = 50

  • Długość wartości dziwności = 50

Na tych wykresach niebieskie linie reprezentują wartości danych, a czerwone linie reprezentują alerty zgłaszane dla anomalii.

Próg alertu 4,25

positive trend with alert of 4.25

Próg alertu 6.0

positive trend with alert threshold of 6.0

Zalecamy eksperymentowanie z różnymi wartościami progowymi alertów w celu znalezienia odpowiedniego poziomu poufności dla scenariusza wykrywania anomalii.

Oczekiwane dane wejściowe

Nazwa Typ Opis
Dane wejściowe zawierające sygnatury czasowe i wartości Tabela danych Dane wejściowe zawierające sygnatury i wartości daty i godziny.

Parametry modułu

Nazwa Typ Zakres Opcjonalne Domyślny Opis
Kolumna wartości KolumnaWybieranie Wymagane Wybierz kolumnę zawierającą szeregi czasowe do śledzenia
Rozmiar okna Liczba całkowita Wymagane Określanie wartości kontrolującej rozmiar okna analizy
Próg Float Opcjonalne Określ wartość określającą próg dla wyniku w celu zidentyfikowania anomalii

Dane wyjściowe

Nazwa Typ Opis
Szeregi czasowe z adnotacjami z wynikami anomalii Tabela danych Zestaw danych z interwałami anomalii.

Zobacz też

Wykrywanie anomalii
Jednoklasowa maszyna wektorowa obsługi
Wykrywanie anomalii oparte na analizie głównych składowych