Zelfstudie: Anomalieën visualiseren met behulp van batchdetectie en Power BI (univariate)

Belangrijk

Vanaf 20 september 2023 kunt u geen nieuwe Anomaly Detector-resources maken. De Anomaly Detector-service wordt op 1 oktober 2026 buiten gebruik gesteld.

Gebruik deze zelfstudie om afwijkingen in een tijdreeksgegevensverzameling batchgewijs te vinden. Met Power BI Desktop gaat u een Excel-bestand maken, de gegevens voorbereiden voor de Anomaly Detector-API en statistische afwijkingen visualiseren.

In deze zelfstudie leert u het volgende:

  • Power BI Desktop gebruiken om een set tijdreeksgegevens te importeren en te transformeren
  • Power BI Desktop integreren met de Anomaly Detector-API voor het batchgewijs detecteren van afwijkingen
  • Gevonden afwijkingen in uw gegevens visualiseren, waaronder verwachte en aangetroffen waarden en grenzen voor afwijkingsdetectie.

Vereisten

  • Een Azure-abonnement
  • Microsoft Power BI Desktop, gratis beschikbaar.
  • Een Excel-bestand (.xlsx) dat gegevenspunten van de tijdreeks bevat.
  • Zodra u uw Azure-abonnement hebt, maakt u een Anomaly Detector-resource in Azure Portal om uw sleutel en eindpunt op te halen.
    • U hebt de sleutel en het eindpunt nodig van de resource die u maakt, om de toepassing te verbinden met de Anomaly Detector-API. U doet dit later in de quickstart.

Notitie

Voor de beste resultaten wanneer u de Anomaly Detector-API gebruikt, moeten de tijdreeksgegevens in JSON-indeling het volgende bevatten:

  • gegevenspunten die door hetzelfde interval zijn gescheiden, waarbij niet meer dan 10% van het verwachte aantal punten ontbreekt;
  • ten minste twaalf gegevenspunten als uw gegevens geen duidelijk seizoensgebonden karakter hebben;
  • ten minste viermaal een patroon als uw gegevens wel een duidelijk seizoensgebonden karakter hebben.

De tijdreeksgegevens laden en opmaken

Als u aan de slag wilt gaan, opent u Power BI Desktop en laadt u de tijdreeksgegevens die u hebt gedownload zoals in de vereisten staat. Dit Excel-bestand bevat een reeks UTC-tijdstempels (Coordinated Universal Time) en waardeparen.

Notitie

Power BI kan gegevens gebruiken uit vele verschillende bronnen, zoals .csv-bestanden, SQL-databases en Azure Blob-opslag.

Kies in het hoofdvenster van Power BI Desktop het Start lint. Open in de groep Externe gegevens van het lint de vervolgkeuzelijst Gegevens ophalen en selecteer Excel.

An image of the

Als het dialoogvenster wordt weergegeven, gaat u naar de map waarin u het Excel-voorbeeldbestand hebt gedownload en selecteert u het. Nadat het dialoogvenster Navigator wordt weergegeven, selecteert u Blad1 en vervolgens Bewerken.

An image of the data source

Power BI converteert de tijdstempels in de eerste kolom naar het gegevenstype Date/Time. Deze tijdstempels moeten worden geconverteerd naar tekst om te worden verzonden naar de Anomaly Detector-API. Als de Power Query-editor niet automatisch wordt geopend, selecteert u Query's bewerken op het tabblad Start.

Selecteer het lint Transformeren in de Power Query-editor. Open in de groep Alle kolommen het vervolgkeuzemenu Gegevenstype: en selecteer Tekst.

An image of the data type drop down

Wanneer u een melding krijgt over het wijzigen van het kolomtype, selecteert u Huidige vervangen. Selecteer daarna Sluiten en toepassenop het lint Start.

Een functie maken voor het verzenden van de gegevens en het opmaken van het antwoord

Als u het gegevensbestand wilt opmaken en verzenden naar de Anomaly Detector-API, kunt u een query aanroepen voor de tabel die hierboven is gemaakt. Open in het Power Query-editor op het lint Start de vervolgkeuzelijst Nieuwe bron en selecteer Lege query.

Zorg ervoor dat de nieuwe query is geselecteerd en selecteer vervolgens Geavanceerde editor.

An image of the

Gebruik in de Geavanceerde editor het volgende Power Query M-fragment om de kolommen op te halen uit de tabel en naar de API te verzenden. Daarna maakt de query een tabel op basis van het JSON-antwoord en retourneert deze. Vervang de variabele apiKey door de geldige Anomaly Detector-API-sleutel en endpoint door uw eindpunt. Nadat u de query hebt ingevoerd in de Geavanceerde editor, selecteert u Gereed.

(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

Roep de query op uw gegevensblad aan door de onderstaande parameter invoeren te selecteren Sheet1 en Aanroepen te selecteren.

An image of the invoke function

Belangrijk

Vergeet niet de sleutel uit uw code te verwijderen wanneer u klaar bent, en maak deze sleutel nooit openbaar. Gebruik voor productie een veilige manier om uw referenties op te slaan en te openen, zoals Azure Key Vault. Zie het beveiligingsartikel over Azure AI-services voor meer informatie.

Privacy en verificatie van gegevensbronnen

Notitie

Houd rekening met het beleid van uw organisatie voor privacy en toegang tot gegevens. Zie Power BI Desktop-privacyniveaus voor meer informatie.

Er wordt mogelijk een waarschuwing weergegeven wanneer u probeert de query uit te voeren, omdat deze een externe gegevensbron gebruikt.

An image showing a warning created by Power BI

U kunt dit oplossen door Bestand en Opties en instellingen te selecteren. Selecteer vervolgens Opties. Selecteer onder Huidig bestand de optie Privacy en De privacyniveaus en mogelijk verbeterde prestaties negeren.

Daarnaast ontvangt u mogelijk een bericht waarin u wordt gevraagd hoe u verbinding wilt maken met de API.

An image showing a request to specify access credentials

U kunt dit oplossen door Referenties bewerken in het bericht te selecteren. Als het dialoogvenster wordt weergegeven, selecteert u Anoniem om anoniem verbinding met de API te maken. Selecteer vervolgens Connect.

Selecteer daarna Sluiten en toepassen op het lint Start om de wijzigingen toe te passen.

Het antwoord voor de Anomaly Detector-API visualiseren

Gebruik in het hoofdvenster van Power BI de eerder gemaakte query's om de gegevens te visualiseren. Selecteer eerst Lijndiagram in Visualisaties. Voeg vervolgens het tijdstempel van de aangeroepen functie toe aan de As van het lijndiagram. Klik er met de rechtermuisknop op en selecteer Tijdstempel.

Right-clicking the Timestamp value

Voeg de volgende velden uit de Aangeroepen functie toe aan het veld Waarden van de grafiek. Gebruik de onderstaande schermopname om uw grafiek te maken.

  • Weergegeven als
  • UpperMargins
  • LowerMargins
  • ExpectedValues

An image of the chart settings

Nadat u de velden hebt toegevoegd, selecteert u de grafiek en wijzigt u het formaat om alle gegevenspunten weer te geven. Uw grafiek ziet er ongeveer uit als de volgende schermopname:

An image of the chart visualization

Afwijkende gegevenspunten weergeven

Klik aan de rechterkant van het Power BI-venster onder het deelvenster VELDEN met de rechtermuisknop op Waarde onder de aangeroepen functiequery en selecteer Nieuwe snelle meting.

An image of the new quick measure screen

Selecteer op het scherm dat wordt weergegeven Gefilterde waarde als de berekening. Stel Basiswaarde in op Sum of Value. Sleep IsAnomaly vervolgens van de velden Aangeroepen functie naar Filter. Selecteer True in het vervolgkeuzemenu Filter.

A second image of the new quick measure screen

Nadat u OK hebt geselecteerd, hebt u een Value for True veld onder aan de lijst met velden. Klik er met de rechtermuisknop op en wijzig de naam ervan in Afwijking. Voeg het toe aan de Waarden van de grafiek. Selecteer vervolgens het hulpprogramma voor Opmaak en stel het type X-as in op Categorisch.

An image of the format x axis

Pas kleuren toe op de grafiek door het hulpmiddel Opmaak en gegevenskleuren te selecteren. Uw grafiek moet er ongeveer als volgt uitzien:

An image of the final chart