Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Library-Referenzdokumentation |Library Quellcode | Package (NuGet) |Beispielcode auf GitHub finden
Erfahren Sie etwas über die ersten Schritte mit der Clientbibliothek für Anomalieerkennung für C#. Führen Sie diese Schritte aus, um das Paket zu installieren und mit der Verwendung der vom Dienst zur Verfügung gestellten Algorithmen zu beginnen. Mit dem Anomalieerkennungsdienst können Sie Anomalien in Zeitreihendaten ermitteln, da unabhängig von der Branche, dem Szenario oder der Datenmenge automatisch die am besten geeigneten Modelle für Ihre Daten angewandt werden.
Mit der Clientbibliothek für Anomalieerkennung für C# ist Folgendes möglich:
- Erkennen von Anomalien in Ihrem gesamten Zeitreihendataset als Batchanforderung
- Erkennen des Anomaliestatus des letzten Datenpunkts in Ihrer Zeitreihe
- Erkennen von Trendänderungspunkten in Ihrem Dataset
Voraussetzungen
- Ein Azure-Abonnement – Create one for free
- Die aktuelle Version von .NET Core
- Sobald Sie Ihr Azure-Abonnement haben, erstellen Sie eine Anomaliedetektorressource im Azure Portal, um Ihren Schlüssel und Endpunkt abzurufen. Warten Sie die Bereitstellung ab, und wählen Sie dann die Schaltfläche Zu Ressource wechseln aus. Sie können den kostenlosen Tarif (
F0) verwenden, um den Dienst zu testen, und später für die Produktion auf einen kostenpflichtigen Tarif upgraden.
Einrichten
Erstellen einer neuen .NET Core-Anwendung
Verwenden Sie in einem Konsolenfenster (z. B. cmd, PowerShell oder Bash) den Befehl dotnet new zum Erstellen einer neuen Konsolen-App mit dem Namen anomaly-detector-quickstart. Mit diesem Befehl wird ein einfaches "Hallo Welt"-Projekt mit einer einzigen C#-Quelldatei erstellt: Program.cs.
dotnet new console -n anomaly-detector-quickstart
Wechseln Sie zum Ordner der neu erstellten App. Sie können die Anwendung mit folgendem Befehl erstellen:
dotnet build
Die Buildausgabe sollte keine Warnungen oder Fehler enthalten.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
Installieren der Clientbibliothek
Installieren Sie im Anwendungsverzeichnis die Anomaly Detector-Clientbibliothek für .NET mit dem folgenden Befehl:
dotnet add package Azure.AI.AnomalyDetector --prerelease
Abrufen von Schlüssel und Endpunkt
Für einen erfolgreichen Aufruf des Anomalieerkennungsdiensts benötigen Sie die folgenden Werte:
| Variablenname | Wert |
|---|---|
ANOMALY_DETECTOR_ENDPOINT |
Dieser Wert befindet sich im Keys & Endpoint Abschnitt, wenn Sie die Ressource im Azure-Portal untersuchen. Beispiel für einen Endpunkt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Den Wert des API-Schlüssels finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. Sie können KEY1 oder KEY2 verwenden. |
DATA_PATH |
In dieser Schnellstartanleitung wird die datei request-data.csv verwendet, die aus unseren beispieldaten GitHub heruntergeladen werden kann. Beispiel-Pfad: c:\\test\\request-data.csv |
Wechseln Sie im Azure-Portal zu Ihrer Ressource. Die Werte für Endpunkt und Schlüssel finden Sie im Abschnitt Ressourcenverwaltung. Kopieren Sie die Werte für Endpunkt und Zugriffsschlüssel, da Sie beide für die Authentifizierung Ihrer API-Aufrufe benötigen. Sie können KEY1 oder KEY2 verwenden. Wenn Sie jederzeit zwei Schlüssel zur Verfügung haben, können Sie die Schlüssel auf sichere Weise rotieren und neu generieren, ohne Dienstunterbrechungen zu verursachen.
Erstellen von Umgebungsvariablen
Erstellen und Zuweisen von beständigen Umgebungsvariablen für Ihren Schlüssel und Endpunkt.
Wichtig
Wir empfehlen die Microsoft Entra ID Authentifizierung mit verwalteten Identitäten für Azure-Ressourcen, um zu vermeiden, dass Anmeldeinformationen zusammen mit Ihren in der Cloud ausgeführten Anwendungen gespeichert werden.
Verwenden Sie API-Schlüssel mit Vorsicht. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich. Wenn Sie API-Schlüssel verwenden, speichern Sie sie sicher in Azure Key Vault, drehen Sie die Schlüssel regelmäßig, und beschränken Sie den Zugriff auf Azure Key Vault mithilfe rollenbasierter Zugriffssteuerung und Netzwerkzugriffseinschränkungen. Weitere Informationen zur sicheren Verwendung von API-Schlüsseln in Ihren Apps finden Sie unter API-Schlüssel mit Azure Key Vault.
Weitere Informationen zur Sicherheit von AI-Diensten finden Sie unter Authenticate-Anforderungen an Azure KI Services.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Herunterladen von Beispieldaten
In dieser Schnellstartanleitung wird die Datei request-data.csv verwendet, die aus unseren beispieldaten GitHub heruntergeladen werden kann
Sie können die Beispieldaten auch herunterladen, indem Sie folgenden Befehl ausführen:
curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv
Erkennen von Anomalien
Öffnen Sie im Projektverzeichnis die Datei program.cs, und ersetzen Sie den Inhalt durch den folgenden Code:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Azure;
using Azure.AI.AnomalyDetector;
using static System.Environment;
namespace anomaly_detector_quickstart
{
internal class Program
{
static void Main(string[] args)
{
string endpoint = GetEnvironmentVariable("ANOMALY_DETECTOR_ENDPOINT");
string apiKey = GetEnvironmentVariable("ANOMALY_DETECTOR_API_KEY");
var endpointUri = new Uri(endpoint);
var credential = new AzureKeyCredential(apiKey);
//create client
AnomalyDetectorClient client = new AnomalyDetectorClient(endpointUri, credential);
//read data
//example: string datapath = @"c:\test\request-data.csv";
string datapath = @"REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH";
List<TimeSeriesPoint> list = File.ReadAllLines(datapath, Encoding.UTF8)
.Where(e => e.Trim().Length != 0)
.Select(e => e.Split(','))
.Where(e => e.Length == 2)
.Select(e => new TimeSeriesPoint(float.Parse(e[1])) { Timestamp = DateTime.Parse(e[0]) }).ToList();
//create request
UnivariateDetectionOptions request = new UnivariateDetectionOptions(list)
{
Granularity = TimeGranularity.Daily
};
UnivariateEntireDetectionResult result = client.DetectUnivariateEntireSeries(request);
bool hasAnomaly = false;
for (int i = 0; i < request.Series.Count; ++i)
{
if (result.IsAnomaly[i])
{
Console.WriteLine("Anomaly detected at index: {0}.", i);
hasAnomaly = true;
}
}
if (!hasAnomaly)
{
Console.WriteLine("No anomalies detected in the series.");
}
}
}
}
Führen Sie die Anwendung mit dem folgenden Befehl aus:
dotnet run program.cs
Ausgabe
Anomaly detected at index: 3
Anomaly detected at index: 18
Anomaly detected at index: 21
Anomaly detected at index: 22
Anomaly detected at index: 23
Anomaly detected at index: 24
Anomaly detected at index: 25
Anomaly detected at index: 28
Anomaly detected at index: 29
Anomaly detected at index: 30
Anomaly detected at index: 31
Anomaly detected at index: 32
Anomaly detected at index: 35
Anomaly detected at index: 44
Codedetails
Verstehen der Ergebnisse
Im Code oben werden die Beispieldaten gelesen und in ein DetectRequest-Objekt konvertiert. Rufen Sie File.ReadAllLines mit dem Dateipfad auf, erstellen Sie eine Liste der TimeSeriesPoint-Objekte, und entfernen Sie alle Zeilenvorschubzeichen. Extrahieren Sie die Werte, trennen Sie den Zeitstempel von seinem numerischen Wert, und fügen Sie diese einem neuen TimeSeriesPoint-Objekt hinzu. Das DetectRequest-Objekt besteht aus einer Reihe von Datenpunkten mit TimeGranularity.Daily als Wert für die Granularität (oder Periodizität) der Datenpunkte.
Als Nächstes rufen wir die DetectEntireSeriesAsync-Methode des Clients mit dem DetectRequest-Objekt auf und warten die Antwort in Form eines EntireDetectResponse-Objekts ab. Anschließend durchlaufen wir die IsAnomaly-Werte der Antwort und geben alle Werte aus, die „true“ sind. Diese Werte stimmen mit dem Index der anomalen Datenpunkte überein, sofern welche gefunden wurden.
Bereinigen von Ressourcen
Wenn Sie eine Ressource der Anomalieerkennung bereinigen und entfernen möchten, können Sie die eigentliche Ressource oder die Ressourcengruppe löschen. Wenn Sie die Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die ihr zugeordnet sind. Möglicherweise sollten Sie auch die von Ihnen erstellten Umgebungsvariablen löschen, wenn Sie diese nicht mehr verwenden möchten.
Library-Referenzdokumentation |Library Quellcode | Package (npm) |Finden Sie den Beispielcode für GitHub
Hier erfahren Sie etwas über die ersten Schritte mit der Anomalieerkennungs-Clientbibliothek für JavaScript. Führen Sie die hier angegebenen Schritte aus, um das Paket zu installieren und mit der Verwendung der bereitgestellten Algorithmen zu beginnen. Mit dem Anomalieerkennungsdienst können Sie Anomalien in Zeitreihendaten ermitteln, da unabhängig von der Branche, dem Szenario oder der Datenmenge automatisch das am besten geeignete Modell für Ihre Daten angewandt wird.
Mit der Anomalieerkennungs-Clientbibliothek für JavaScript ist Folgendes möglich:
- Erkennen von Anomalien in Ihrem gesamten Zeitreihendataset als Batchanforderung
- Erkennen des Anomaliestatus des letzten Datenpunkts in Ihrer Zeitreihe
- Erkennen von Trendänderungspunkten in Ihrem Dataset
Voraussetzungen
- Ein Azure-Abonnement – Create one for free
- Die aktuelle Version von Node.js
- Sobald Sie Ihr Azure-Abonnement haben, erstellen Sie eine Anomaliedetektorressource im Azure Portal, um Ihren Schlüssel und Endpunkt abzurufen. Warten Sie die Bereitstellung ab, und wählen Sie dann die Schaltfläche Zu Ressource wechseln aus. Sie können den kostenlosen Tarif (
F0) verwenden, um den Dienst zu testen, und später für die Produktion auf einen kostenpflichtigen Tarif upgraden.
Einrichten
Erstellen einer neuen Node.js-Anwendung
Erstellen Sie in einem Konsolenfenster (etwa cmd, PowerShell oder Bash) ein neues Verzeichnis für Ihre App, und rufen Sie es auf.
mkdir myapp && cd myapp
Erstellen Sie eine Datei package.json mit folgendem Inhalt:
{
"dependencies": {
"@azure/ai-anomaly-detector": "next",
"@azure-rest/ai-anomaly-detector": "next",
"@azure/core-auth": "^1.3.0",
"csv-parse": "^5.3.0"
}
}
Installieren der Clientbibliothek
Installieren Sie die erforderlichen npm-Pakete, indem Sie den folgenden Befehl in demselben Verzeichnis ausführen, in dem sich Ihre Datei „package.json“ befindet:
npm install
Abrufen von Schlüssel und Endpunkt
Für einen erfolgreichen Aufruf des Anomalieerkennungsdiensts benötigen Sie die folgenden Werte:
| Variablenname | Wert |
|---|---|
ANOMALY_DETECTOR_ENDPOINT |
Dieser Wert befindet sich im Keys & Endpoint Abschnitt, wenn Sie die Ressource im Azure-Portal untersuchen. Beispiel für einen Endpunkt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Den Wert des API-Schlüssels finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. Sie können KEY1 oder KEY2 verwenden. |
datapath |
In dieser Schnellstartanleitung wird die datei request-data.csv verwendet, die aus unseren beispieldaten GitHub heruntergeladen werden kann. |
Wechseln Sie im Azure-Portal zu Ihrer Ressource. Die Werte für Endpunkt und Schlüssel finden Sie im Abschnitt Ressourcenverwaltung. Kopieren Sie die Werte für Endpunkt und Zugriffsschlüssel, da Sie beide für die Authentifizierung Ihrer API-Aufrufe benötigen. Sie können KEY1 oder KEY2 verwenden. Wenn Sie jederzeit zwei Schlüssel zur Verfügung haben, können Sie die Schlüssel auf sichere Weise rotieren und neu generieren, ohne Dienstunterbrechungen zu verursachen.
Erstellen von Umgebungsvariablen
Erstellen und Zuweisen von beständigen Umgebungsvariablen für Ihren Schlüssel und Endpunkt.
Wichtig
Wir empfehlen die Microsoft Entra ID Authentifizierung mit verwalteten Identitäten für Azure-Ressourcen, um zu vermeiden, dass Anmeldeinformationen zusammen mit Ihren in der Cloud ausgeführten Anwendungen gespeichert werden.
Verwenden Sie API-Schlüssel mit Vorsicht. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich. Wenn Sie API-Schlüssel verwenden, speichern Sie sie sicher in Azure Key Vault, drehen Sie die Schlüssel regelmäßig, und beschränken Sie den Zugriff auf Azure Key Vault mithilfe rollenbasierter Zugriffssteuerung und Netzwerkzugriffseinschränkungen. Weitere Informationen zur sicheren Verwendung von API-Schlüsseln in Ihren Apps finden Sie unter API-Schlüssel mit Azure Key Vault.
Weitere Informationen zur Sicherheit von AI-Diensten finden Sie unter Authenticate-Anforderungen an Azure KI Services.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Herunterladen von Beispieldaten
In dieser Schnellstartanleitung wird die Datei request-data.csv verwendet, die aus unseren beispieldaten GitHub heruntergeladen werden kann
Sie können die Beispieldaten auch herunterladen, indem Sie folgenden Befehl ausführen:
curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv
Erkennen von Anomalien
Erstellen Sie eine Datei namens index.js, und ersetzen Sie sie durch den folgenden Code:
const AnomalyDetector = require("@azure-rest/ai-anomaly-detector").default,
{ isUnexpected } = require("@azure-rest/ai-anomaly-detector");
const { AzureKeyCredential } = require("@azure/core-auth");
const { parse } = require("csv-parse/sync");
const fs = require("fs");
// Retrieve the endpoint and key from the environment variables.
const apiKey = process.env["ANOMALY_DETECTOR_API_KEY"] || "";
const endpoint = process.env["ANOMALY_DETECTOR_ENDPOINT"] || "";
const timeSeriesDataPath = "./request-data.csv";
function read_series_from_file(path) {
let result = Array();
let input = fs.readFileSync(path).toString();
let parsed = parse(input, { skip_empty_lines: true });
parsed.forEach(function (e) {
result.push({ timestamp: new Date(e[0]), value: Number(e[1]) });
});
return result;
}
async function main() {
// create client
const credential = new AzureKeyCredential(apiKey);
const client = AnomalyDetector(endpoint, credential);
// construct request
const options = {
body: {
granularity: "daily",
imputeMode: "auto",
maxAnomalyRatio: 0.25,
sensitivity: 95,
series: read_series_from_file(timeSeriesDataPath),
},
headers: { "Content-Type": "application/json" },
};
// get last detect result
const result = await client.path("/timeseries/entire/detect").post(options);
if (isUnexpected(result)) {
throw result;
}
if (result.body.isAnomaly) {
result.body.isAnomaly.forEach(function (anomaly, index) {
if (anomaly === true) {
console.log(index);
}
});
} else {
console.log("There is no anomaly detected from the series.");
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
module.exports = { main };
Ausführen der Anwendung
Führen Sie die Anwendung mit dem Befehl node für die Schnellstartdatei aus.
node index.js
Ausgabe
Anomalies were detected from the series at index:
3
18
21
22
23
24
25
28
29
30
31
32
35
44
Verstehen der Ergebnisse
Im obigen Code rufen wir die Anomalieerkennungs-API auf, um Anomalien über die gesamte Zeitreihe als Batch mit der detectEntireSeries()-Methode des Clients zu erkennen. Wir speichern das zurückgegebene Objekt AnomalyDetectorDetectEntireSeriesResponse. Anschließend durchlaufen wir die isAnomaly-Liste der Antwort und geben den Index aller true-Werte aus. Diese Werte stimmen mit dem Index der anomalen Datenpunkte überein, sofern welche gefunden wurden.
Bereinigen von Ressourcen
Wenn Sie eine Ressource der Anomalieerkennung bereinigen und entfernen möchten, können Sie die eigentliche Ressource oder die Ressourcengruppe löschen. Wenn Sie die Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die ihr zugeordnet sind. Möglicherweise sollten Sie auch die von Ihnen erstellten Umgebungsvariablen löschen, wenn Sie diese nicht mehr verwenden möchten.
Library-Referenzdokumentation |Library-Quellcode | Package (PyPi) |Finden Sie den Beispielcode auf GitHub
Erste Schritte mit der Anomaly Detector-Clientbibliothek für Python. Führen Sie die hier angegebenen Schritte aus, um das Paket zu installieren und mit der Verwendung der bereitgestellten Algorithmen zu beginnen. Mit dem Anomalieerkennungsdienst können Sie Anomalien in Zeitreihendaten ermitteln, da unabhängig von der Branche, dem Szenario oder der Datenmenge automatisch die am besten geeigneten Modelle für Ihre Daten angewandt werden.
Verwenden Sie die Anomaly Detector-Clientbibliothek für Python, um:
- Erkennen von Anomalien in Ihrem gesamten Zeitreihendataset als Batchanforderung
- Erkennen des Anomaliestatus des letzten Datenpunkts in Ihrer Zeitreihe
- Erkennen von Trendänderungspunkten in Ihrem Dataset
Voraussetzungen
- Ein Azure-Abonnement – Create one for free
- Python 3.x
- Pandas-Bibliothek für Datenanalyse
- Sobald Sie Ihr Azure-Abonnement haben, erstellen Sie eine Anomaliedetektorressource im Azure Portal, um Ihren Schlüssel und Endpunkt abzurufen. Warten Sie die Bereitstellung ab, und wählen Sie dann die Schaltfläche Zu Ressource wechseln aus. Sie können den kostenlosen Tarif (
F0) verwenden, um den Dienst zu testen, und später für die Produktion auf einen kostenpflichtigen Tarif upgraden.
Einrichten
Installieren der Clientbibliothek Sie können die Clientbibliothek wie folgt installieren:
pip install --upgrade azure.ai.anomalydetector
Abrufen von Schlüssel und Endpunkt
Für einen erfolgreichen Aufruf des Anomalieerkennungsdiensts benötigen Sie die folgenden Werte:
| Variablenname | Wert |
|---|---|
ANOMALY_DETECTOR_ENDPOINT |
Dieser Wert befindet sich im Keys & Endpoint Abschnitt, wenn Sie die Ressource im Azure-Portal untersuchen. Beispiel für einen Endpunkt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Den Wert des API-Schlüssels finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. Sie können KEY1 oder KEY2 verwenden. |
DATA_PATH |
In dieser Schnellstartanleitung wird die datei request-data.csv verwendet, die aus unseren beispieldaten GitHub heruntergeladen werden kann. Beispiel-Pfad: c:\\test\\request-data.csv |
Wechseln Sie im Azure-Portal zu Ihrer Ressource. Die Werte für Endpunkt und Schlüssel finden Sie im Abschnitt Ressourcenverwaltung. Kopieren Sie die Werte für Endpunkt und Zugriffsschlüssel, da Sie beide für die Authentifizierung Ihrer API-Aufrufe benötigen. Sie können KEY1 oder KEY2 verwenden. Wenn Sie jederzeit zwei Schlüssel zur Verfügung haben, können Sie die Schlüssel auf sichere Weise rotieren und neu generieren, ohne Dienstunterbrechungen zu verursachen.
Erstellen von Umgebungsvariablen
Erstellen und Zuweisen von beständigen Umgebungsvariablen für Ihren Schlüssel und Endpunkt.
Wichtig
Wir empfehlen die Microsoft Entra ID Authentifizierung mit verwalteten Identitäten für Azure-Ressourcen, um zu vermeiden, dass Anmeldeinformationen zusammen mit Ihren in der Cloud ausgeführten Anwendungen gespeichert werden.
Verwenden Sie API-Schlüssel mit Vorsicht. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich. Wenn Sie API-Schlüssel verwenden, speichern Sie sie sicher in Azure Key Vault, drehen Sie die Schlüssel regelmäßig, und beschränken Sie den Zugriff auf Azure Key Vault mithilfe rollenbasierter Zugriffssteuerung und Netzwerkzugriffseinschränkungen. Weitere Informationen zur sicheren Verwendung von API-Schlüsseln in Ihren Apps finden Sie unter API-Schlüssel mit Azure Key Vault.
Weitere Informationen zur Sicherheit von AI-Diensten finden Sie unter Authenticate-Anforderungen an Azure KI Services.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Herunterladen von Beispieldaten
In dieser Schnellstartanleitung wird die Datei request-data.csv verwendet, die aus unseren beispieldaten GitHub heruntergeladen werden kann
Sie können die Beispieldaten auch herunterladen, indem Sie folgenden Befehl ausführen:
curl "https://raw.githubusercontent.com/Azure/azure-sdk-for-python/main/sdk/anomalydetector/azure-ai-anomalydetector/samples/sample_data/request-data.csv" --output request-data.csv
Erkennen von Anomalien
Erstellen Sie eine neue Python Datei namens quickstart.py. Öffnen Sie diese anschließend in Ihrem bevorzugten Editor oder Ihrer bevorzugten IDE.
Ersetzen Sie den Inhalt von „quickstart.py“ durch den folgenden Code. Ändern Sie den Code, um die Namen der Umgebungsvariablen für Ihren Schlüssel, den Endpunkt und den Pfad der Zeitreihendaten hinzuzufügen:
from azure.ai.anomalydetector import AnomalyDetectorClient from azure.ai.anomalydetector.models import * from azure.core.credentials import AzureKeyCredential import pandas as pd import os API_KEY = os.environ['ANOMALY_DETECTOR_API_KEY'] ENDPOINT = os.environ['ANOMALY_DETECTOR_ENDPOINT'] DATA_PATH = "REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH" #example: c:\\test\\request-data.csv client = AnomalyDetectorClient(ENDPOINT, AzureKeyCredential(API_KEY)) series = [] data_file = pd.read_csv(DATA_PATH, header=None, encoding='utf-8', date_parser=[0]) for index, row in data_file.iterrows(): series.append(TimeSeriesPoint(timestamp=row[0], value=row[1])) request = UnivariateDetectionOptions(series=series, granularity=TimeGranularity.DAILY) change_point_response = client.detect_univariate_change_point(request) anomaly_response = client.detect_univariate_entire_series(request) for i in range(len(data_file.values)): if (change_point_response.is_change_point[i]): print("Change point detected at index: "+ str(i)) elif (anomaly_response.is_anomaly[i]): print("Anomaly detected at index: "+ str(i))Wichtig
Verwenden Sie für die Produktion eine sichere Möglichkeit zum Speichern und Zugreifen auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen zur Sicherheit von Anmeldeinformationen finden Sie im Artikel Azure KI Services security.
Führen Sie die Anwendung mit dem Befehl
pythonfür die Schnellstartdatei aus.python quickstart.py
Ausgabe
Anomaly detected at index: 3
Anomaly detected at index: 18
Change point detected at index: 20
Anomaly detected at index: 21
Anomaly detected at index: 22
Anomaly detected at index: 23
Anomaly detected at index: 24
Anomaly detected at index: 25
Change point detected at index: 27
Anomaly detected at index: 28
Anomaly detected at index: 29
Anomaly detected at index: 30
Anomaly detected at index: 31
Anomaly detected at index: 32
Anomaly detected at index: 35
Anomaly detected at index: 44
Verstehen der Ergebnisse
In unserem obigen Code rufen wir die Anomalieerkennungs-API zweimal auf. Der erste Aufruf sucht in unserer Beispieldatenreihe mithilfe der Methode detect_change_point nach Trendumkehrpunkten. Dieser Aufruf gibt einen ChangePointDetectResponse-Wert zurück, den wir in einer Variablen gespeichert haben, der wir den Namen change_point_request gegeben haben. Anschließend durchlaufen wir die is_change_point-Liste der Antwort und geben den Index aller Werte mit dem booleschen Wert true aus.
Mit dem zweiten Aufruf wird die gesamte Beispieldatenreihe mithilfe der Methode detect_entire_series auf Anomalien überprüft. Dieser Aufruf gibt einen EntireDetectResponse-Wert zurück, den wir in einer Variablen gespeichert haben, der wir den Namen anomaly_response gegeben haben. Wir durchlaufen die is_anomaly-Liste der Antwort und geben den Index aller Werte mit dem booleschen Wert true aus. Alternativ hätten wir die Methode detect_last_point verwenden können, die für die Erkennung von Anomalien in Echtzeitdaten besser geeignet ist. Weitere Informationen finden Sie im Leitfaden zu bewährten Methoden.
Visualisieren der Ergebnisse
Zum Visualisieren der Anomalien und Umkehrpunkte in Bezug auf die Beispieldatenreihe verwenden wir die beliebte Open-Source-Bibliothek matplotlib.
Bibliothek Installieren.
pip install matplotlibÄndern Sie Ihre quickstart.py-Datei mit dem folgenden Code:
from azure.ai.anomalydetector import AnomalyDetectorClient from azure.ai.anomalydetector.models import * from azure.core.credentials import AzureKeyCredential import pandas as pd import matplotlib.pyplot as plt import matplotlib.dates as mdates import os API_KEY = os.environ['ANOMALY_DETECTOR_API_KEY'] ENDPOINT = os.environ['ANOMALY_DETECTOR_ENDPOINT'] DATA_PATH = "REPLACE_WITH_YOUR_LOCAL_SAMPLE_REQUEST_DATA_PATH" #example: c:\\test\\request-data.csv client = AnomalyDetectorClient(ENDPOINT, AzureKeyCredential(API_KEY)) series = [] data_file = pd.read_csv(DATA_PATH, header=None, encoding='utf-8', date_parser=[0]) for index, row in data_file.iterrows(): series.append(TimeSeriesPoint(timestamp=row[0], value=row[1])) request = UnivariateDetectionOptions(series=series, granularity=TimeGranularity.DAILY) change_point_response = client.detect_univariate_change_point(request) anomaly_response = client.detect_univariate_entire_series(request) for i in range(len(data_file.values)): temp_date_to_num = mdates.date2num(data_file.values[i]) date= temp_date_to_num[0] if (change_point_response.is_change_point[i]): plt.plot(date,data_file.values[i][1], 's', color ='blue') print("Change point detected at index: "+ str(i)) elif (anomaly_response.is_anomaly[i]): plt.plot(date,data_file.values[i][1], '^', color="red") print("Anomaly detected at index: "+ str(i)) else: plt.plot(date,data_file.values[i][1], 'o', color ='green') plt.show()Wichtig
Verwenden Sie für die Produktion eine sichere Möglichkeit zum Speichern und Zugreifen auf Ihre Anmeldeinformationen wie Azure Key Vault. Weitere Informationen zur Sicherheit von Anmeldeinformationen finden Sie im Artikel Azure KI Services security.
Führen Sie die Anwendung mit dem Befehl
pythonfür die Schnellstartdatei aus.python quickstart.py
Ausgabe
In diesem Codebeispiel haben wir die matplotlib-Bibliothek hinzugefügt, damit wir normale Datenpunkte leicht von Umkehrpunkten und Anomalien unterscheiden und sie visualisieren können. Umkehrpunkte werden durch blaue Quadrate dargestellt, Anomalien sind rote Dreiecke, und normale Datenpunkte sind grüne Kreise. Datumsangaben werden mithilfe der matplotlib-Methode date2num in Zahlen konvertiert, um diagrammfreundliche Werte für die y-Achse von Diagrammen bereitzustellen.
Bereinigen von Ressourcen
Wenn Sie eine Ressource der Anomalieerkennung bereinigen und entfernen möchten, können Sie die eigentliche Ressource oder die Ressourcengruppe löschen. Wenn Sie die Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die ihr zugeordnet sind. Möglicherweise sollten Sie auch die von Ihnen erstellten Umgebungsvariablen löschen, wenn Sie diese nicht mehr verwenden möchten.
In dieser Schnellstartanleitung wird beschrieben, wie Sie Anomalien in Zeitreihendaten erkennen, indem Sie den Anomalieerkennungsdienst und cURL verwenden.
Allgemeine Informationen zu den Konzepten der Anomalieerkennung finden Sie im Übersichtsartikel.
Voraussetzungen
- Ein Azure-Abonnement – Create one for free
- Sobald Sie Ihr Azure-Abonnement haben, erstellen Sie eine Anomaliedetektorressource im Azure Portal, um Ihren Schlüssel und Endpunkt abzurufen. Warten Sie die Bereitstellung ab, und wählen Sie dann die Schaltfläche Zu Ressource wechseln aus. Sie können den kostenlosen Tarif (
F0) verwenden, um den Dienst zu testen, und später für die Produktion auf einen kostenpflichtigen Tarif upgraden. - Eine gültige JSON-Datei mit Zeitreihendaten für Anomalietests Wenn Sie nicht über eine eigene Datei verfügen, können Sie eine sample.json Datei aus der Azure AI Foundry REST-API-Referenz erstellen.
Abrufen von Schlüssel und Endpunkt
Für einen erfolgreichen Aufruf des Anomalieerkennungsdiensts benötigen Sie die folgenden Werte:
| Variablenname | Wert |
|---|---|
ANOMALY_DETECTOR_ENDPOINT |
Dieser Wert befindet sich im Keys & Endpoint Abschnitt, wenn Sie die Ressource im Azure-Portal untersuchen. Beispiel für einen Endpunkt: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Den Wert des API-Schlüssels finden Sie im Abschnitt Schlüssel und Endpunkt, wenn Sie die Ressource über das Azure-Portal untersuchen. Sie können KEY1 oder KEY2 verwenden. |
Wechseln Sie im Azure-Portal zu Ihrer Ressource. Die Werte für Endpunkt und Schlüssel finden Sie im Abschnitt Ressourcenverwaltung. Kopieren Sie die Werte für Endpunkt und Zugriffsschlüssel, da Sie beide für die Authentifizierung Ihrer API-Aufrufe benötigen. Sie können KEY1 oder KEY2 verwenden. Wenn Sie jederzeit zwei Schlüssel zur Verfügung haben, können Sie die Schlüssel auf sichere Weise rotieren und neu generieren, ohne Dienstunterbrechungen zu verursachen.
Erstellen von Umgebungsvariablen
Erstellen und Zuweisen von beständigen Umgebungsvariablen für Ihren Schlüssel und Endpunkt.
Wichtig
Wir empfehlen die Microsoft Entra ID Authentifizierung mit verwalteten Identitäten für Azure-Ressourcen, um zu vermeiden, dass Anmeldeinformationen zusammen mit Ihren in der Cloud ausgeführten Anwendungen gespeichert werden.
Verwenden Sie API-Schlüssel mit Vorsicht. Fügen Sie den API-Schlüssel nicht direkt in Ihren Code ein, und machen Sie ihn nicht öffentlich zugänglich. Wenn Sie API-Schlüssel verwenden, speichern Sie sie sicher in Azure Key Vault, drehen Sie die Schlüssel regelmäßig, und beschränken Sie den Zugriff auf Azure Key Vault mithilfe rollenbasierter Zugriffssteuerung und Netzwerkzugriffseinschränkungen. Weitere Informationen zur sicheren Verwendung von API-Schlüsseln in Ihren Apps finden Sie unter API-Schlüssel mit Azure Key Vault.
Weitere Informationen zur Sicherheit von AI-Diensten finden Sie unter Authenticate-Anforderungen an Azure KI Services.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Erkennen von Anomalien
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus. Sie müssen die folgenden Werte in den Befehl einfügen.
- Ihren Abonnementschlüssel des Anomalieerkennungsdiensts
- Ihre Endpunktadresse der Anomalieerkennung
- Eine gültige JSON-Datei mit Zeitreihendaten für Anomalietests Wenn Sie nicht über eine eigene Datei verfügen, können Sie eine sample.json Datei aus der Azure AI Foundry REST-API-Referenz erstellen.
curl -v POST "%ANOMALY_DETECTOR_ENDPOINT%/anomalydetector/v1.0/timeseries/entire/detect"
-H "Content-Type: application/json"
-H "Ocp-Apim-Subscription-Key: %ANOMALY_DETECTOR_API_KEY%"
-d "@path_to_sample_file.json"
Ein Beispiel für den vollständigen Befehl als einzelne Zeile:
curl -v POST "%ANOMALY_DETECTOR_ENDPOINT%/anomalydetector/v1.0/timeseries/entire/detect" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: %ANOMALY_DETECTOR_API_KEY%" -d "@c:\test\rest.json"
Alternativ, falls Sie den cURL-Befehl an einer Bash-Shell ausführen, würde Ihr Befehl etwas anders lauten:
curl -v POST "$ANOMALY_DETECTOR_ENDPOINT/anomalydetector/v1.0/timeseries/entire/detect" -H "Content-Type: application/json" -H "Ocp-Apim-Subscription-Key: $ANOMALY_DETECTOR_API_KEY" -d "@c:\test\rest.json"
Wenn Sie die Beispieldaten aus den Voraussetzungen verwendet haben, sollten Sie eine Antwort vom Typ „200“ mit den folgenden Ergebnissen erhalten:
{
"expectedValues": [
827.7940908243968,
798.9133774671927,
888.6058431807189,
900.5606407986661,
962.8389426378304,
933.2591606306954,
891.0784104799666,
856.1781601363697,
809.8987227908941,
807.375129007505,
764.3196682448518,
803.933498594564,
823.5900620883058,
794.0905641334288,
883.164245249282,
894.8419000690953,
956.8430591101258,
927.6285055190114,
885.812983784303,
851.6424797402517,
806.0927886943216,
804.6826815312029,
762.74070738882,
804.0251702513732,
825.3523662579559,
798.0404188724976,
889.3016505577698,
902.4226124345937,
965.867078532635,
937.3200495736695,
896.1720524711102,
862.0087368413656,
816.4662342097423,
814.4297745524709,
771.8614479159354,
811.859271346729,
831.8998279215521,
802.947544797165,
892.5684407435083,
904.5488214533809,
966.8527063844707,
937.3168391003043,
895.180003672544,
860.3649596356635,
814.1707285969043,
811.9054862686213,
769.1083769610742,
809.2328084659704
],
"upperMargins": [
41.389704541219835,
39.94566887335964,
44.43029215903594,
45.02803203993331,
48.14194713189152,
46.66295803153477,
44.55392052399833,
42.808908006818484,
40.494936139544706,
40.36875645037525,
38.215983412242586,
40.196674929728196,
41.17950310441529,
39.70452820667144,
44.1582122624641,
44.74209500345477,
47.84215295550629,
46.38142527595057,
44.290649189215145,
42.58212398701258,
40.30463943471608,
40.234134076560146,
38.137035369441,
40.201258512568664,
41.267618312897795,
39.90202094362488,
44.46508252788849,
45.121130621729684,
48.29335392663175,
46.86600247868348,
44.80860262355551,
43.100436842068284,
40.82331171048711,
40.721488727623544,
38.593072395796774,
40.59296356733645,
41.5949913960776,
40.14737723985825,
44.62842203717541,
45.227441072669045,
48.34263531922354,
46.86584195501521,
44.759000183627194,
43.01824798178317,
40.70853642984521,
40.59527431343106,
38.45541884805371,
40.46164042329852
],
"lowerMargins": [
41.389704541219835,
39.94566887335964,
44.43029215903594,
45.02803203993331,
48.14194713189152,
46.66295803153477,
44.55392052399833,
42.808908006818484,
40.494936139544706,
40.36875645037525,
38.215983412242586,
40.196674929728196,
41.17950310441529,
39.70452820667144,
44.1582122624641,
44.74209500345477,
47.84215295550629,
46.38142527595057,
44.290649189215145,
42.58212398701258,
40.30463943471608,
40.234134076560146,
38.137035369441,
40.201258512568664,
41.267618312897795,
39.90202094362488,
44.46508252788849,
45.121130621729684,
48.29335392663175,
46.86600247868348,
44.80860262355551,
43.100436842068284,
40.82331171048711,
40.721488727623544,
38.593072395796774,
40.59296356733645,
41.5949913960776,
40.14737723985825,
44.62842203717541,
45.227441072669045,
48.34263531922354,
46.86584195501521,
44.759000183627194,
43.01824798178317,
40.70853642984521,
40.59527431343106,
38.45541884805371,
40.46164042329852
],
"isAnomaly": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"isPositiveAnomaly": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
true,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"isNegativeAnomaly": [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false
],
"period": 12
}
Weitere Informationen finden Sie in der Azure AI Foundry REST-API-Referenz.
Bereinigen von Ressourcen
Wenn Sie ein Azure KI Services-Abonnement bereinigen und entfernen möchten, können Sie die Ressource oder Ressourcengruppe löschen. Wenn Sie die Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die der Ressourcengruppe zugeordnet sind.
Nächste Schritte
Konzepte:
- Was ist die Anomalieerkennungs-API?
- Anomalieerkennungsmethoden
- Bewährte Praktiken bei der Verwendung der Anomaly-Detector-API.
Anleitungen