Démarrage rapide : Utiliser la bibliothèque de client Détecteur d’anomalies univariées

Important

À partir du 20 septembre 2023, vous ne pourrez plus créer de ressources Détecteur d’anomalies. Le service Détecteur d’anomalies sera supprimé le 1er octobre 2026.

Documentation de référence de la bibliothèque |Code source de la bibliothèque | Package (NuGet) |Trouver l’exemple de code sur GitHub

Commencez à utiliser la bibliothèque de client Détecteur d’anomalies pour C#. Procédez comme suit pour installer le package de démarrage à l’aide des algorithmes fournis par le service. Le service Détecteur d’anomalies vous permet de rechercher des anomalies dans vos données de séries chronologiques en utilisant automatiquement les modèles les mieux adaptés sur celles-ci, quel que soit le secteur d’activité, le scénario ou le volume de données.

Utilisez la bibliothèque de client Détecteur d’anomalies pour C# afin de :

  • Détecter les anomalies dans votre jeu de données de série chronologique, comme une requête de lots
  • Détecter l’état d’anomalie du dernier point de données dans vos séries chronologiques
  • Détectez les points de changement de tendance dans votre jeu de données.

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Version actuelle de .NET Core
  • Une fois que vous avez votre abonnement Azure, créez une ressource Détecteur d’anomalies dans le portail Azure pour obtenir votre clé et votre point de terminaison. Attendez qu’elle se déploie, puis sélectionnez le bouton Accéder à la ressource. Vous pouvez utiliser le niveau tarifaire Gratuit (F0) pour tester le service, puis passer par la suite à un niveau payant pour la production.

Configurer

Créez une application .NET Core

Dans une fenêtre de console (par exemple cmd, PowerShell ou Bash), utilisez la commande dotnet new pour créer une application console avec le nom anomaly-detector-quickstart. Cette commande crée un projet « Hello World » simple avec un seul fichier source C# : Program.cs.

dotnet new console -n anomaly-detector-quickstart

Déplacez vos répertoires vers le dossier d’application nouvellement créé. Vous pouvez générer l’application avec :

dotnet build

La sortie de génération ne doit contenir aucun avertissement ni erreur.

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

Installer la bibliothèque de client

Dans le répertoire de l’application, installez la bibliothèque de client Détecteur d’anomalies pour .NET avec la commande suivante :

dotnet add package Azure.AI.AnomalyDetector --prerelease

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur le service Détecteur d'anomalies, vous aurez besoin des valeurs suivantes :

Nom de la variable Valeur
ANOMALY_DETECTOR_ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Exemple de point de terminaison : https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Vous trouverez la valeur de la clé API dans la section Clés et point de terminaison quand vous examinerez votre ressource à partir du Portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.
DATA_PATH Ce guide de démarrage rapide utilise le fichier request-data.csv qui peut être téléchargé à partir de nos exemples de données GitHub. Exemple de chemin d’accès : c:\\test\\request-data.csv

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Créer des variables d’environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Important

Si vous utilisez une clé API, stockez-la en toute sécurité dans un autre emplacement, par exemple dans Azure Key Vault. N'incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement.

Pour plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Télécharger l'exemple de données

Ce guide de démarrage rapide utilise le fichier request-data.csv qui peut être téléchargé à partir de nos exemples de données GitHub.

Vous pouvez également télécharger les exemples de données en exécutant :

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

Détecter les anomalies

À partir du répertoire du projet, ouvrez le fichier program.cs et remplacez le contenu par le code suivant :

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


Exécutez l’application avec la commande suivante :

dotnet run program.cs

Sortie

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

Détails du code

Comprendre votre facture

Dans le code ci-dessus, les exemples de données sont lus et convertis en objet DetectRequest. Nous appelons File.ReadAllLines avec le chemin d’accès au fichier, créons une liste d’objets TimeSeriesPointet enlevons les caractères de nouvelle ligne. Extrayez les valeurs, séparez l’horodatage de sa valeur numérique et ajoutez-les à un nouvel objet TimeSeriesPoint. L’objet DetectRequest se compose d’une série de points de données, avec TimeGranularity.Daily pour la granularité (ou la périodicité) des points de données. Nous enlevons la méthode DetectEntireSeriesAsync du client avec l’objet DetectRequest et attendons la réponse en tant qu’objet EntireDetectResponse. Nous parcourons ensuite les valeurs IsAnomaly de la réponse et imprimons celles qui ont la valeur true. Ces valeurs correspondent à l’index des points de données anormaux, le cas échéant.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Détecteur d'anomalies, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées. Vous pouvez également envisager de supprimer les variables d’environnement que vous avez créées si vous n’avez plus l’intention de les utiliser.

Documentation de référence de la bibliothèque |Code source de la bibliothèque | Package (npm) |Trouver l’exemple de code sur GitHub

Découvrez comment commencer à utiliser la bibliothèque de client Détecteur d’anomalies pour JavaScript. Effectuez les étapes suivantes pour installer le package et commencer à utiliser les algorithmes fournis par le service. Le service Détecteur d’anomalies vous permet de rechercher des anomalies dans vos données de séries chronologiques en utilisant automatiquement les modèles les mieux adaptés sur celles-ci, quel que soit le secteur d’activité, le scénario ou le volume de données.

Utilisez la bibliothèque de client Détecteur d’anomalies pour JavaScript afin de :

  • Détecter les anomalies dans votre jeu de données de série chronologique, comme une requête de lots
  • Détecter l’état d’anomalie du dernier point de données dans vos séries chronologiques
  • Détectez les points de changement de tendance dans votre jeu de données.

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Version actuelle de Node.js
  • Une fois que vous avez votre abonnement Azure, créez une ressource Détecteur d’anomalies dans le portail Azure pour obtenir votre clé et votre point de terminaison. Attendez qu’elle se déploie, puis sélectionnez le bouton Accéder à la ressource. Vous pouvez utiliser le niveau tarifaire Gratuit (F0) pour tester le service, puis passer par la suite à un niveau payant pour la production.

Configurer

Création d’une application Node.js

Dans une fenêtre de console (telle que cmd, PowerShell ou bash), créez un répertoire pour votre application et accédez-y.

mkdir myapp && cd myapp

Créez un fichier package.json avec le contenu suivant :

{
  "dependencies": {
    "@azure/ai-anomaly-detector": "next",
    "@azure-rest/ai-anomaly-detector": "next",
    "@azure/core-auth": "^1.3.0",
    "csv-parse": "^5.3.0"
  }
}

Installer la bibliothèque de client

Installez les packages npm requis en exécutant ce qui suit à partir du même répertoire que votre fichier package.json :

npm install

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur le service Détecteur d'anomalies, vous aurez besoin des valeurs suivantes :

Nom de la variable Valeur
ANOMALY_DETECTOR_ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Exemple de point de terminaison : https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Vous trouverez la valeur de la clé API dans la section Clés et point de terminaison quand vous examinerez votre ressource à partir du Portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.
datapath Ce guide de démarrage rapide utilise le fichier request-data.csv qui peut être téléchargé à partir de nos exemples de données GitHub.

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Créer des variables d’environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Important

Si vous utilisez une clé API, stockez-la en toute sécurité dans un autre emplacement, par exemple dans Azure Key Vault. N'incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement.

Pour plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Télécharger l'exemple de données

Ce guide de démarrage rapide utilise le fichier request-data.csv qui peut être téléchargé à partir de nos exemples de données GitHub.

Vous pouvez également télécharger les exemples de données en exécutant :

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

Détecter les anomalies

Créez un fichier nommé index.js et remplacez par le code suivant :

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

Exécution de l'application

Exécutez l’application avec la commande node de votre fichier de démarrage rapide.

node index.js

Output

Anomalies were detected from the series at index:
3
18
21
22
23
24
25
28
29
30
31
32
35
44

Comprendre votre facture

Dans le code ci-dessus, nous appelons l’API Détecteur d'anomalies pour détecter les anomalies via la série chronologique entière en tant que lot avec la méthode detectEntireSeries() du client. Nous stockons l’objet AnomalyDetectorDetectEntireSeriesResponse retourné. Puis nous itérons dans la liste isAnomaly de la réponse et imprimons l'index des valeurs true. Ces valeurs correspondent à l’index des points de données anormaux, le cas échéant.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Détecteur d'anomalies, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées. Vous pouvez également envisager de supprimer les variables d’environnement que vous avez créées si vous n’avez plus l’intention de les utiliser.

Documentation de référence de la bibliothèque |Code source de la bibliothèque | Package (PyPi) |Trouver l’exemple de code sur GitHub

Commencez à utiliser la bibliothèque de client Détecteur d’anomalies pour Python. Effectuez les étapes suivantes pour installer le package et commencer à utiliser les algorithmes fournis par le service. Le service Détecteur d’anomalies vous permet de rechercher des anomalies dans vos données de séries chronologiques en utilisant automatiquement les modèles les mieux adaptés sur celles-ci, quel que soit le secteur d’activité, le scénario ou le volume de données.

Utilisez la bibliothèque de client Détecteur d’anomalies pour Python pour :

  • Détecter les anomalies dans votre jeu de données de série chronologique, comme une requête de lots
  • Détecter l’état d’anomalie du dernier point de données dans vos séries chronologiques
  • Détectez les points de changement de tendance dans votre jeu de données.

Prérequis

Configurer

Installez la bibliothèque de client. Vous pouvez installer la bibliothèque de client avec :

pip install --upgrade azure.ai.anomalydetector

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur le service Détecteur d'anomalies, vous aurez besoin des valeurs suivantes :

Nom de la variable Valeur
ANOMALY_DETECTOR_ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Exemple de point de terminaison : https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Vous trouverez la valeur de la clé API dans la section Clés et point de terminaison quand vous examinerez votre ressource à partir du Portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.
DATA_PATH Ce guide de démarrage rapide utilise le fichier request-data.csv qui peut être téléchargé à partir de nos exemples de données GitHub. Exemple de chemin d’accès : c:\\test\\request-data.csv

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Créer des variables d’environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Important

Si vous utilisez une clé API, stockez-la en toute sécurité dans un autre emplacement, par exemple dans Azure Key Vault. N'incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement.

Pour plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"

Télécharger l'exemple de données

Ce guide de démarrage rapide utilise le fichier request-data.csv qui peut être téléchargé à partir de nos exemples de données GitHub.

Vous pouvez également télécharger les exemples de données en exécutant :

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

Détecter les anomalies

  1. Créez un fichier Python appelé quickstart.py. Ensuite, ouvrez-le dans l’éditeur ou l’IDE de votre choix.

  2. Remplacez le contenu du fichier quickstart.py par le code suivant. Modifiez le code pour ajouter les noms des variables d’environnement pour votre clé, votre point de terminaison et le chemin des données de série chronologique :

    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))
    

    Important

    Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article relatif à la sécurité d’Azure AI services.

  3. Exécutez l’application avec la commande python de votre fichier de démarrage rapide

    python quickstart.py
    

Output

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

Comprendre votre facture

Dans notre code ci-dessus, nous appelons deux fois l’API Détecteur d'anomalies. Le premier appel vérifie les points de changement de tendance dans notre exemple de série de données avec la méthode detect_change_point. Cet appel retourne un ChangePointDetectResponse que nous avons stocké dans une variable nommée change_point_request. Itérez dans la liste de la réponse is_change_point et imprimez l'index des valeurs true.

Le deuxième appel vérifie l’ensemble de l’exemple de série de données pour les anomalies à l’aide de la méthode detect_entire_series. Cet appel retourne un EntireDetectResponse que nous avons stocké dans une variable nommée anomaly_response. Itérez dans la liste de la réponse is_anomaly et imprimez l'index des valeurs true. Nous pourrions également utiliser la méthode detect_last_point, qui est plus appropriée pour détecter les anomalies dans les données en temps réel. Pour en savoir plus, consultez le guide des meilleures pratiques.

Visualiser les résultats

Pour visualiser les anomalies et les points de modification par rapport à l’exemple de série de données, nous allons utiliser le matplotlib de bibliothèque open source populaire.

  1. Installer la bibliothèque.

    pip install matplotlib
    
  2. Modifiez votre fichier quickstart.py avec le code suivant :

    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()
    

    Important

    Pour la production, utilisez un moyen sécurisé de stocker et d’accéder à vos informations d’identification comme Azure Key Vault. Pour plus d’informations sur la sécurité des informations d’identification, consultez l’article relatif à la sécurité d’Azure AI services.

  3. Exécutez l’application avec la commande python de votre fichier de démarrage rapide

    python quickstart.py
    

Output

Dans cet exemple de code, nous avons ajouté la bibliothèque matplotlib pour nous permettre de visualiser et de distinguer facilement les points de données normaux des points de modification et des anomalies. Les points de modification sont représentés par des carrés bleus, les anomalies sont des triangles rouges et les points de données normaux sont des cercles verts. Les dates sont converties en nombres à l’aide de la méthode matplotlib de date2num pour fournir des valeurs conviviales de graphique pour l’axe y des graphiques.

Capture d’écran des résultats avec des index d’anomalies et des points de modification sur un tracé de points. Différentes formes et couleurs sont utilisées pour différents types de données.

Nettoyer les ressources

Si vous voulez nettoyer et supprimer une ressource Détecteur d'anomalies, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources qui y sont associées. Vous pouvez également envisager de supprimer les variables d’environnement que vous avez créées si vous n’avez plus l’intention de les utiliser.

Dans ce guide de démarrage rapide, vous allez apprendre à détecter les anomalies dans un lot de données de série chronologique à l’aide du service Détecteur d’anomalies et de cURL.

Pour obtenir une vue d’ensemble des concepts du Détecteur d’anomalies, consultez l’article de présentation.

Prérequis

  • Un abonnement Azure - En créer un gratuitement
  • Une fois que vous avez votre abonnement Azure, créez une ressource Détecteur d’anomalies dans le portail Azure pour obtenir votre clé et votre point de terminaison. Attendez qu’elle se déploie, puis sélectionnez le bouton Accéder à la ressource. Vous pouvez utiliser le niveau tarifaire Gratuit (F0) pour tester le service, puis passer par la suite à un niveau payant pour la production.
  • Un fichier JSON valide de données de série chronologique afin de tester la présence d’anomalies. Si vous n’avez pas votre propre fichier, vous pouvez créer un fichier sample.json à partir de l’exemple de corps de requête

Récupérer la clé et le point de terminaison

Pour effectuer un appel sur le service Détecteur d'anomalies, vous aurez besoin des valeurs suivantes :

Nom de la variable Valeur
ANOMALY_DETECTOR_ENDPOINT Cette valeur se trouve dans la section Clés et point de terminaison quand vous examinez votre ressource à partir du portail Azure. Exemple de point de terminaison : https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/
ANOMALY_DETECTOR_API_KEY Vous trouverez la valeur de la clé API dans la section Clés et point de terminaison quand vous examinerez votre ressource à partir du Portail Azure. Vous pouvez utiliser soit KEY1, soit KEY2.

Accédez à votre ressource sur le portail Azure. Le Point de terminaison et les Clés se trouvent dans la section Gestion des ressources. Copiez votre point de terminaison et votre clé d’accès, car vous aurez besoin de l’authentification de vos appels d’API. Vous pouvez utiliser soit KEY1, soit KEY2. Avoir toujours deux clés vous permet de faire pivoter et de régénérer en toute sécurité les clés sans provoquer d’interruption de service.

Créer des variables d’environnement

Créez et affectez des variables d’environnement persistantes pour votre clé et votre point de terminaison.

Important

Si vous utilisez une clé API, stockez-la en toute sécurité dans un autre emplacement, par exemple dans Azure Key Vault. N'incluez pas la clé API directement dans votre code et ne la diffusez jamais publiquement.

Pour plus d’informations sur la sécurité des services IA, consultez Authentifier les requêtes auprès d’Azure AI services.

setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

Détecter les anomalies

Depuis une invite de commandes, exécutez la commande suivante. Vous devrez insérer les valeurs suivantes dans la commande.

  • Votre clé d’abonnement au service Détecteur d’anomalies.
  • L’adresse de votre point de terminaison Détecteur d’anomalies.
  • Un fichier JSON valide de données de série chronologique afin de tester la présence d’anomalies. Si vous n’avez pas votre propre fichier, vous pouvez créer un fichier sample.json à partir de l’exemple de corps de requête.
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" 

Exemple de la commande complète sous la forme d’une seule ligne :

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"

Si vous exécutez la commande cURL à partir d’un interpréteur de commandes Bash, votre commande serait légèrement différente :

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"

Si vous avez utilisé les exemples de données des prérequis, vous devez recevoir une réponse 200 avec les résultats suivants :

{
  "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
}

Pour plus d’informations, consultez la référence REST de détection d’anomalie.

Nettoyer les ressources

Si vous souhaitez nettoyer et supprimer un abonnement Azure AI services, vous pouvez supprimer la ressource ou le groupe de ressources. La suppression du groupe de ressources efface également les autres ressources liées au groupe de ressources.

Étapes suivantes

Concepts :

Tutoriels :