Idősor anomáliadetektálása

Fontos

A (klasszikus) Machine Learning Studio támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy addig térjen át az Azure Machine Learning használatára.

2021. december 1-től kezdve nem fog tudni létrehozni új (klasszikus) Machine Learning Studio-erőforrásokat. 2024. augusztus 31-ig továbbra is használhatja a meglévő (klasszikus) Machine Learning Studio-erőforrásokat.

A (klasszikus) ML Studio dokumentációjának kivezetése folyamatban van, és a jövőben nem várható a frissítése.

Észleli a bemeneti idősor adatainak rendellenességeit.

Kategória: Idősorozat

Megjegyzés

Csak a következőre vonatkozik: Machine Learning Studio (klasszikus)

Hasonló húzási modulok érhetők el Azure Machine Learning tervezőben.

A modul áttekintése

Ez a cikk azt ismerteti, hogyan használható a time series anomáliadetektálási modul a Machine Learning Studio (klasszikus) alkalmazásban az idősoradatok rendellenességeinek észlelésére. A modul betanítja a bemenetként megadott idősorok normál működési jellemzőit, és ezeket az információkat felhasználva észleli a normál mintától való eltéréseket. A modul képes észlelni az általános trend változásait, valamint az értékek nagyságrendjének vagy tartományának változásait.

Az idősoradatok változásainak észlelése széles körű alkalmazásokkal rendelkezik. Használhatja például érzékelők, hálózatok vagy erőforrás-használat közel valós idejű monitorozására. A szolgáltatáshibák, a szolgáltatáshasználat és más KPI-k nyomon követésével gyorsan reagálhat a kritikus anomáliákra. Más alkalmazások közé tartozik az egészségügy és a pénzügy.

Anomáliadetektálási módszerek

Az anomáliadetektálás az adatok olyan mintáinak megkeresése, amelyek nem felelnek meg a "normál" viselkedés modelljének. Az ilyen változások észlelésének tipikus megközelítései vagy egyszerű emberi számítási küszöbértékeket, vagy középértéket és szórást használnak annak meghatározásához, hogy az adatok mikor térnek el jelentősen a középértéktől.

Az ilyen egyszerű megközelítések azonban nem könnyen igazodnak az idősoradatokhoz:

  • Nagy számú hamis anomália jön létre

  • A metódusok nem alkalmazhatók az adatértékek módosítására

  • Nem méretezhető egyszerűen nagy idősorra

Ez a modul két további módszert biztosít az idősorozat-trendek varianciájának értékelésére:

  • A felfelé és lefelé irányuló változások mértékének mérése

    Előfordulhat például, hogy egy webszolgáltatás kéréseinek száma egy ideig a legkedvezhetőbb, majd jelentősen megnő.

  • A trendek irányának és időtartamának mérése: pozitív és negatív változások

    Egy szolgáltatásvárólista hosszának állandó emelkedő trendje például egy mögöttes problémát jelezhet. Annak ellenére, hogy az általános trend folyamatosan növekszik, ezért stabilnak tekinthető, a meredekség változása anomáliának tekinthető. Ezzel szemben, ha egy kiszolgáló memóriahasználatát figyeli, a szabad memória méretének állandó csökkenése problémát jelezhet.

Példák az idősorozat rendellenes mintáira

Felfelé és lefelé irányuló szintváltozások

Tegyük fel például, hogy egy webszolgáltatásban egy adott időszakban figyeli a kérelmek napi számát, és úgy tűnik, hogy a kérések száma egy bizonyos tartományon belül marad. A webszolgáltatás frissítése után azonban a webszolgáltatáshoz érkező kérések száma megváltozik. Az új trend magasabb vagy alacsonyabb lehet, mint az eredeti trend; mind felfelé, mind lefelé tüskék észlelhetők.

upward and downward level changes

Pozitív vagy negatív trendek változása

Tegyük fel például, hogy egy szolgáltatástámogatási webhelyen figyeli az üzenetsor hosszát. Az állandó emelkedő trend alapul szolgáló szolgáltatásproblémát jelezhet.

Más esetekben állandó negatív trend lehet az anomália. Ha például egy kiszolgálón figyeli a memóriahasználatot, a szabad memória mérete csökken, az potenciális memóriavesztést jelezhet.

positive or negative trend change

Források

A megközelítés alapjául szolgáló kutatásokkal kapcsolatos további információkért tekintse meg az alábbi cikkeket:

Idősorozat-anomáliadetektálás konfigurálása

  1. Adja hozzá a Time Series Anomaly Detection modult a kísérlethez, és csatlakoztassa az idősort tartalmazó adatkészletet.

    A bemenetként használt adatkészletnek legalább egy olyan oszlopot kell tartalmaznia, amely sztringformátumú dátum/idő értékeket tartalmaz, és egy másik oszlopot, amely a trendértékeket tartalmazza numerikus formátumban. A többi oszlopot a rendszer figyelmen kívül hagyja.

    Mivel minden sor egy adatpontnak felel meg az idősorban, amely az akkori értéket jelöli, az időértékeknek egyedinek kell lenniük.

  2. Adatoszlop: Jelöljön ki egyetlen oszlopot az adathalmazban, amely numerikus adatértékeket tartalmaz. Ezek az értékek a modellezendő trend adatpontjai, például az idő népességösszegei, a havi költségek vagy bizonyos időszak hőmérsékletei.

  3. Időoszlop: Jelöljön ki egyetlen oszlopot az adathalmazban, amely tartalmazza a társított idősorozat-értéket.

    Az oszlopnak érvényes dátum/idő értékeket kell tartalmaznia, ami azt jelenti, hogy az összes dátumnak a .NET-keretrendszer által támogatott dátumtartományon belül kell lennie.

    Az Idő oszlopnak a DateTime adattípust kell használnia. Ha a dátumok sztringformátumban vannak, az SQL-átalakítási modullal átadhatja őket, vagy átalakíthatja őket az R-szkript végrehajtása modullal. Ha a dátumok egész számként jelennek meg, akkor egy megfelelő datetime konverziós függvényt is használnia kell az értékek érvényes dátum/idő formátummal való ábrázolásához.

    Az alábbi SQL-utasítás például egy Excel dátumértéket dátum/idő formátumra módosít:

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

    Miután a dátumértékek a megfelelő formátumban lettek, a Metaadatok szerkesztése modullal állítsa az oszloptípust DateTime értékre.

  4. Martingale típus: Válassza ki a használni kívánt martingale függvényt.

    • PowerAvg. Ez a lehetőség a power martingale marginális implementációja.

      Az alapértelmezett érték a PowerAvg , további paraméterek nélkül. Ez a lehetőség stabilabb anomáliadetektort biztosít, és a legtöbb igénynek megfelelőnek kell lennie.

    • Hatalom. A power martingale nem marginalizált implementációja.

      A Power beállítással a felhasználók 0 és 1 közötti értéket adhatnak meg az Epsilon paraméter számára a detektor érzékenységének szabályozásához. A magasabb epszilon érték általában nagyobb érzékenységet jelent az anomáliákra, de kevésbé biztos.

    A martingales definícióért és a modulban használt módszerekért lásd: Anomáliadetektálás gépi tanulással az idősoradatok rendellenességeinek észleléséhez

  5. Furcsaság függvény típusa: Ezt a beállítást különböző típusú anomáliákhoz használják. Három lehetőség támogatott, amelyekhez nincs szükség további paraméterekre:

    • RangePercentile.

      Ez az alapértelmezett beállítás, és többnyire a szintváltozások észlelésére szolgál.

    • SlowPostrend. Válassza ezt a lehetőséget a pozitív trendváltozások észleléséhez.

    • SlowNegTrend. Válassza ezt a lehetőséget a negatív trendváltozások észleléséhez.

  6. A Martingale és a Furcsasági értékek hossza: Adja meg az előzményablak méretét, amely a martingale értékek kiszámítására szolgál a visszatekintés előzményei alapján.

    Az alapértelmezett érték 500, de megadhat 0 és 5000 közötti egész számokat. Nagy idősorok esetén az alapértelmezett értéknek jól kell működnie. Kisebb idősorok esetén megpróbálhatja megbecsülni a rendellenes viselkedés várható hosszának értékét.

    Javasoljuk, hogy ezt a két paramétert általában ugyanarra az értékre állítsa be.

  7. A furcsaságértékek hossza: Adja meg az egyes adatponton a furcsaság kiszámításához használt előzményablak hosszát.

    Az alapértelmezett érték 500, de megadhat 0 és 5000 közötti egész számokat.

    Ez a paraméter ugyanazokra a korlátozásokra vonatkozik, mint a Martingale hossza. Ez azt adja meg, hogy hány adatpont szükséges a "normál" viselkedés megismeréséhez.

    Az alapértelmezett 500 jól működik a legtöbb esetben, de ha a skálázás, amelyen a "normalcy" mérhető változik, akkor hasznos lehet, hogy a Length of Strangeness Értékek nagyobb értéket, mint Hossza Martingale.

    Ha például figyeli a hibákat, és feltételezi, hogy az adatpontokat 15 perces időközönként rögzíti a rendszer, a normál trend megismeréséhez szükséges idő hónapról hónapra jelentősen eltérő lehet.

    A nagyobb ablakméret használata általában lassabb teljesítményt eredményez, mivel a modulnak egy nagyobb adatkészleten kell tanulnia.

    Javasoljuk, hogy ezt a két paramétert általában ugyanarra az értékre állítsa be.

  8. Riasztás küszöbértéke: Adjon meg egy olyan értéket, amely felett az anomáliademokrata pontszám riasztást generál.

    Az alapértelmezett érték 3,25, ami azt jelenti, hogy a rendszer riasztást hoz létre minden olyan sorhoz, amely legalább 3,25 pontszámot tartalmaz. Y

    0 és 100 közötti lebegőpontos számokat is megadhat. Van azonban egy kompromisszum a érzékenység és a küszöb kiválasztása iránti bizalom között:

    • Egy alacsonyabb küszöbérték miatt a detektor érzékenyebbé válna az anomáliákra, és több riasztást hozna létre.

    • Egy alacsonyabb küszöbérték azt eredményezheti, hogy a normál változások helytelenül lesznek besorolva anomáliákként.

  9. Futtassa a kísérletet.

    Vegye figyelembe, hogy ezt a modellt nem kell külön betanítása; az algoritmus a modul bemeneteként megadott adatokból tanulja meg a mintát.

Results (Eredmények)

A betanítás befejezésekor a modul olyan idősort ad ki, amely megegyezik a bemeneti idősor hosszával; a rendszer azonban két oszlopot ad hozzá az esetlegesen rendellenes értékek jelzéséhez.

  • Anomáliademális pontszám: Az első oszlop olyan pontszámot tartalmaz, amely annak a valószínűségét jelzi, hogy az idősor értéke rendellenes.

  • Riasztás: Ez az oszlop egy 0 vagy 1 értékű jelzőt tartalmaz, ahol az 1 azt jelenti, hogy anomáliát észleltek. A riasztás létrehozásának küszöbértékét a pontszámoszlop alapján állíthatja be, de beállíthatja a Riasztás küszöbértéke paramétert.

Példák

Az alábbi példák bemutatják, hogyan állíthatja be a martingale függvényt az anomáliák észlelésére és az eredmények értelmezésére.

Szintváltozások észlelése

A különböző beállítások hatásának szemléltetéséhez a példában használt adathalmaz 8870 adatpontból áll, háromszintű módosítással. Ezen adatok alapján két modellt hoztunk létre az alábbi paraméterekkel.

  • Martingale típusa: PowerAvg

  • Furcsaság függvény típusa: RangePercentile

  • Martingale hossza = 50

  • A furcsaságértékek hossza = 50

A modell be lett tanítva a bejövő adatokon, de a riasztási küszöbértékre egy másik értéket alkalmaztak. Az előrejelzés eredményei az alábbi képeken jelennek meg az 1. és a 2. modell esetében. Ezekben a grafikonokon a kék vonalak az adatértékeket, a piros vonalak pedig az anomáliára vonatkozó riasztásokat jelölik.

0,9 riasztási küszöbérték

level change with alert of 0.9

Ebben a modellben a küszöbérték alacsonyabb, ezért riasztások keletkeznek (anomáliák észlelhetők), még akkor is, ha a módosítások pillanatnyiak.

A figyelt idősor típusától függően egyes riasztások téves riasztásoknak minősülhetnek. Az alacsonyabb küszöbérték azonban előnyösebb lehet, ha nem engedheti meg magának, hogy figyelmen kívül hagyjon minden anomáliát.

3,25-ös riasztási küszöbérték

level change with alert of 3.25

Ebben a modellben a riasztási küszöbérték sokkal magasabb volt, ezért a modell csak azokat a módosításokat észleli, amelyek hosszabb ideig maradnak. A riasztások magasabb küszöbértéke akkor lehet kívánatosabb, ha csak hosszan tartó változásokat szeretne észlelni.

Pozitív meredekségváltozások észlelése

Az anomáliadetektálási lehetőség szemléltetéséhez egy 300 adatpontot tartalmazó példaadatkészletet használtunk. Az összes pont pozitív trendet hozott létre, két rendellenességgel.

Ismét létrehoztunk két modellt olyan paraméterekkel, amelyek azonosak voltak, kivéve a riasztás küszöbértékét.

  • Martingale típusa: PowerAvg

  • A Strangeness függvény típusa: SlowPosTrend

  • Martingale hossza = 50

  • A furcsaságértékek hossza = 50

Ezekben a gráfokban a kék vonalak az adatértékeket, a piros vonalak pedig az anomáliával kapcsolatos riasztásokat jelölik.

4,25-ös riasztási küszöbérték

positive trend with alert of 4.25

6.0-s riasztási küszöbérték

positive trend with alert threshold of 6.0

Javasoljuk, hogy kísérletezzen különböző riasztási küszöbértékekkel, hogy megtalálja az anomáliadetektálási forgatókönyv megfelelő érzékenységi szintjét.

Várt bemenetek

Név Típus Description
Időbélyegeket és értékeket tartalmazó bemeneti adatok Adattábla Dátum-idő bélyegeket és értékeket tartalmazó bemeneti adatok.

Modulparaméterek

Név Típus Tartomány Választható Alapértelmezett Description
Értékoszlop ColumnSelection Kötelező Válassza ki a nyomon követendő idősort tartalmazó oszlopot
Ablakméret Egész szám Kötelező Adjon meg egy értéket, amely az elemzési ablak méretét szabályozza
Küszöbérték Float Választható Adjon meg egy értéket, amely meghatározza a pontszám küszöbértékét az anomália azonosításához

Kimenetek

Név Típus Description
Idősor anomáliadetektált pontszámokkal Adattábla Adatkészlet anomáliadetikus időközökkel.

Lásd még

Anomáliadetektálás
Egyosztályos támogató vektorgép
PCA-alapú rendellenesség-észlelés