Inicio rápido: Uso de la biblioteca cliente univariante de Anomaly Detector
Importante
A partir del 20 de septiembre de 2023, no podrá crear nuevos recursos de Anomaly Detector. El servicio Anomaly Detector se va a retirar el 1 de octubre de 2026.
Documentación de referencia de la biblioteca |Código fuente de la biblioteca | Paquete (NuGet) |Búsqueda del código en GitHub
Comience a usar la biblioteca cliente de Anomaly Detector para C#. Siga estos pasos para instalar el inicio del paquete con los algoritmos que proporciona el servicio. El servicio de Anomaly Detector le permite detectar anomalías en los datos de serie temporal mediante el uso automático de los mejores modelos, independientemente del sector, el escenario o el volumen de datos.
Use la biblioteca cliente de Anomaly Detector para C# para realizar las siguientes acciones:
- Detectar anomalías en el conjunto de datos de serie temporal como una solicitud por lotes
- Detectar el estado de anomalía del punto de datos más reciente en la serie temporal
- Detectar puntos de cambio de tendencia en el conjunto de datos.
Requisitos previos
- Una suscripción a Azure: cree una cuenta gratuita.
- La versión actual de .NET Core
- Cuando tenga la suscripción de Azure, cree un recurso de Anomaly Detector en Azure Portal para obtener la clave y el punto de conexión. Espere a que se implemente y seleccione el botón Ir al recurso. Puede usar el plan de tarifa gratis (
F0
) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
Configuración
Creación de una aplicación de .NET Core
En una ventana de consola (por ejemplo, cmd, PowerShell o Bash), use el comando dotnet new
para crear una nueva aplicación de consola con el nombre anomaly-detector-quickstart
. Este comando crea un sencillo proyecto "Hola mundo" con un solo archivo de origen de C#: Program.cs.
dotnet new console -n anomaly-detector-quickstart
Cambie el directorio a la carpeta de aplicaciones recién creada. Para compilar la aplicación:
dotnet build
La salida de la compilación no debe contener advertencias ni errores.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
Instalación de la biblioteca cliente
Dentro del directorio de aplicaciones, instale la biblioteca cliente de Anomaly Detector para .NET con el siguiente comando:
dotnet add package Azure.AI.AnomalyDetector --prerelease
Recuperación de la clave y el punto de conexión
Para realizar correctamente una llamada en el servicio Anomaly Detector, necesitará los siguientes valores:
Nombre de la variable | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Punto de conexión de ejemplo: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
El valor de la clave de API se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal. Puede usar KEY1 o KEY2 . |
DATA_PATH |
En este inicio rápido se usa el archivo request-data.csv que se puede descargar de los datos de ejemplo de GitHub. Ruta de acceso de ejemplo: c:\\test\\request-data.csv |
Vaya al recurso en Azure Portal. El punto de conexión y las claves se pueden encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1
o KEY2
. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.
Creación de variables de entorno
Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Descarga de datos de ejemplo
En este inicio rápido se usa el archivo request-data.csv
que se puede descargar de los datos de ejemplo de GitHub
También puede descargar los datos de ejemplo mediante la ejecución de:
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
Detección de anomalías
En el directorio del proyecto, abra el archivo program.cs y reemplácelo con el código siguiente:
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.");
}
}
}
}
Ejecute la aplicación con el comando siguiente:
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
Detalles del código
Descripción de los resultados
En el código anterior, los datos de ejemplo se leen y convierten en un objeto DetectRequest
. Llame a File.ReadAllLines
con la ruta de acceso del archivo, cree una lista de objetos TimeSeriesPoint
y quite los caracteres de nuevas líneas. Extraiga los valores y separe la marca de tiempo de su valor numérico y agréguelos a un nuevo objeto TimeSeriesPoint
. El objeto DetectRequest
consta de una serie de puntos de datos, con TimeGranularity.Daily
para la granularidad (o periodicidad) de los puntos de datos.
A continuación, llame al método DetectEntireSeriesAsync
del cliente con el objeto DetectRequest
y espere la respuesta como un objeto EntireDetectResponse
. Después, itere los valores IsAnomaly
de la respuesta e imprima los que sean verdaderos. Estos valores se corresponden con el índice de los puntos de datos anómalos, si se detecta alguno.
Limpieza de recursos
Si quiere limpiar y quitar un recurso de Anomaly Detector, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él. También puede considerar la posibilidad de eliminar las variables de entorno que creó si ya no tiene intención de usarlas.
Documentación de referencia de la biblioteca |Código fuente de la biblioteca | Paquete (npm) |Búsqueda del código de ejemplo en GitHub
Comience a usar la biblioteca cliente de Anomaly Detector para JavaScript. Siga estos pasos para instalar el paquete y empezar a usar los algoritmos proporcionados por el servicio. El servicio de Anomaly Detector permite detectar anomalías en los datos de serie temporal mediante el uso automático del modelo que mejor se ajusta, independientemente del sector, el escenario o el volumen de datos.
Use la biblioteca cliente de Anomaly Detector para JavaScript para hacer lo siguiente:
- Detectar anomalías en el conjunto de datos de serie temporal como una solicitud por lotes
- Detectar el estado de anomalía del punto de datos más reciente en la serie temporal
- Detectar puntos de cambio de tendencia en el conjunto de datos.
Requisitos previos
- Una suscripción a Azure: cree una cuenta gratuita.
- La versión actual de Node.js
- Cuando tenga la suscripción de Azure, cree un recurso de Anomaly Detector en Azure Portal para obtener la clave y el punto de conexión. Espere a que se implemente y seleccione el botón Ir al recurso. Puede usar el plan de tarifa gratis (
F0
) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
Configurar
Creación de una aplicación Node.js
En una ventana de la consola (como cmd, PowerShell o Bash), cree un directorio para la aplicación y vaya a él.
mkdir myapp && cd myapp
Cree un archivo package.json
con el siguiente contenido:
{
"dependencies": {
"@azure/ai-anomaly-detector": "next",
"@azure-rest/ai-anomaly-detector": "next",
"@azure/core-auth": "^1.3.0",
"csv-parse": "^5.3.0"
}
}
Instalación de la biblioteca cliente
Instale los paquetes npm necesarios mediante la ejecución de lo siguiente desde el mismo directorio que el archivo package.json:
npm install
Recuperación de la clave y el punto de conexión
Para realizar correctamente una llamada en el servicio Anomaly Detector, necesitará los siguientes valores:
Nombre de la variable | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Punto de conexión de ejemplo: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
El valor de la clave de API se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal. Puede usar KEY1 o KEY2 . |
datapath |
En este inicio rápido se usa el archivo request-data.csv que se puede descargar de los datos de ejemplo de GitHub. |
Vaya al recurso en Azure Portal. El punto de conexión y las claves se pueden encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1
o KEY2
. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.
Creación de variables de entorno
Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Descarga de datos de ejemplo
En este inicio rápido se usa el archivo request-data.csv
que se puede descargar de los datos de ejemplo de GitHub
También puede descargar los datos de ejemplo mediante la ejecución de:
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
Detección de anomalías
Cree un archivo denominado index.js
y reemplace por el código siguiente:
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 };
Ejecución de la aplicación
Ejecute la aplicación con el comando node
en el archivo de inicio rápido.
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
Descripción de los resultados
En el código anterior, llame a la API Anomaly Detector para detectar anomalías en toda la serie temporal como un lote con el método detectEntireSeries() del cliente. Almacene el objeto AnomalyDetectorDetectEntireSeriesResponse devuelto. Itere la lista isAnomaly
de la respuesta e imprima el índice de los valores true
. Estos valores se corresponden con el índice de los puntos de datos anómalos, si se detecta alguno.
Limpieza de recursos
Si quiere limpiar y quitar un recurso de Anomaly Detector, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él. También puede considerar la posibilidad de eliminar las variables de entorno que creó si ya no tiene intención de usarlas.
Documentación de referencia de la biblioteca |Código fuente de la biblioteca | Paquete (PyPi) |Buscar el ejemplo de código en GitHub
Comience a usar la biblioteca cliente de Anomaly Detector para Python. Siga estos pasos para instalar el paquete y empezar a usar los algoritmos proporcionados por el servicio. El servicio de Anomaly Detector le permite detectar anomalías en los datos de serie temporal mediante el uso automático de los mejores modelos, independientemente del sector, el escenario o el volumen de datos.
Use la biblioteca cliente de Anomaly Detector para Python para las siguientes acciones:
- Detectar anomalías en el conjunto de datos de serie temporal como una solicitud por lotes
- Detectar el estado de anomalía del punto de datos más reciente en la serie temporal
- Detectar puntos de cambio de tendencia en el conjunto de datos.
Requisitos previos
- Una suscripción a Azure: cree una cuenta gratuita.
- Python 3.x
- Biblioteca de análisis de datos de Pandas
- Cuando tenga la suscripción de Azure, cree un recurso de Anomaly Detector en Azure Portal para obtener la clave y el punto de conexión. Espere a que se implemente y seleccione el botón Ir al recurso. Puede usar el plan de tarifa gratis (
F0
) para probar el servicio y actualizarlo más adelante a un plan de pago para producción.
Configurar
Instale la biblioteca cliente. Puede instalar la biblioteca cliente con lo siguiente:
pip install --upgrade azure.ai.anomalydetector
Recuperación de la clave y el punto de conexión
Para realizar correctamente una llamada en el servicio Anomaly Detector, necesitará los siguientes valores:
Nombre de la variable | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Punto de conexión de ejemplo: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
El valor de la clave de API se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal. Puede usar KEY1 o KEY2 . |
DATA_PATH |
En este inicio rápido se usa el archivo request-data.csv que se puede descargar de los datos de ejemplo de GitHub. Ruta de acceso de ejemplo: c:\\test\\request-data.csv |
Vaya al recurso en Azure Portal. El punto de conexión y las claves se pueden encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1
o KEY2
. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.
Creación de variables de entorno
Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Descarga de datos de ejemplo
En este inicio rápido se usa el archivo request-data.csv
que se puede descargar de los datos de ejemplo de GitHub
También puede descargar los datos de ejemplo mediante la ejecución de:
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
Detección de anomalías
Cree un nuevo archivo de Python denominado quickstart.py. A continuación, ábralo en el editor o IDE preferidos.
Reemplace el contenido de quickstart-file.py por el código siguiente. Modifique el código para agregar los nombres de las variables de entorno para la clave, el punto de conexión y la ruta de acceso de datos de la serie temporal:
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
En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.
Ejecute la aplicación con el comando
python
en el archivo de inicio rápido.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
Descripción de los resultados
En el código anterior, se llama a la API de Anomaly Detector dos veces. La primera llamada comprueba los puntos de cambio de tendencia en la serie de datos de ejemplo con el método detect_change_point
. Esta llamada devuelve un objeto ChangePointDetectResponse
que se almacena en una variable denominada change_point_request
. A continuación, itere la lista is_change_point
de la respuesta e imprima el índice de los valores con un valor booleano de true
.
La segunda llamada comprueba si existen anomalías en toda la serie de datos de ejemplo mediante el método detect_entire_series
. Esta llamada devuelve un objeto EntireDetectResponse
que se almacena en una variable denominada anomaly_response
. A continuación, itere la lista is_anomaly
de la respuesta e imprima el índice de los valores con un valor booleano de true
. Como alternativa, se podría haber usado el método detect_last_point
, que es más adecuado para detectar anomalías en datos en tiempo real. Para obtener más información, consulte la guía de procedimientos recomendados.
Visualización de los resultados
Para visualizar las anomalías y los puntos de cambio en relación con la serie de datos de ejemplo, se usará la popular biblioteca de código abierto matplotlib.
Instale la biblioteca.
pip install matplotlib
Modifique el archivo quickstart.py con el código siguiente:
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
En el caso de producción, use una forma segura de almacenar sus credenciales y acceder a ellas, como Azure Key Vault. Para obtener más información sobre la seguridad de las credenciales, consulte el artículo Seguridad de servicios de Azure AI.
Ejecute la aplicación con el comando
python
en el archivo de inicio rápido.python quickstart.py
Output
En este ejemplo de código, se ha agregado la biblioteca matplotlib
para permitir visualizar y distinguir con facilidad los puntos de datos normales de los puntos de cambio y las anomalías. Los puntos de cambio se representan mediante cuadrados azules, las anomalías son triángulos rojos y los puntos de datos normales son círculos verdes. Las fechas se convierten en números mediante el métododate2num
de matplotlib
para proporcionar valores descriptivos de grafos para el eje Y de los gráficos.
Limpieza de recursos
Si quiere limpiar y quitar un recurso de Anomaly Detector, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a él. También puede considerar la posibilidad de eliminar las variables de entorno que creó si ya no tiene intención de usarlas.
En esta guía de inicio rápido, aprenderá a detectar anomalías en un lote de datos de series temporales mediante el servicio Anomaly Detector y cURL.
Para obtener una visión general de los conceptos de Anomaly Detector, consulte el artículo de información general.
Requisitos previos
- Una suscripción a Azure: cree una cuenta gratuita.
- Cuando tenga la suscripción de Azure, cree un recurso de Anomaly Detector en Azure Portal para obtener la clave y el punto de conexión. Espere a que se implemente y seleccione el botón Ir al recurso. Puede usar el plan de tarifa gratis (
F0
) para probar el servicio y actualizarlo más adelante a un plan de pago para producción. - Un archivo JSON válido de datos de serie temporal para probar las anomalías. Si no tiene su propio archivo, puede crear un archivo sample.json a partir del ejemplo de cuerpo de la solicitud
Recuperación de la clave y el punto de conexión
Para realizar correctamente una llamada en el servicio Anomaly Detector, necesitará los siguientes valores:
Nombre de la variable | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Este valor se puede encontrar en la sección Claves y punto de conexión al examinar el recurso en Azure Portal. Punto de conexión de ejemplo: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
El valor de la clave de API se puede encontrar en la sección Claves y punto de conexión al examinar su recurso en Azure Portal. Puede usar KEY1 o KEY2 . |
Vaya al recurso en Azure Portal. El punto de conexión y las claves se pueden encontrar en la sección Administración de recursos. Copie el punto de conexión y la clave de acceso, ya que los necesitará para autenticar las llamadas API. Puede usar KEY1
o KEY2
. Tener siempre dos claves permite rotar y regenerar las claves de forma segura sin provocar una interrupción del servicio.
Creación de variables de entorno
Cree y asigne variables de entorno persistentes para la clave y el punto de conexión.
Importante
Si usa una clave de API, almacénela de forma segura en otro lugar, como en Azure Key Vault. No incluya la clave de API directamente en el código ni la exponga nunca públicamente.
Para más información sobre la seguridad de los servicios de AI, consulte Autenticación de solicitudes a los servicios de Azure AI.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Detección de anomalías
En el símbolo del sistema, ejecute el siguiente comando. Deberá insertar los siguientes valores en el comando.
- La clave de suscripción del servicio Anomaly Detector.
- La dirección del punto de conexión del recurso de Anomaly Detector.
- Un archivo JSON válido de datos de serie temporal para probar las anomalías. Si no tiene su propio archivo, puede crear un archivo sample.json a partir del ejemplo de cuerpo de la solicitud.
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"
Un ejemplo del comando completo como una sola línea:
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"
Como alternativa, si ejecuta el comando cURL desde un shell de Bash, el comando será ligeramente diferente:
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 ha utilizado los datos de ejemplo de los requisitos previos, debería recibir un código de respuesta 200 con los siguientes resultados:
{
"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
}
Para más información, consulte Referencia de la API REST de Anomaly Detector.
Limpieza de recursos
Si quiere limpiar y eliminar una suscripción de servicios de Azure AI, puede eliminar el recurso o el grupo de recursos. Al eliminar el grupo de recursos, también se elimina cualquier otro recurso que esté asociado a dicho grupo.
Pasos siguientes
Conceptos:
- ¿Qué es Anomaly Detector API?
- Métodos de detección de anomalías
- Procedimientos recomendados cuando se usa Anomaly Detector API.
Tutoriales: