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 TimeSeriesPoint
et 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
- Un abonnement Azure - En créer un gratuitement
- Python 3.x
- Bibliothèque d’analyse de données Pandas
- 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
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
Créez un fichier Python appelé quickstart.py. Ensuite, ouvrez-le dans l’éditeur ou l’IDE de votre choix.
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.
Exécutez l’application avec la commande
python
de votre fichier de démarrage rapidepython 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.
Installer la bibliothèque.
pip install matplotlib
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.
Exécutez l’application avec la commande
python
de votre fichier de démarrage rapidepython 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.
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 :
- Présentation de l’API Détecteur d’anomalies
- Méthodes de détection d’anomalies
- Bonnes pratiques concernant l’utilisation de l’API Détecteur d’anomalies.
Tutoriels :