Detekce anomálií časových řad
Důležité
Podpora studia Machine Learning (Classic) skončí 31. srpna 2024. Doporučujeme do tohoto data přejít na službu Azure Machine Learning.
Od 1. prosince 2021 nebude možné vytvářet nové prostředky studia Machine Learning (Classic). Do 31. srpna 2024 můžete pokračovat v používání stávajících prostředků studia Machine Learning (Classic).
- Přečtěte si informace o přesunu projektů strojového učení z ML Studia (classic) do Azure Machine Learning.
- Přečtěte si další informace o Azure Machine Learning.
Dokumentace ke studiu ML (Classic) se vyřazuje z provozu a v budoucnu se nemusí aktualizovat.
Detekuje anomálie ve vstupních datech časových řad.
Kategorie: Časová řada
Poznámka
Platí pro: pouze Machine Learning Studio (classic)
Podobné moduly pro přetažení jsou dostupné v návrháři Azure Machine Learning.
Přehled modulu
Tento článek popisuje, jak pomocí modulu Detekce anomálií časové řady v Machine Learning Studiu (classic) zjišťovat anomálie v datech časových řad. Modul se naučí normální provozní charakteristiky časové řady, kterou zadáte jako vstup, a použije je k detekci odchylek od normálního vzoru. Modul dokáže rozpoznat změny v celkovém trendu a změny velikosti nebo rozsahu hodnot.
Detekce změn v datech časových řad má široké aplikace. Můžete ho například použít k monitorování senzorů, sítí nebo využití prostředků téměř v reálném čase. Sledováním chyb služeb, využití služeb a dalších klíčových ukazatelů výkonu můžete rychle reagovat na kritické anomálie. Mezi další aplikace patří zdravotní péče a finance.
Metody detekce anomálií
Detekce anomálií je problém hledání vzorů v datech, které neodpovídají modelu "normálního" chování. Typické přístupy k detekci takových změn buď používají jednoduché prahové hodnoty pro člověka, nebo střední a směrodatnou odchylku k určení, kdy se data výrazně odchylují od průměru.
Tyto jednoduché přístupy se ale snadno nepřizpůsobují datům časových řad:
Vygeneruje se velký počet falešně anomálií.
Metody se nevztahují na změnu hodnot dat.
Nejde snadno škálovat na velké časové řady
Tento modul poskytuje dvě další metody posouzení odchylek od trendu časových řad:
Měření velikosti změn směrem nahoru a dolů
Například počet požadavků na webovou službu může být po nějakou dobu nejvhodnější a pak výrazně zvýšit.
Měření směru a doby trvání trendů: pozitivní vs. negativní změny
Například trvalý vzestupný trend délky fronty služeb může znamenat základní problém. I když se celkový trend konzistentně zvyšuje a proto může být považován za stabilní, může být změna sklonu označena příznakem jako anomálie. Pokud naopak monitorujete využití paměti serveru, může konstantní snížení velikosti volné paměti znamenat problém.
Příklady neobvyklých vzorů v časových řadách
Změny směrem nahoru a dolů
Předpokládejme například, že jste monitorovali počet požadavků za den u webové služby v určitém časovém období a počet žádostí se zdá být v určitém rozsahu. Po aktualizaci webové služby se ale změní počet požadavků na danou webovou službu. Nový trend může být vyšší nebo nižší než původní trend; je možné zjistit jak vzestupné, tak i dolů.
Změny pozitivních nebo negativních trendů
Předpokládejme například, že monitorujete délku fronty na webu podpory služby. Trvalý vzestupný trend může znamenat základní problém se službou.
V jiných případech může být trvalý negativní trend anomálií. Pokud například monitorujete využití paměti na serveru, když se velikost volné paměti zmenší, může to znamenat potenciální únik paměti.
Zdroje informací
Další informace o výzkumu, který je základem tohoto přístupu, najdete v těchto článcích:
Shen-Shyang Ho; Wechsler, H., "A Martingale Framework for Detecting Changes in Data Toky by Testing Exchangeability," Pattern Analysis and Machine Intelligence, IEEE Transactions , vol.32, no.12, pp.2113,2127, Dec 2010
Valentina Fedorova, Alex J. Gammerman, Ilia Nouretdinov, Vladimir Vovk, "Plug-in martingales for testing exchangeability on-line", ICML 2012
Vladimir Vovk, Ilia Nouretdinov, Alex J. Gammerman, "Testing Exchangeability Online", ICML 2003.
Konfigurace detekce anomálií časových řad
Přidejte do experimentu modul Detekce anomálií time series a připojte datovou sadu obsahující časovou řadu.
Datová sada použitá jako vstup musí obsahovat alespoň jeden sloupec obsahující hodnoty data a času v řetězcovém formátu a další sloupec obsahující hodnoty trendu v číselném formátu. Ostatní sloupce se ignorují.
Vzhledem k tomu, že každý řádek odpovídá datovému bodu v časové řadě představující hodnotu v daném okamžiku, měly by být hodnoty času jedinečné.
Datový sloupec: Vyberte jeden sloupec v datové sadě, který obsahuje číselné hodnoty dat. Tyto hodnoty jsou datové body v trendu, který chcete modelovat, například celkový počet obyvatel v průběhu času, náklady za měsíc nebo teploty v určitém období.
Časový sloupec: Vyberte jeden sloupec v datové sadě, který obsahuje přidruženou hodnotu časové řady.
Sloupec musí obsahovat platné hodnoty data a času, což znamená, že všechna kalendářní data musí být v rozsahu kalendářních dat podporovaných rozhraním .NET Framework.
Sloupec Čas musí používat datový typ DateTime. Pokud jsou data ve formátu řetězce, můžete je přetypovat pomocí modulu Použít SQL Transformace nebo je převést pomocí modulu Spustit skript jazyka R. Pokud jsou kalendářní data reprezentovaná jako celá čísla, musíte také použít příslušnou funkci převodu data a času k reprezentaci hodnot pomocí platného formátu datetime.
Například následující příkaz SQL změní hodnotu sériového data Excel na formát datetime:
SELECT CAST([SerialDate] AS SmallDateTime) as [NewValidDate] from t1;
Jakmile jsou hodnoty kalendářních dat ve správném formátu, nastavte typ sloupce na DateTime pomocí modulu Upravit metadata.
Typ Martingale: Vyberte funkci martingale, která se má použít.
PowerAvg. Tato možnost představuje implementaci napájení martingale.
Výchozí hodnota je PowerAvg bez dalších parametrů. Tato možnost poskytuje stabilní detektor anomálií a měla by být vhodná pro většinu potřeb.
Napájení. Neregistrovaná implementace energie martingale.
Možnost Napájení umožňuje uživatelům poskytnout hodnotu v rozmezí od 0 do 1 parametru Epsilon pro řízení citlivosti detektoru. Obecně platí, že vyšší hodnota epsilonu znamená vyšší citlivost na anomálie, ale méně jistoty.
Definice martingalů a metod používaných v tomto modulu najdete v tématu: Detekce anomálií pomocí strojového učení k detekci odchylek v datech časových řad
Typ podivnosti funkce: Tato možnost se používá ke konkrétním typům anomálií. Podporují se tři možnosti, které nevyžadují žádné další parametry:
RangePercentile.
Toto je výchozí a většinou se používá ke zjišťování změn na úrovni.
SlowPosTrend. Tuto možnost zvolte, pokud chcete zjistit pozitivní změny trendu.
SlowNegTrend. Tuto možnost zvolte, pokud chcete zjistit negativní změny trendu.
Délka hodnot Martingale a Podivnost: Zadejte velikost okna historie, která se používá k výpočtu hodnot martingale v historii zpětného vyhledávání.
Výchozí hodnota je 500, ale můžete zadat libovolné celé číslo mezi 0 a 5000. U velkých časových řad by výchozí hodnota měla dobře fungovat. V případě menších časových řad se můžete pokusit odhadnout hodnotu očekávané délky neobvyklého chování.
Obecně doporučujeme tyto dva parametry nastavit na stejnou hodnotu.
Délka hodnot podivnosti: Zadejte délku okna historie sloužícího k výpočtu podivnosti v každém datovém bodě.
Výchozí hodnota je 500, ale můžete zadat libovolné celé číslo mezi 0 a 5000.
Tento parametr má stejná omezení jako Délka Martingale. To znamená, že byste měli nastavit hodnotu na odhadovaný počet datových bodů, které jsou potřeba k učení "normálního" chování.
Výchozí hodnota 500 funguje ve většině případů dobře, ale pokud se měřítko, u kterého se měří "normální" hodnota, může být výhodné, aby délka podivnosti byla větší hodnotou než Délka Martingale.
Pokud například monitorujete chyby a předpokládáte, že datové body se zaznamenávají v 15minutových intervalech, může se doba potřebná k získání normálního trendu výrazně lišit od měsíce po měsíc.
Obecně platí, že použití větší velikosti okna vede k pomalejšímu výkonu, protože se modul musí učit přes větší datovou sadu.
Obecně doporučujeme tyto dva parametry nastavit na stejnou hodnotu.
Prahová hodnota upozornění: Zadejte hodnotu, nad kterou skóre anomálií vygeneruje výstrahu.
Výchozí hodnota je 3,25, což znamená, že se pro každý řádek obsahující skóre 3,25 nebo více vygeneruje výstraha. Y
Můžete zadat libovolné číslo s plovoucí desetinou čárkou od 0 do 100. Existuje však kompromis mezi citlivostí a důvěrou v volbu prahové hodnoty:
Nižší prahová hodnota by detektoru zpřístupňovala anomálie a generovala více výstrah.
Nižší prahová hodnota může vést k nesprávné klasifikaci normálních změn jako anomálií.
Spusťte experiment.
Mějte na paměti, že tento model nemusíte trénovat samostatně; algoritmus se učí vzor z dat, která zadáte jako vstup do tohoto modulu.
Výsledky
Po dokončení trénování modul vypíše časovou řadu, která je stejná jako vstupní časová řada; Dva sloupce jsou však přidány k označení hodnot, které jsou potenciálně neobvyklé.
Skóre anomálií: První sloupec obsahuje skóre, které představuje pravděpodobnost, že hodnota časové řady je neobvyklá.
Upozornění: Tento sloupec obsahuje příznak s hodnotou 0 nebo 1, kde 1 znamená, že byla zjištěna anomálie. Můžete nastavit prahovou hodnotu pro generování výstrahy na základě sloupce skóre, ale nastavení parametru Prahová hodnota upozornění .
Příklady
Následující příklady ukazují, jak nastavit funkci martingale pro detekci anomálií a jak interpretovat výsledky.
Detekce změn na úrovni
Pro ilustraci dopadu různých nastavení se ukázková datová sada použitá v tomto příkladu skládá z 8870 datových bodů se třemi změnami úrovně. Na základě těchto dat jsme vytvořili dva modely s využitím následujících parametrů.
Typ Martingale: PowerAvg
Typ zvláštní funkce: RangePercentile
Délka Martingale = 50
Délka hodnot podivnosti = 50
Model se natrénoval na příchozích datech, ale pro prahovou hodnotu upozornění byla použita jiná hodnota. Výsledky predikce se vykreslují na následujících obrázcích pro Model 1 a Model 2. V těchto grafech modré čáry představují hodnoty dat a červené čáry představují výstrahy vyvolané pro anomálii.
Prahová hodnota upozornění 0,9
V tomto modelu je prahová hodnota nižší, a proto jsou vyvolána upozornění (zjištěny anomálie) i v případě, že jsou změny momentální.
V závislosti na typu časové řady, kterou monitorujete, se některá z těchto upozornění můžou považovat za falešná upozornění. Nižší prahová hodnota však může být vhodnější, pokud si nemůžete dovolit přehlédnout žádnou anomálii.
Prahová hodnota upozornění 3,25
V tomto modelu byla prahová hodnota upozornění mnohem vyšší a v důsledku toho model detekuje pouze ty změny, které trvají déle. Vyšší prahová hodnota pro upozorňování může být v případě, že chcete zachytit pouze dlouhotrvající změny.
Zjištění pozitivních změn sklonu
K ilustraci této možnosti pro detekci anomálií jsme použili ukázkovou datovou sadu obsahující 300 datových bodů. Všechny body vytvořily celkově pozitivní trend se dvěma anomáliemi.
Znovu jsme vytvořili dva modely pomocí parametrů, které byly s identické s výjimkou prahové hodnoty upozornění.
Typ Martingale: PowerAvg
Typ funkce Podivnost: SlowPosTrend
Délka Martingale = 50
Délka hodnot podivnosti = 50
V těchto grafech modré čáry představují datové hodnoty a červené čáry představují výstrahy vyvolané pro anomálii.
Prahová hodnota upozornění 4.25
Prahová hodnota upozornění 6,0
Doporučujeme experimentovat s různými prahovými hodnotami upozornění a najít odpovídající úroveň citlivosti pro váš scénář detekce anomálií.
Očekávané vstupy
Název | Typ | Description |
---|---|---|
Vstupní data obsahující časová razítka a hodnoty | Tabulka dat | Vstupní data obsahující razítka a hodnoty data a času |
Parametry modulu
Název | Typ | Rozsah | Volitelné | Výchozí | Description |
---|---|---|---|---|---|
Sloupec hodnot | ColumnSelection | Vyžadováno | Zvolte sloupec, který obsahuje časovou řadu, kterou chcete sledovat. | ||
Velikost okna | Integer | Vyžadováno | Zadejte hodnotu, která řídí velikost okna analýzy. | ||
Prahová hodnota | Float | Volitelné | Zadejte hodnotu, která určuje prahovou hodnotu skóre pro identifikaci anomálií. |
Výstupy
Název | Typ | Description |
---|---|---|
Časové řady označené skóre anomálií | Tabulka dat | Datová sada s intervaly anomálií |
Viz také
Detekce anomálií
One-Class Support Vector Machine
Detekce anomálií na základě PCA