Kurz: Vizualizace anomálií pomocí dávkové detekce a Power BI (univariát)

Důležité

Od 20. září 2023 nebudete moct vytvářet nové Detektor anomálií prostředky. Služba Detektor anomálií se 1. října 2026 vyřadí z provozu.

V tomto kurzu můžete najít anomálie v datové sadě časových řad jako dávku. V Power BI Desktopu použijete excelový soubor, připravíte data pro rozhraní API Detektor anomálií a vizualizujete statistické anomálie v celém něm.

V tomto kurzu se naučíte:

  • Použití Power BI Desktopu k importu a transformaci datové sady časových řad
  • Integrace Power BI Desktopu s rozhraním API Detektor anomálií pro detekci dávkových anomálií
  • Vizualizujte anomálie nalezené v datech, včetně očekávaných a viditelných hodnot a hranic detekce anomálií.

Požadavky

Poznámka:

Nejlepších výsledků při použití rozhraní API Detektor anomálií by data časových řad ve formátu JSON měla zahrnovat:

  • datové body oddělené stejným intervalem, a to maximálně 10 % očekávaného počtu chybějících bodů.
  • alespoň 12 datových bodů, pokud data nemají jasný sezónní vzor.
  • aspoň 4 výskyty vzorů, pokud vaše data mají jasný sezónní vzor.

Načtení a formátování dat časových řad

Začněte tím, že otevřete Power BI Desktop a načtete data časových řad, která jste stáhli z požadavků. Tento excelový soubor obsahuje řadu časových razítek utc (Coordinated Universal Time) a párů hodnot.

Poznámka:

Power BI může používat data z nejrůznějších zdrojů, jako jsou soubory CSV, databáze SQL, úložiště objektů blob Azure a další.

V hlavním okně Power BI Desktopu vyberte pás karet Domů. Ve skupině Externí data na pásu karet otevřete rozevírací nabídku Získat data a vyberte Excel.

An image of the

Po zobrazení dialogového okna přejděte do složky, do které jste stáhli ukázkový soubor .xlsx, a vyberte ho. Po zobrazení dialogového okna Navigátor vyberte List1 a pak upravit.

An image of the data source

Power BI převede časová razítka v prvním sloupci na Date/Time datový typ. Tato časová razítka musí být převedena na text, aby bylo možné je odeslat do rozhraní API Detektor anomálií. Pokud se editor Power Query neotevře automaticky, na kartě Domů vyberte Upravit dotazy .

V Editor Power Query vyberte pás karet Transformace. Ve skupině Libovolný sloupec otevřete rozevírací nabídku Datový typ: a vyberte Text.

An image of the data type drop down

Když se zobrazí oznámení o změně typu sloupce, vyberte Nahradit aktuální. Potom na pásu karet Domů vyberte Zavřít a použít nebo Použít.

Vytvoření funkce pro odeslání dat a naformátování odpovědi

Pokud chcete formátovat a odesílat datový soubor do rozhraní API Detektor anomálií, můžete vyvolat dotaz na tabulku vytvořenou výše. V Editor Power Query na pásu karet Domů otevřete rozevírací nabídku Nový zdroj a vyberte Prázdný dotaz.

Ujistěte se, že je vybraný nový dotaz, a pak vyberte Rozšířený editor.

An image of the

V rámci Rozšířený editor pomocí následujícího fragmentu kódu Power Query M extrahujte sloupce z tabulky a odešlete ho do rozhraní API. Potom dotaz vytvoří tabulku z odpovědi JSON a vrátí ji. Nahraďte proměnnou apiKey platným klíčem rozhraní API Detektor anomálií a endpoint koncovým bodem. Po zadání dotazu do Rozšířený editor vyberte Hotovo.

(table as table) => let

    apikey      = "[Placeholder: Your Anomaly Detector resource access key]",
    endpoint    = "[Placeholder: Your Anomaly Detector resource endpoint]/anomalydetector/v1.0/timeseries/entire/detect",
    inputTable = Table.TransformColumnTypes(table,{{"Timestamp", type text},{"Value", type number}}),
    jsontext    = Text.FromBinary(Json.FromValue(inputTable)),
    jsonbody    = "{ ""Granularity"": ""daily"", ""Sensitivity"": 95, ""Series"": "& jsontext &" }",
    bytesbody   = Text.ToBinary(jsonbody),
    headers     = [#"Content-Type" = "application/json", #"Ocp-Apim-Subscription-Key" = apikey],
    bytesresp   = Web.Contents(endpoint, [Headers=headers, Content=bytesbody, ManualStatusHandling={400}]),
    jsonresp    = Json.Document(bytesresp),

    respTable = Table.FromColumns({

                     Table.Column(inputTable, "Timestamp")
                     ,Table.Column(inputTable, "Value")
                     , Record.Field(jsonresp, "IsAnomaly") as list
                     , Record.Field(jsonresp, "ExpectedValues") as list
                     , Record.Field(jsonresp, "UpperMargins")as list
                     , Record.Field(jsonresp, "LowerMargins") as list
                     , Record.Field(jsonresp, "IsPositiveAnomaly") as list
                     , Record.Field(jsonresp, "IsNegativeAnomaly") as list

                  }, {"Timestamp", "Value", "IsAnomaly", "ExpectedValues", "UpperMargin", "LowerMargin", "IsPositiveAnomaly", "IsNegativeAnomaly"}
               ),

    respTable1 = Table.AddColumn(respTable , "UpperMargins", (row) => row[ExpectedValues] + row[UpperMargin]),
    respTable2 = Table.AddColumn(respTable1 , "LowerMargins", (row) => row[ExpectedValues] -  row[LowerMargin]),
    respTable3 = Table.RemoveColumns(respTable2, "UpperMargin"),
    respTable4 = Table.RemoveColumns(respTable3, "LowerMargin"),

    results = Table.TransformColumnTypes(

                respTable4,
                {{"Timestamp", type datetime}, {"Value", type number}, {"IsAnomaly", type logical}, {"IsPositiveAnomaly", type logical}, {"IsNegativeAnomaly", type logical},
                 {"ExpectedValues", type number}, {"UpperMargins", type number}, {"LowerMargins", type number}}
              )

 in results

Vyvolejte dotaz na datový list takSheet1, že vyberete následující enter Parameter (Zadat parametr) a vyberete Invoke (Vyvolat).

An image of the invoke function

Důležité

Nezapomeňte klíč z kódu odebrat, až to budete hotovi, a nikdy ho veřejně neposílejte. V produkčním prostředí použijte bezpečný způsob ukládání přihlašovacích údajů a přístupu k vašim přihlašovacím údajům, jako je Azure Key Vault. Další informace najdete v článku zabezpečení služeb Azure AI.

Ochrana osobních údajů a ověřování zdroje dat

Poznámka:

Mějte na paměti zásady vaší organizace pro ochranu osobních údajů a přístup k datům. Další informace najdete v tématu Úrovně ochrany osobních údajů v Power BI Desktopu.

Při pokusu o spuštění dotazu se může zobrazit upozornění, protože využívá externí zdroj dat.

An image showing a warning created by Power BI

Pokud chcete tento problém vyřešit, vyberte Soubor a Možnosti a nastavení. Pak vyberte Možnosti. Pod aktuálním souborem vyberte Soukromí a ignorujte úrovně ochrany osobních údajů a potenciálně zlepšíte výkon.

Kromě toho se může zobrazit zpráva s výzvou, abyste určili, jak se chcete připojit k rozhraní API.

An image showing a request to specify access credentials

Pokud chcete tento problém vyřešit, ve zprávě vyberte Upravit přihlašovací údaje . Po zobrazení dialogového okna vyberte Anonymní a připojte se k rozhraní API anonymně. Pak vyberte Připojení.

Potom na pásu karet Domů vyberte Zavřít a použít změny.

Vizualizace odpovědi rozhraní API Detektor anomálií

Na hlavní obrazovce Power BI začněte pomocí dotazů vytvořených výše vizualizovat data. Nejprve vyberte spojnicový graf ve vizualizacích. Potom přidejte časové razítko z vyvolané funkce do osy spojnicového grafu. Klikněte na něj pravým tlačítkem myši a vyberte Časové razítko.

Right-clicking the Timestamp value

Do pole Hodnoty grafu přidejte následující pole z vyvolané funkce. S vytvořením grafu vám pomůže následující snímek obrazovky.

  • Hodnota
  • UpperMargins
  • LowerMargins
  • ExpectedValues

An image of the chart settings

Po přidánípolích Váš graf bude vypadat podobně jako na následujícím snímku obrazovky:

An image of the chart visualization

Zobrazení datových bodů anomálií

Na pravé straně okna Power BI pod podoknem POLE klikněte pravým tlačítkem na Hodnotu pod dotazem Vyvolaná funkce a vyberte Nová rychlá míra.

An image of the new quick measure screen

Na obrazovce, která se zobrazí, vyberte jako výpočet filtrovanou hodnotu . Nastavte základní hodnotu na Sum of Valuehodnotu . Potom přetáhněte IsAnomaly pole Vyvolaná funkce do filtru. Vyberte True z rozevírací nabídky Filtr .

A second image of the new quick measure screen

Po výběru ok budete mít Value for True pole v dolní části seznamu polí. Klikněte na něj pravým tlačítkem a přejmenujte ho na Anomálie. Přidejte ho do hodnot grafu. Pak vyberte nástroj Formát a nastavte typ osy X na kategorický.

An image of the format x axis

Barvy v grafu můžete použít tak , že vyberete nástroj Formát a barvy dat. Graf by měl vypadat přibližně takto:

An image of the final chart