Azure Cognitive Services Anomalieerkennung Clientbibliothek für .NET– Version 3.0.0-preview.7
Anomalieerkennung ist ein KI-Dienst mit einer Reihe von APIs, mit dem Sie Anomalien in Ihren Zeitreihendaten mit wenig Machine Learning-Kenntnissen (ML) überwachen und erkennen können, entweder Batchvalidierung oder Echtzeitrückschlüsse.
Quellcode | Paket (NuGet) | API-Referenzdokumentation | Produktdokumentation
Erste Schritte
Voraussetzungen
- Sie benötigen ein Azure-Abonnement , um dieses Paket verwenden zu können.
- Ein vorhandenes Cognitive Services-Anomalieerkennung instance.
Installieren des Pakets
Installieren Sie die Azure Anomalieerkennung-Clientbibliothek für .NET mit NuGet:
dotnet add package Azure.AI.AnomalyDetector --prerelease
Diese Tabelle gibt Aufschluss über die Beziehung zwischen SDK-Versionen und unterstützten API-Versionen des Diensts:
SDK-Version | Unterstützte API-Version des Diensts |
---|---|
3.0.0-preview.6 | 1.1 |
3.0.0-preview.4, 3.0.0-preview.5 | 1.1-preview-1 |
3.0.0-beta.3 | 1.1-preview |
3.0.0-preview.1, 3.0.0-preview.2 | 1.0 |
Authentifizieren des Clients
Sie finden den Endpunkt für Ihre Anomalieerkennung-Dienstressource über das Azure-Portal oder die Azure CLI:
# Get the endpoint for the Anomaly Detector service resource
az cognitiveservices account show --name "resource-name" --resource-group "resource-group-name" --query "properties.endpoint"
Abrufen des API-Schlüssels
Sie können den API-Schlüssel aus der Anomalieerkennung-Dienstressource im Azure-Portal abrufen. Alternativ können Sie den folgenden Azure CLI-Codeausschnitt verwenden, um den API-Schlüssel Ihrer Ressource abzurufen.
az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>
Erstellen von AnomalyDetectorClient mit AzureKeyCredential
Sobald Sie über den Wert für den API-Schlüssel verfügen, erstellen Sie eine AzureKeyCredential
. Mit dem Endpunkt und den Schlüsselanmeldeinformationen können Sie erstellen AnomalyDetectorClient
:
string endpoint = "<endpoint>";
string apiKey = "<apiKey>";
var credential = new AzureKeyCredential(apiKey);
var client = new AnomalyDetectorClient(new Uri(endpoint), credential);
Wichtige Begriffe
Mit dem Anomalieerkennung können Sie entweder Anomalien in einer Variablen mithilfe der univariaten Anomalieerkennung erkennen oder Anomalien in mehreren Variablen mit multivariater Anomalieerkennung erkennen.
Funktion | BESCHREIBUNG |
---|---|
Univariate Anomalieerkennung | Erkennen von Anomalien in einer Variablen, z. B. Einnahmen, Kosten usw. Das Modell wurde automatisch basierend auf Ihrem Datenmuster ausgewählt. |
Multivariate Anomalieerkennung | Erkennen Sie Anomalien in mehreren Variablen mit Korrelationen, die normalerweise von Geräten oder einem anderen komplexen System gesammelt werden. Das zugrunde liegende Modell ist das Graph-Aufmerksamkeitsnetzwerk. |
Univariate Anomalieerkennung
Die univariate Anomalieerkennungs-API bietet Ihnen die Möglichkeit, Anomalien in Zeitreihendaten ohne Kenntnisse in maschinellem Lernen zu überwachen und zu erkennen. Die Algorithmen passen sich an, indem die am besten passenden Modelle für Ihre Daten automatisch identifiziert und angewendet werden, unabhängig von der Branche, dem Szenario oder der Datenmenge. Mithilfe der Zeitreihendaten bestimmt die API die Grenzen für die Anomalieerkennung, die erwarteten Werte und, welche Datenpunkte Anomalien sind.
Für die Verwendung der Anomalieerkennung sind keine Erfahrungen im Bereich des maschinellen Lernens erforderlich. Dank der REST-API können Sie den Dienst einfach in Ihre Anwendungen und Prozesse integrieren.
Mit der univariaten Anomalieerkennung können Sie Anomalien automatisch in Ihren Zeitreihendaten erkennen oder in Echtzeit auftreten.
Funktion | BESCHREIBUNG |
---|---|
Streamingerkennung | Anomalien werden in Ihren Streamingdaten erkannt, indem anhand vorheriger Datenpunkte ermittelt wird, ob der letzte Punkt eine Anomalie ist. Bei diesem Vorgang wird anhand der von Ihnen gesendeten Datenpunkte ein Modell generiert und bestimmt, ob der Zielpunkt eine Anomalie ist. Durch Aufrufen der API mit jedem neu generierten Datenpunkt können Sie Daten während der Erstellung überwachen. |
Batcherkennung | Die Zeitreihe wird verwendet, um alle Anomalien zu erkennen, die in den gesamten Daten potenziell vorhanden sind. Bei diesem Vorgang wird anhand der gesamten Zeitreihendaten ein Modell generiert, bei dem jeder Punkt mit demselben Modell analysiert wird. |
Erkennung von Änderungspunkten | Nutzen Sie Ihre Zeitreihe, um Trendänderungspunkte in Ihren Daten zu erkennen. Bei diesem Vorgang wird anhand der gesamten Zeitreihendaten ein Modell generiert, bei dem jeder Punkt mit demselben Modell analysiert wird. |
Multivariate Anomalieerkennung
Die APIs für die multivariate Anomalieerkennung erweitern die Möglichkeiten von Entwickler*innen durch die einfache Integration fortschrittlicher KI zur Erkennung von Anomalien in Gruppen von Metriken. Dazu sind weder Kenntnisse in maschinellem Lernen noch gekennzeichnete Daten erforderlich. Abhängigkeiten und gegenseitige Wechselwirkungen zwischen bis zu 300 verschiedenen Signalen werden jetzt automatisch als Schlüsselfaktoren gewertet. Diese neue Funktion hilft Ihnen, Ihre komplexen Systeme wie Softwareanwendungen, Server, Fertigungssysteme, Raumfahrzeuge oder schlicht Ihr Unternehmen proaktiv vor Ausfällen zu schützen.
Mit der multivariaten Anomalieerkennung können Sie Anomalien automatisch in Ihren Zeitreihendaten oder in Echtzeit erkennen. Es gibt drei Prozesse für die Verwendung der multivariaten Anomalieerkennung.
- Training: Verwenden Sie die Train Model-API, um ein Modell zu erstellen und zu trainieren, und verwenden Sie dann die API zum Abrufen des Modellstatus, um die status- und Modellmetadaten abzurufen.
- Rückschluss:
- Verwenden Sie die Async-Rückschluss-API, um einen asynchronen Rückschlussprozess auszulösen, und verwenden Sie die API zum Abrufen von Rückschlussergebnissen, um Erkennungsergebnisse für einen Datenbatch zu erhalten.
- Sie können auch die Synchronisierungsrückschluss-API verwenden, um jedes Mal eine Erkennung mit einem Zeitstempel auszulösen.
- Andere Vorgänge: Die Listenmodell-API und die Löschmodell-API werden im Modell multivariate Anomalieerkennung für die Modellverwaltung unterstützt.
Threadsicherheit
Wir garantieren, dass alle Client-instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.
Zusätzliche Konzepte
Clientoptionen | Zugreifen auf die Antwort | Vorgänge | mit langer AusführungsdauerBehandeln von Fehlern | Diagnose | Spott | Clientlebensdauer
Beispiele
Der folgende Abschnitt enthält mehrere Codeausschnitte, die einige der häufigsten Anomalieerkennung-Dienstaufgaben behandeln, einschließlich:
- Univariate Anomalieerkennung – Batcherkennung
- Univariate Anomalieerkennung – Streamingerkennung
- Univariate Anomalieerkennung – Erkennen von Änderungspunkten
- Multivariate Anomalieerkennung
Batcherkennung
//detect
Console.WriteLine("Detecting anomalies in the entire time series.");
try
{
UnivariateEntireDetectionResult result = client.DetectUnivariateEntireSeries(request);
bool hasAnomaly = false;
for (int i = 0; i < request.Series.Count; ++i)
{
if (result.IsAnomaly[i])
{
Console.WriteLine($"An anomaly was detected at index: {i}.");
hasAnomaly = true;
}
}
if (!hasAnomaly)
{
Console.WriteLine("No anomalies detected in the series.");
}
}
catch (RequestFailedException ex)
{
Console.WriteLine($"Entire detection failed: {ex.Message}");
throw;
}
catch (Exception ex)
{
Console.WriteLine($"Detection error. {ex.Message}");
throw;
}
Streamingerkennung
//detect
Console.WriteLine("Detecting the anomaly status of the latest point in the series.");
try
{
UnivariateLastDetectionResult result = client.DetectUnivariateLastPoint(request);
if (result.IsAnomaly)
{
Console.WriteLine("The latest point was detected as an anomaly.");
}
else
{
Console.WriteLine("The latest point was not detected as an anomaly.");
}
}
catch (RequestFailedException ex)
{
Console.WriteLine($"Last detection failed: {ex.Message}");
throw;
}
catch (Exception ex)
{
Console.WriteLine($"Detection error. {ex.Message}");
throw;
}
Erkennen von Änderungspunkten
//detect
Console.WriteLine("Detecting the change point in the series.");
UnivariateChangePointDetectionResult result = client.DetectUnivariateChangePoint(request);
if (result.IsChangePoint.Contains(true))
{
Console.WriteLine("A change point was detected at index:");
for (int i = 0; i < request.Series.Count; ++i)
{
if (result.IsChangePoint[i])
{
Console.Write(i);
Console.Write(" ");
}
}
Console.WriteLine();
}
else
{
Console.WriteLine("No change point detected in the series.");
}
Beispiel für multivariate Anomalieerkennung
In diesem Beispiel erfahren Sie, wie Sie Anomalieerkennung Bibliothek verwenden, um die multivariate Anomalieerkennung durchzuführen.
Problembehandlung
Einrichten der Konsolenprotokollierung
Die einfachste Möglichkeit, die Protokolle anzuzeigen, besteht darin, die Konsolenprotokollierung zu aktivieren. Verwenden Sie die AzureEventSourceListener.CreateConsoleLogger-Methode, um einen Azure SDK-Protokolllistener zu erstellen, der Nachrichten an die Konsole ausgibt.
// Setup a listener to monitor logged events.
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();
Weitere Informationen zu anderen Protokollierungsmechanismen finden Sie unter Diagnosebeispiele.
Nächste Schritte
Diese Codebeispiele zeigen häufige Szenariovorgänge mit der Azure Anomalieerkennung-Bibliothek. Weitere Beispiele finden Sie im Verzeichnis samples .
Univariate Anomalieerkennung – Batcherkennung: Sample1_DetectEntireSeriesAnomaly.cs
Univariate Anomalieerkennung – Streamingerkennung: Sample2_DetectLastPointAnomaly.cs
Univariate Anomalieerkennung – Änderungspunkterkennung: Sample3_DetectChangePoint.cs
Multivariate Anomalieerkennung: Sample4_MultivariateDetect.cs
Zusätzliche Dokumentation
Eine ausführlichere Dokumentation zu Azure Anomalieerkennung finden Sie in der Anomalieerkennung-Dokumentation auf docs.microsoft.com.
Mitwirken
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.
Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.
Azure SDK for .NET