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.
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.
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.
Wanneer u een melding krijgt over het wijzigen van het kolomtype, selecteert u Huidige vervangen. Selecteer daarna Sluiten en toepassen op 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.
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.
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.
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.
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.
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
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:
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.
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.
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.
Pas kleuren toe op de grafiek door het hulpmiddel Opmaak en gegevenskleuren te selecteren. Uw grafiek moet er ongeveer als volgt uitzien: