Avvio rapido: usare la libreria client Rilevamento anomalie univariato
Importante
A partire dal 20 settembre 2023 non sarà possibile creare nuove risorse di Rilevamento anomalie. Il servizio Rilevamento anomalie verrà ritirato il 1° ottobre 2026.
Documentazione di riferimento della libreria |Codice sorgente della libreria | Pacchetto (NuGet) |Trovare il codice di esempio in GitHub
Questo argomento include informazioni introduttive sulla libreria client di Rilevamento anomalie per C#. Seguire questi passaggi per installare il pacchetto e iniziare a usare gli algoritmi forniti dal servizio. Il servizio Rilevamento anomalie consente di trovare le anomalie nei dati delle serie temporali applicando automaticamente i modelli di mapping più appropriati, indipendentemente dal settore, dallo scenario o dal volume di dati.
Usare la libreria client di Rilevamento anomalie per C# per:
- Rilevare anomalie nell'intero set di dati della serie temporale come richiesta batch
- Rilevare lo stato di anomalia del punto dati più recente nella serie temporale
- Rilevare i punti di modifica di una tendenza nel set di dati.
Prerequisiti
- Una sottoscrizione di Azure: creare un account gratuitamente
- Versione corrente di .NET Core
- Dopo aver creato la sottoscrizione di Azure, creare una risorsa di Rilevamento anomalie nel portale di Azure per ottenere la chiave e l'endpoint. Attendere che venga distribuita, quindi selezionare pulsante Vai alla risorsa. È possibile usare il piano tariffario gratuito (
F0
) per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.
Impostazione
Creare una nuova applicazione .NET Core
In una finestra di una console, ad esempio cmd, PowerShell o Bash, usare il comando dotnet new
per creare una nuova app console con il nome anomaly-detector-quickstart
. Questo comando crea un semplice progetto "Hello World" con un singolo file di origine C#: program.cs.
dotnet new console -n anomaly-detector-quickstart
Spostarsi nella cartella dell'app appena creata. È possibile compilare l'applicazione con il comando seguente:
dotnet build
L'output di compilazione non deve contenere alcun avviso o errore.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
Installare la libreria client
All'interno della directory dell'applicazione, installare la libreria client di Rilevamento anomalie per .NET con il comando seguente:
dotnet add package Azure.AI.AnomalyDetector --prerelease
Recuperare la chiave e l'endpoint
Per effettuare correttamente una chiamata al servizio Rilevamento anomalie, sono necessari i valori seguenti:
Nome variabile | Valore |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Questo valore è disponibile nella sezione Chiavi &ed endpoint durante l'esame della risorsa dalla portale di Azure. Endpoint di esempio: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Questo valore della chiave API è disponibile nella sezione Chiavi ed Endpoint durante l'esame della risorsa dal portale di Azure. Puoi usare entrambi KEY1 o KEY2 . |
DATA_PATH |
Questo avvio rapido usa il file request-data.csv che può essere scaricato dai dati di esempio di GitHub. Percorso di esempio: c:\\test\\request-data.csv |
Passare alla risorsa nel portale di Azure. Endpoint e Chiavi sono disponibili nella sezione Gestione risorse. Copiare l'endpoint e la chiave di accesso in base alle esigenze per l'autenticazione delle chiamate API. Puoi usare entrambi KEY1
o KEY2
. Avere sempre due chiavi consente di ruotare e rigenerare in modo sicuro le chiavi senza causare un'interruzione del servizio.
Creare variabili di ambiente
Creare e assegnare variabili di ambiente persistenti per la chiave e l'endpoint.
Importante
Se si usa una chiave API, archiviarla in modo sicuro in un'altra posizione, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente.
Per altre informazioni sulla sicurezza dei servizi IA, vedere Autenticare richieste in Servizi di Azure AI.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Scaricare i dati di esempio
Questo avvio rapido usa il file request-data.csv
che può essere scaricato dai dati di esempio di GitHub
È anche possibile scaricare i dati di esempio eseguendo i passaggi seguenti:
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
Rileva anomalie
Dalla directory del progetto aprire il file program.cs e sostituirlo con il codice seguente:
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.");
}
}
}
}
Eseguire l'applicazione con il comando seguente:
dotnet run program.cs
Output
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
Dettagli del codice
Informazioni sui risultati
Nel codice precedente i dati di esempio vengono letti e convertiti in un oggetto DetectRequest
. Chiamare File.ReadAllLines
con il percorso del file, creare un elenco di oggetti TimeSeriesPoint
e rimuovere eventuali caratteri di nuova riga. Estrarre i valori e separare il timestamp dal rispettivo valore numerico, quindi aggiungerli a un nuovo oggetto TimeSeriesPoint
. L'oggetto DetectRequest
è costituito da una serie di punti dati, con TimeGranularity.Daily
per definire il valore della granularità (o periodicità) dei punti dati.
Chiamare quindi il metodo DetectEntireSeriesAsync
del client con l'oggetto DetectRequest
e attendere la risposta come oggetto EntireDetectResponse
. Viene quindi eseguita l'iterazione dei valori della risposta IsAnomaly
e stampati i valori true. Questi valori corrispondono all'indice dei punti dati anomali, se presenti.
Pulire le risorse
Se si vuole pulire e rimuovere una risorsa Rilevamento anomalie, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate. È anche possibile prendere in considerazione l'eliminazione delle variabili di ambiente create se non si intende più usarle.
Documentazione di riferimento della libreria |Codice sorgente della libreria | Pacchetto (npm) |Trovare il codice di esempio in GitHub
Questo argomento costituisce un'introduzione alla libreria client di Rilevamento anomalie per JavaScript. Seguire questi passaggi per installare il pacchetto e iniziare a usare gli algoritmi forniti dal servizio. Il servizio Rilevamento anomalie consente di trovare le anomalie nei dati delle serie temporali applicando automaticamente il modello di mapping più appropriato, indipendentemente dal settore, dallo scenario o dal volume di dati.
Usare la libreria client di Rilevamento anomalie per JavaScript per:
- Rilevare anomalie nell'intero set di dati della serie temporale come richiesta batch
- Rilevare lo stato di anomalia del punto dati più recente nella serie temporale
- Rilevare i punti di modifica di una tendenza nel set di dati.
Prerequisiti
- Una sottoscrizione di Azure: creare un account gratuitamente
- Versione corrente di Node.js
- Dopo aver creato la sottoscrizione di Azure, creare una risorsa di Rilevamento anomalie nel portale di Azure per ottenere la chiave e l'endpoint. Attendere che venga distribuita, quindi selezionare pulsante Vai alla risorsa. È possibile usare il piano tariffario gratuito (
F0
) per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.
Impostazione
Creare una nuova applicazione Node.js
In una finestra della console, ad esempio cmd, PowerShell o Bash, creare e passare a una nuova directory per l'app.
mkdir myapp && cd myapp
Creare un file package.json
con i contenuti seguenti:
{
"dependencies": {
"@azure/ai-anomaly-detector": "next",
"@azure-rest/ai-anomaly-detector": "next",
"@azure/core-auth": "^1.3.0",
"csv-parse": "^5.3.0"
}
}
Installare la libreria client
Installare i pacchetti npm necessari eseguendo il comando seguente dalla stessa directory del file package.json:
npm install
Recuperare la chiave e l'endpoint
Per effettuare correttamente una chiamata al servizio Rilevamento anomalie, sono necessari i valori seguenti:
Nome variabile | Valore |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Questo valore è disponibile nella sezione Chiavi &ed endpoint durante l'esame della risorsa dalla portale di Azure. Endpoint di esempio: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Questo valore della chiave API è disponibile nella sezione Chiavi ed Endpoint durante l'esame della risorsa dal portale di Azure. Puoi usare entrambi KEY1 o KEY2 . |
datapath |
Questo avvio rapido usa il file request-data.csv che può essere scaricato dai dati di esempio di GitHub. |
Passare alla risorsa nel portale di Azure. Endpoint e Chiavi sono disponibili nella sezione Gestione risorse. Copiare l'endpoint e la chiave di accesso in base alle esigenze per l'autenticazione delle chiamate API. Puoi usare entrambi KEY1
o KEY2
. Avere sempre due chiavi consente di ruotare e rigenerare in modo sicuro le chiavi senza causare un'interruzione del servizio.
Creare variabili di ambiente
Creare e assegnare variabili di ambiente persistenti per la chiave e l'endpoint.
Importante
Se si usa una chiave API, archiviarla in modo sicuro in un'altra posizione, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente.
Per altre informazioni sulla sicurezza dei servizi IA, vedere Autenticare richieste in Servizi di Azure AI.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Scaricare i dati di esempio
Questo avvio rapido usa il file request-data.csv
che può essere scaricato dai dati di esempio di GitHub
È anche possibile scaricare i dati di esempio eseguendo i passaggi seguenti:
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
Rileva anomalie
Creare un file denominato index.js
e sostituirlo con il codice seguente:
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 };
Eseguire l'applicazione
Eseguire l'applicazione con il comando node
nel file quickstart.
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
Informazioni sui risultati
Nel codice precedente viene chiamata l'API Rilevamento anomalie per rilevare le anomalie nell'intera serie temporale come batch con il metodo detectEntireSeries() del client. Viene archiviato l'oggetto AnomalyDetectorDetectEntireSeriesResponse restituito. Viene quindi eseguita l’iterazione dell'elenco isAnomaly
della risposta e stampato l'indice dei valori true
. Questi valori corrispondono all'indice dei punti dati anomali, se presenti.
Pulire le risorse
Se si vuole pulire e rimuovere una risorsa Rilevamento anomalie, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate. È anche possibile prendere in considerazione l'eliminazione delle variabili di ambiente create se non si intende più usarle.
Documentazione di riferimento della libreria |Codice sorgente della libreria | Pacchetto (PyPi) |Trovare il codice di esempio in GitHub
Questo argomento costituisce un'introduzione alla libreria client di Rilevamento anomalie per Python. Eseguire i passaggi seguenti per installare il pacchetto e iniziare a usare gli algoritmi forniti dal servizio. Il servizio Rilevamento anomalie consente di trovare le anomalie nei dati delle serie temporali applicando automaticamente i modelli di mapping più appropriati, indipendentemente dal settore, dallo scenario o dal volume di dati.
Usare la libreria client di Rilevamento anomalie per Python per:
- Rilevare anomalie nell'intero set di dati della serie temporale come richiesta batch
- Rilevare lo stato di anomalia del punto dati più recente nella serie temporale
- Rilevare i punti di modifica di una tendenza nel set di dati.
Prerequisiti
- Una sottoscrizione di Azure: creare un account gratuitamente
- Python 3.x
- Llibreria di analisi dei dati Pandas
- Dopo aver creato la sottoscrizione di Azure, creare una risorsa di Rilevamento anomalie nel portale di Azure per ottenere la chiave e l'endpoint. Attendere che venga distribuita, quindi selezionare pulsante Vai alla risorsa. È possibile usare il piano tariffario gratuito (
F0
) per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.
Impostazione
Installare la libreria client. È possibile installare la libreria client con:
pip install --upgrade azure.ai.anomalydetector
Recuperare la chiave e l'endpoint
Per effettuare correttamente una chiamata al servizio Rilevamento anomalie, sono necessari i valori seguenti:
Nome variabile | Valore |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Questo valore è disponibile nella sezione Chiavi &ed endpoint durante l'esame della risorsa dalla portale di Azure. Endpoint di esempio: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Questo valore della chiave API è disponibile nella sezione Chiavi ed Endpoint durante l'esame della risorsa dal portale di Azure. Puoi usare entrambi KEY1 o KEY2 . |
DATA_PATH |
Questo avvio rapido usa il file request-data.csv che può essere scaricato dai dati di esempio di GitHub. Percorso di esempio: c:\\test\\request-data.csv |
Passare alla risorsa nel portale di Azure. Endpoint e Chiavi sono disponibili nella sezione Gestione risorse. Copiare l'endpoint e la chiave di accesso in base alle esigenze per l'autenticazione delle chiamate API. Puoi usare entrambi KEY1
o KEY2
. Avere sempre due chiavi consente di ruotare e rigenerare in modo sicuro le chiavi senza causare un'interruzione del servizio.
Creare variabili di ambiente
Creare e assegnare variabili di ambiente persistenti per la chiave e l'endpoint.
Importante
Se si usa una chiave API, archiviarla in modo sicuro in un'altra posizione, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente.
Per altre informazioni sulla sicurezza dei servizi IA, vedere Autenticare richieste in Servizi di Azure AI.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Scaricare i dati di esempio
Questo avvio rapido usa il file request-data.csv
che può essere scaricato dai dati di esempio di GitHub
È anche possibile scaricare i dati di esempio eseguendo i passaggi seguenti:
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
Rileva anomalie
Creare un nuovo file Python denominato quickstart.py. Quindi, aprirlo nell'editor o nell'IDE preferito.
Sostituire il contenuto di quickstart.py con il codice seguente. Modificare il codice per aggiungere i nomi della variabile di ambiente per la chiave, l'endpoint e il percorso dei dati della serie temporale:
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))
Importante
Per la produzione, usare un metodo sicuro per l'archiviazione e l'accesso alle proprie credenziali, ad esempio Azure Key Vault. Per altre informazioni sulla sicurezza delle credenziali, vedere l'articolo sulla sicurezza dei servizi di Azure AI.
Eseguire l'applicazione con il comando
python
nel file quickstartpython 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
Informazioni sui risultati
Nel codice precedente viene chiamata l'API Rilevamento anomalie due volte. La prima chiamata verifica la presenza di punti di modifica della tendenza nella serie di dati di esempio con il metodo detect_change_point
. Questa chiamata restituisce un ChangePointDetectResponse
archiviato in una variabile denominata change_point_request
. Viene quindi eseguita l'iterazione dell'elenco is_change_point
della risposta e stampato l'indice di tutti i valori con un valore booleano di true
.
La seconda chiamata verifica la presenza di anomalie nell'intera serie di dati di esempio con il metodo detect_entire_series
. Questa chiamata restituisce un EntireDetectResponse
archiviato in una variabile denominata anomaly_response
. Viene eseguita l'iterazione dell'elenco is_anomaly
della risposta e stampato l'indice di tutti i valori con un valore booleano di true
. In alternativa, è possibile usare il metodo detect_last_point
, più appropriato per rilevare anomalie nei dati in tempo reale. Per altre informazioni, vedere la guida alle procedure consigliate.
Visualizzare i risultati
Per visualizzare le anomalie e i punti di modifica in relazione alla serie di dati di esempio, si userà la popolare libreria open source matplotlib.
Installare la libreria .
pip install matplotlib
Modificare il file quickstart.py con il codice seguente:
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()
Importante
Per la produzione, usare un metodo sicuro per l'archiviazione e l'accesso alle proprie credenziali, ad esempio Azure Key Vault. Per ulteriori informazioni sulla sicurezza delle credenziali, vedere l'articolo sulla sicurezza dei servizi di Azure AI.
Eseguire l'applicazione con il comando
python
nel file quickstartpython quickstart.py
Output
In questo esempio di codice è stata aggiunta la libreria matplotlib
per consentire di visualizzare e distinguere facilmente i normali punti dati dai punti di modifica e dalle anomalie. I punti di modifica sono rappresentati da quadrati blu, le anomalie sono triangoli rossi e i normali punti dati sono cerchi verdi. Le date vengono convertite in numeri tramite il metodo matplotlib
di date2num
per fornire valori compatibili con il grafico per l'asse y.
Pulire le risorse
Se si vuole pulire e rimuovere una risorsa Rilevamento anomalie, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate. È anche possibile prendere in considerazione l'eliminazione delle variabili di ambiente create se non si intende più usarle.
Questa guida di avvio rapido illustra come rilevare anomalie in un batch di dati di serie temporali usando il servizio Rilevamento anomalie e cURL.
Per informazioni generali sui concetti di Rilevamento anomalie, vedere l'articolo Panoramica.
Prerequisiti
- Una sottoscrizione di Azure: creare un account gratuitamente
- Dopo aver creato la sottoscrizione di Azure, creare una risorsa di Rilevamento anomalie nel portale di Azure per ottenere la chiave e l'endpoint. Attendere che venga distribuita, quindi selezionare pulsante Vai alla risorsa. È possibile usare il piano tariffario gratuito (
F0
) per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione. - Un file JSON valido di dati di serie temporali per verificare la presenza di anomalie. Se non si dispone di un file personalizzato, è possibile creare un file sample.json dall'esempio Corpo della richiesta
Recuperare la chiave e l'endpoint
Per effettuare correttamente una chiamata al servizio Rilevamento anomalie, sono necessari i valori seguenti:
Nome variabile | Valore |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Questo valore è disponibile nella sezione Chiavi &ed endpoint durante l'esame della risorsa dalla portale di Azure. Endpoint di esempio: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
Questo valore della chiave API è disponibile nella sezione Chiavi ed Endpoint durante l'esame della risorsa dal portale di Azure. Puoi usare entrambi KEY1 o KEY2 . |
Passare alla risorsa nel portale di Azure. Endpoint e Chiavi sono disponibili nella sezione Gestione risorse. Copiare l'endpoint e la chiave di accesso in base alle esigenze per l'autenticazione delle chiamate API. Puoi usare entrambi KEY1
o KEY2
. Avere sempre due chiavi consente di ruotare e rigenerare in modo sicuro le chiavi senza causare un'interruzione del servizio.
Creare variabili di ambiente
Creare e assegnare variabili di ambiente persistenti per la chiave e l'endpoint.
Importante
Se si usa una chiave API, archiviarla in modo sicuro in un'altra posizione, ad esempio in Azure Key Vault. Non includere la chiave API direttamente nel codice e non esporla mai pubblicamente.
Per altre informazioni sulla sicurezza dei servizi IA, vedere Autenticare richieste in Servizi di Azure AI.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Rileva anomalie
Al prompt dei comandi, eseguire questo comando. Sarà necessario inserire i valori seguenti nel comando.
- La chiave di sottoscrizione del servizio Rilevamento anomalie.
- L'indirizzo dell'endpoint di Rilevamento anomalie.
- Un file JSON valido di dati di serie temporali per verificare la presenza di anomalie. Se non è disponibile un file, è possibile creare un file sample.json dall'esempio di corpo della richiesta.
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"
Esempio del comando completo come singola riga:
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"
In alternativa, se si esegue il comando cURL da una shell Bash, il comando sarà leggermente diverso:
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"
Se sono stati usati i dati di esempio dei prerequisiti, si dovrebbe ricevere una risposta 200 con i risultati seguenti:
{
"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
}
Per altre informazioni, vedere le informazioni di riferimento sull'API REST Rilevamento anomalie.
Pulire le risorse
Se si vuole pulire e rimuovere una sottoscrizione a Servizi di Azure AI, è possibile eliminare la risorsa o il gruppo di risorse. Eliminando il gruppo di risorse vengono eliminate anche le altre risorse associate al gruppo.
Passaggi successivi
Concetti:
- Cos'è l'API Rilevamento anomalie?
- Metodi di Rilevamento delle anomalie
- Procedure consigliate per l'API Rilevamento anomalie.
Esercitazioni: