Freigeben über


Lernprogramm: Visualisieren von Anomalien mithilfe der Batcherkennung und Power BI (univariate)

Wichtig

Ab dem 20. September 2023 können Sie keine neuen Anomaliedetektorressourcen erstellen. Der Anomaliedetektordienst wird am 1. Oktober 2026 eingestellt. Es wird empfohlen, zu Microsoft Fabric zu migrieren, das das Open-Source-Projekt microsoft/anomaly-detector integriert, oder direkt zum Open-Source-Anomaly-Detektorprojekt zu wechseln.

In diesem Tutorial erfahren Sie, wie Sie Anomalien innerhalb eines Zeitreihendatasets im Batchmodus finden. Sie arbeiten in Power BI Desktop mit einer Excel-Datei, bereiten die Daten für die Anomalieerkennungs-API auf und visualisieren statistische Anomalien in der gesamten Datei.

In diesem Tutorial lernen Sie Folgendes:

  • Verwenden von Power BI Desktop zum Importieren und Transformieren eines Datensatzes für Zeitreihen
  • Integrieren Sie Power BI Desktop mit der API Anomaly Detector für die Anomalieerkennung im Batch-Betrieb
  • Visualisieren von Anomalien, die in Ihren Daten gefunden wurden, einschließlich erwarteter und beobachteter Werte, und Bestimmen von Grenzen für die Erkennung von Anomalien

Voraussetzungen

  • Ein Azure-Abonnement
  • Microsoft Power BI Desktop kostenlos zur Verfügung.
  • Eine Excel-Datei (.xlsx) mit Datenpunkten in einer Zeitreihe.
  • Sobald Sie Ihr Azure-Abonnement haben, erstellen Sie eine Anomaliedetektorressource im Azure Portal, um Ihren Schlüssel und Endpunkt abzurufen.
    • Sie benötigen den Schlüssel und endpunkt aus der Ressource, die Sie erstellen, um Ihre Anwendung mit dem Anomalieerkennungs-API zu verbinden. Dies geschieht später in der Schnellstartanleitung.

Hinweis

Bei besten Ergebnissen bei der Verwendung der Anomalieerkennungs-API sollten Ihre JSON-formatierten Zeitreihendaten Folgendes enthalten:

  • Datenpunkte, die durch dasselbe Intervall getrennt sind, wobei nicht mehr als 10 % der erwarteten Anzahl von Punkten fehlen.
  • Mindestens 12 Datenpunkte, wenn Ihre Daten kein eindeutiges saisonales Muster aufweisen.
  • Mindestens vier Mustervorkommen, wenn Ihre Daten ein eindeutiges saisonales Muster aufweisen.

Laden und Formatieren der Zeitreihendaten

Öffnen Sie zunächst Power BI Desktop und laden Sie die Zeitreihendaten, die Sie aus den vorherigen Schritten heruntergeladen haben. Diese Excel-Datei enthält eine Reihe von Zeitstempel- und Wertepaaren im UTC-Format (Coordinated Universal Time).

Hinweis

Power BI können Daten aus einer Vielzahl von Quellen verwenden, z. B. .csv Dateien, SQL-Datenbanken, Azure BLOB-Speicher und vieles mehr.

Wählen Sie im Hauptfenster Power BI Desktop das Menüband Home aus. Öffnen Sie in der Gruppe External data des Menübands das Dropdownmenü Get Data und wählen Sie Excel aus.

Ein Bild der Schaltfläche „Daten abrufen“ in Power BI

Navigieren Sie im angezeigten Dialogfeld zum Ordner, in den Sie die XLSX-Beispieldatei heruntergeladen haben, und wählen Sie sie aus. Nachdem das Dialogfeld Navigator angezeigt wird, wählen Sie Sheet1 aus und dann Bearbeiten.

Ein Bild des

Power BI konvertiert die Zeitstempel in der ersten Spalte in einen datentyp Date/Time. Diese Zeitstempel müssen in Text konvertiert werden, um an die Anomalieerkennungs-API gesendet zu werden. Wenn der Power Query-Editor nicht automatisch geöffnet wird, wählen Sie auf der Registerkarte "Start" Edit Queries aus.

Wählen Sie im Power Query-Editor das Menüband Transform aus. Öffnen Sie in der Gruppe Beliebige Spalte das Dropdownmenü Datentyp:, und wählen Sie Text aus.

Abbildung des Dropdownmenüs für den Datentyp

Wenn Sie einen Hinweis zum Ändern des Spaltentyps erhalten, wählen Sie Aktuelle ersetzen aus. Wählen Sie anschließend auf dem Menüband Start die Option Schließen und anwenden oder Anwenden aus.

Erstellen einer Funktion zum Senden der Daten und Formatieren der Antwort

Zum Formatieren und Senden der Datendatei an die Anomalieerkennungs-API können Sie eine Abfrage für die oben erstellte Tabelle aufrufen. Öffnen Sie im Power Query-Editor im Menüband Home das Neue Quelle Dropdownmenü, und wählen Sie Blank Query aus.

Stellen Sie sicher, dass Ihre neue Abfrage ausgewählt ist, und wählen Sie dann Erweiterter Editor aus.

Ein Bild des Bildschirms

Verwenden Sie im Erweiterter Editor den folgenden Power Query M-Codeausschnitt, um die Spalten aus der Tabelle zu extrahieren und an die API zu senden. Anschließend erstellt die Abfrage aus der JSON-Antwort eine Tabelle und gibt diese zurück. Ersetzen Sie die Variable apiKey durch Ihren gültigen Anomalieerkennungs-API Schlüssel, und endpoint durch Ihren Endpunkt. Nachdem Sie die Abfrage in die Erweiterter Editor eingegeben haben, wählen Sie Done aus.

(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

Rufen Sie die Abfrage auf Ihrem Datenblatt durch Auswahl von Sheet1 unter Parameter eingeben auf, und wählen Sie Aufrufen aus.

Abbildung der Aufruffunktion

Wichtig

Denken Sie daran, den Schlüssel aus Ihrem Code zu entfernen, wenn Sie fertig sind, und ihn niemals zu veröffentlichen. Verwenden Sie für die Produktion eine sichere Möglichkeit zum Speichern und Zugreifen auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen finden Sie im Artikel Azure KI Services security.

Datenschutz und Authentifizierung für die Datenquelle

Hinweis

Beachten Sie die Richtlinien Ihres Unternehmens für den Schutz von Daten und den Zugriff darauf. Weitere Informationen finden Sie unter Power BI Desktop-Datenschutzstufen.

Sie erhalten möglicherweise eine Warnmeldung, wenn Sie versuchen, die Abfrage auszuführen, da sie eine externe Datenquelle verwendet.

Ein Bild das eine von Power BI erstellte Warnung zeigt

Um dieses Problem zu beheben, wählen Sie Datei und Optionen und Einstellungen aus. Wählen Sie dann Optionen aus. Wählen Sie unter Aktuelle Datei zunächst Datenschutz und dann Sicherheitsstufen ignorieren und potenziell die Leistung verbessern aus.

Außerdem erhalten Sie möglicherweise eine Meldung, in der Sie aufgefordert werden, anzugeben, wie Sie sich mit der API verbinden möchten.

Abbildung einer Anforderung zur Angabe von Anmeldeinformationen für den Zugriff

Um dieses Problem zu beheben, wählen Sie in der Meldung Anmeldeinformationen bearbeiten aus. Wählen Sie im eingeblendeten Dialogfeld Anonym aus, um mit der API eine anonyme Verbindung herzustellen. Wählen Sie dann Verbinden aus.

Wählen Sie anschließend auf dem Menüband Start die Option Schließen und anwenden aus, um die Änderungen anzuwenden.

Visualisieren der Anomalieerkennungs-API Antwort

Beginnen Sie im Hauptbildschirm Power BI mit der Verwendung der oben erstellten Abfragen, um die Daten zu visualisieren. Wählen Sie in Visualisierungen zuerst Liniendiagramm aus. Fügen Sie dann den Zeitstempel der aufgerufenen Funktion zur Achse des Liniendiagramms hinzu. Klicken Sie mit der rechten Maustaste darauf, und wählen Sie Zeitstempel aus.

Mit der rechten Maustaste auf den Wert „Zeitstempel“ klicken

Fügen Sie die folgenden Felder aus der aufgerufenen Funktion dem Feld Werte des Diagramms hinzu. Erstellen Sie Ihr Diagramm anhand des folgenden Screenshots.

  • Wert
  • Obere Ränder
  • LowerMargins
  • Erwartete Werte

Abbildung der Diagrammeinstellungen

Wählen Sie nach dem Hinzufügen der Felder das Diagramm aus, und ändern Sie dessen Größe so, dass alle Datenpunkte angezeigt werden. Ihr Diagramm sieht etwa wie der folgende Screenshot aus:

Abbildung der Diagrammvisualisierung

Anzeigen anomaler Datenpunkte

Rechts im fenster Power BI unterhalb des Bereichs FIELDS, Klicken Sie mit der rechten Maustaste auf Value unter der Abfrage Invoked Function, und wählen Sie Neue Schnellmessung aus.

Abbildung des Bildschirms „Neues Quickmeasure“

Wählen Sie auf dem eingeblendeten Bildschirm als Berechnung Gefilterter Wert aus. Legen Sie Basiswert auf Sum of Value fest. Ziehen Sie dann IsAnomaly aus den Feldern von Aufgerufene Funktion auf Filter. Wählen Sie True im Dropdownmenü Filter aus.

Zweite Abbildung des neuen Bildschirms „Quickmeasures“

Nachdem Sie OK ausgewählt haben, sehen Sie unten in der Liste Ihrer Felder ein Value for True-Feld. Klicken Sie mit der rechten Maustaste darauf, und benennen Sie es in Anomalie um. Fügen Sie es dem Bereich Werte des Diagramms hinzu. Wählen Sie dann das Tool Format aus, und legen Sie den Typ der X-Achse auf Kategorie fest.

Abbildung der Einstellungen für das Format der x-Achse

Wenden Sie Farben auf Ihr Diagramm an, indem Sie das Tool Format und dann Datenfarben auswählen. Ihr Diagramm sollte etwa wie folgt aussehen:

Abbildung des endgültigen Diagramms