Bibliothèque de client Azure Cognitive Services Détecteur d'anomalies pour .NET - version 3.0.0-preview.7

Détecteur d'anomalies est un service IA avec un ensemble d’API, qui vous permet de surveiller et de détecter les anomalies dans vos données de série chronologique avec peu de connaissances sur le Machine Learning (ML), soit la validation par lots ou l’inférence en temps réel.

| Code sourcePackage (NuGet) | Documentation de référence sur les | API Documentation produit

Prise en main

Prérequis

  • Vous avez besoin d’un abonnement Azure pour utiliser ce package.
  • Un Détecteur d'anomalies instance Cognitive Services existant.

Installer le package

Installez la bibliothèque de client Azure Détecteur d'anomalies pour .NET avec NuGet :

dotnet add package Azure.AI.AnomalyDetector --prerelease

Ce tableau montre la relation entre les versions du kit de développement logiciel (SDK) et les versions d’API prises en charge du service :

Version du SDK Version d’API prise en charge du service
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

Authentifier le client

Vous pouvez trouver le point de terminaison de votre ressource de service Détecteur d'anomalies à l’aide du portail Azure ou d’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"

Obtenir la clé API

Vous pouvez obtenir la clé API à partir de la ressource de service Détecteur d'anomalies dans le portail Azure. Vous pouvez également utiliser l’extrait de code Azure CLI ci-dessous pour obtenir la clé API de votre ressource.

az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>

Créer AnomalyDetectorClient avec AzureKeyCredential

Une fois que vous avez la valeur de la clé API, créez un AzureKeyCredential. Avec le point de terminaison et les informations d’identification de clé, vous pouvez créer le AnomalyDetectorClient:

string endpoint = "<endpoint>";
string apiKey = "<apiKey>";
var credential = new AzureKeyCredential(apiKey);
var client = new AnomalyDetectorClient(new Uri(endpoint), credential);

Concepts clés

Avec le Détecteur d'anomalies, vous pouvez soit détecter des anomalies dans une variable à l’aide de la détection d’anomalie univariée, soit détecter des anomalies dans plusieurs variables avec la détection d’anomalies multivariées.

Fonctionnalité Description
Détection d’anomalies univariées Détectez les anomalies dans une variable, comme le chiffre d’affaires, le coût, etc. Le modèle a été sélectionné automatiquement en fonction de votre modèle de données.
Détection d’anomalies multivariées Détectez les anomalies dans plusieurs variables avec des corrélations, qui sont généralement collectées à partir de l’équipement ou d’un autre système complexe. Le modèle sous-jacent utilisé est le réseau d’attention Graph.

Détection d’anomalies univariées

L’API Détection d’anomalies univariées vous permet de superviser et de détecter des anomalies dans vos données de séries chronologiques sans avoir à connaître le Machine Learning. Les algorithmes s’adaptent en identifiant et en appliquant automatiquement les modèles les mieux adaptés à vos données, indépendamment du secteur d’activité, du scénario ou du volume de données. À l’aide de vos données de série chronologique, l’API détermine les limites pour la détection des anomalies, les valeurs attendues et les points de données qui constituent des anomalies.

L’utilisation du Détecteur d’anomalies ne nécessite aucune expérience préalable en machine learning. L’API REST vous permet d’intégrer facilement le service dans vos applications et processus.

Avec la détection d’anomalies univariées, vous pouvez détecter automatiquement les anomalies dans vos données de série chronologique ou à mesure qu’elles se produisent en temps réel.

Fonctionnalité Description
Détection dans la diffusion en continu Détectez les anomalies dans vos données de diffusion en continu à l’aide des points de données préalablement vus pour déterminer si le dernier point est une anomalie. Cette opération génère un modèle à l’aide des points de données que vous envoyez et détermine si le point cible est une anomalie. En appelant l’API avec chaque nouveau point de données que vous générez, vous pouvez surveiller vos données au moment de leur création.
Détection par lot Utilisez votre série chronologique pour détecter d’éventuelles anomalies dans l’ensemble de vos données. Cette opération génère un modèle à l’aide de vos données de série chronologique complètes, chaque point étant analysé avec le même modèle.
Détection des points de changement Utilisez votre série chronologique pour détecter les points de changement de tendance présents dans vos données. Cette opération génère un modèle à l’aide de vos données de série chronologique complètes, chaque point étant analysé avec le même modèle.

Détection d’anomalies multivariées

Les API de détection d’anomalies multivariées permettent encore aux développeurs d’intégrer facilement l’intelligence artificielle avancée pour détecter les anomalies à partir de groupes de métriques, sans avoir besoin de connaissances en apprentissage automatique ni de données étiquetées. Les dépendances et les intercorrélations entre un maximum de 300 signaux différents sont désormais automatiquement comptabilisées comme des facteurs clés. Cette nouvelle capacité vous aide à protéger de manière proactive vos systèmes complexes tels que les applications logicielles, les serveurs, les machines d’usine, les engins spatiaux, voire votre entreprise, contre les défaillances.

Avec la détection d’anomalies multivariées, vous pouvez détecter automatiquement les anomalies dans vos données de série chronologique, ou à mesure qu’elles se produisent en temps réel. Il existe trois processus pour utiliser la détection d’anomalies multivariées.

  • Formation : utilisez l’API Entraîner le modèle pour créer et entraîner un modèle, puis utilisez l’API Obtenir l’état du modèle pour obtenir les métadonnées status et de modèle.
  • Inférence :
    • Utilisez l’API D’inférence asynchrone pour déclencher un processus d’inférence asynchrone et utilisez l’API Obtenir les résultats de l’inférence pour obtenir des résultats de détection sur un lot de données.
    • Vous pouvez également utiliser l’API d’inférence de synchronisation pour déclencher une détection sur un horodatage à chaque fois.
  • Autres opérations : l’API Lister le modèle et l’API Supprimer le modèle sont prises en charge dans le modèle de détection d’anomalie multivariée pour la gestion des modèles.

Sécurité des threads

Nous garantissons que toutes les méthodes de instance client sont thread-safe et indépendantes les unes des autres (instructions). Cela garantit que la recommandation de réutilisation des instances clientes est toujours sécurisée, même entre les threads.

Concepts supplémentaires

Options | du client Accès à la réponse | Opérations | de longue duréeGestion des défaillances | Diagnostics | Moqueur | Durée de vie du client

Exemples

La section suivante fournit plusieurs extraits de code couvrant certaines des tâches de service Détecteur d'anomalies les plus courantes, notamment :

Détection par lot

//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;
}

Détection de streaming

//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;
}

Détecter les points de modification

//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.");
}

Exemple de détection d’anomalie multivariée

Pour savoir comment utiliser Détecteur d'anomalies bibliothèque pour effectuer la détection d’anomalies multivariées, consultez cet exemple.

Résolution des problèmes

Configuration de la journalisation de la console

La façon la plus simple de voir les journaux consiste à activer la journalisation de la console. Pour créer un écouteur de journal du SDK Azure qui génère des messages dans la console, utilisez la méthode AzureEventSourceListener.CreateConsoleLogger.

// Setup a listener to monitor logged events.
using AzureEventSourceListener listener = AzureEventSourceListener.CreateConsoleLogger();

Pour en savoir plus sur les autres mécanismes de journalisation, consultez Exemples de diagnostics.

Étapes suivantes

Ces exemples de code montrent des opérations de scénario courantes avec la bibliothèque Azure Détecteur d'anomalies. Vous trouverez d’autres exemples dans le répertoire samples .

Documentation complémentaire

Pour obtenir une documentation plus complète sur azure Détecteur d'anomalies, consultez la documentation Détecteur d'anomalies sur docs.microsoft.com.

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, consultez cla.microsoft.com.

Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.