Guia de início rápido: usar a biblioteca de cliente do Univariate Anomaly Detetor
Importante
A partir de 20 de setembro de 2023, você não poderá criar novos recursos do Detetor de Anomalias. O serviço de Detetor de Anomalias está a ser desativado no dia 1 de outubro de 2026.
Documentação |de referência da biblioteca Pacote de código-fonte | da biblioteca (NuGet) |Encontre o código de exemplo no GitHub
Introdução à biblioteca de cliente do Detetor de Anomalias para C#. Siga estas etapas para instalar o pacote e começar a usar os algoritmos fornecidos pelo serviço. O serviço Detetor de anomalias permite que você encontre anormalidades em seus dados de séries cronológicas usando automaticamente os modelos mais adequados neles, independentemente do setor, cenário ou volume de dados.
Use a biblioteca de cliente do Detetor de Anomalias para C# para:
- Detete anomalias em todo o conjunto de dados de séries temporais, como uma solicitação em lote
- Detetar o status de anomalia do ponto de dados mais recente em sua série temporal
- Detete pontos de mudança de tendência em seu conjunto de dados.
Pré-requisitos
- Uma assinatura do Azure - Crie uma gratuitamente
- A versão atual do .NET Core
- Depois de ter sua assinatura do Azure, crie um recurso do Detetor de Anomalias no portal do Azure para obter sua chave e ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para recurso. Você pode usar o nível de preço gratuito (
F0
) para experimentar o serviço e atualizar posteriormente para um nível pago para produção.
Configurar
Criar uma nova aplicação .NET Core
Em uma janela de console (como cmd, PowerShell ou Bash), use o dotnet new
comando para criar um novo aplicativo de console com o nome anomaly-detector-quickstart
. Este comando cria um projeto "Hello World" simples com um único arquivo de origem C#: Program.cs.
dotnet new console -n anomaly-detector-quickstart
Altere seu diretório para a pasta do aplicativo recém-criada. Você pode criar o aplicativo com:
dotnet build
A saída da compilação não deve conter avisos ou erros.
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
Instalar a biblioteca de cliente
Dentro do diretório do aplicativo, instale a biblioteca de cliente do Detetor de Anomalias para .NET com o seguinte comando:
dotnet add package Azure.AI.AnomalyDetector --prerelease
Recuperar chave e ponto de extremidade
Para fazer uma chamada com sucesso no serviço Detetor de Anomalias, você precisará dos seguintes valores:
Nome da variável | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Exemplo de parâmetro de avaliação: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
O valor da chave da API pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar seu recurso no portal do Azure. Pode utilizar KEY1 ou KEY2 . |
DATA_PATH |
Este guia de início rápido usa o request-data.csv arquivo que pode ser baixado de nossos dados de exemplo do GitHub. Exemplo de caminho: c:\\test\\request-data.csv |
Vá para o seu recurso no portal do Azure. O Ponto de Extremidade e as Chaves podem ser encontrados na seção Gerenciamento de Recursos. Copie seu endpoint e sua chave de acesso, pois você precisará de ambos para autenticar suas chamadas de API. Pode utilizar KEY1
ou KEY2
. Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.
Criar variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Cofre de Chaves do Azure. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre segurança de serviços de IA, consulte Autenticar solicitações para serviços de IA do Azure.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Transferir dados de exemplo
Este guia de início rápido usa o request-data.csv
arquivo que pode ser baixado de nossos dados de exemplo do GitHub
Você também pode baixar os dados de exemplo executando:
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
Detetar anomalias
No diretório do projeto, abra o arquivo program.cs e substitua pelo seguinte código:
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.");
}
}
}
}
Execute o aplicativo com o seguinte comando:
dotnet run program.cs
Saída
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
Detalhes do código
Compreender os seus resultados
No código acima, os dados de exemplo são lidos e convertidos em um DetectRequest
objeto. Chamamos File.ReadAllLines
com o caminho do arquivo e criamos uma lista de objetos e removemos quaisquer novos caracteres de TimeSeriesPoint
linha. Extraia os valores e separe o carimbo de data/hora de seu valor numérico e adicione-os a um novo TimeSeriesPoint
objeto. O DetectRequest
objeto consiste em uma série de pontos de dados, com TimeGranularity.Daily
para a granularidade (ou periodicidade) dos pontos de dados.
Em seguida, chamamos o método do DetectEntireSeriesAsync
cliente com o DetectRequest
objeto e aguardamos a resposta como um EntireDetectResponse
objeto. Em seguida, iteramos os valores da IsAnomaly
resposta e imprimimos qualquer um que seja verdadeiro. Estes valores correspondem ao índice de pontos de dados anómalos, caso tenham sido encontrados.
Clean up resources (Limpar recursos)
Se quiser limpar e remover um recurso do Detetor de Anomalias, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele. Você também pode considerar a exclusão das variáveis de ambiente criadas se não pretende mais usá-las.
Documentação |de referência da biblioteca Pacote de código-fonte | da biblioteca (npm) |Encontre o código de exemplo no GitHub
Introdução à biblioteca de cliente do Detetor de Anomalias para JavaScript. Siga estas etapas para instalar o pacote e começar a usar os algoritmos fornecidos pelo serviço. O serviço Detetor de anomalias permite que você encontre anormalidades em seus dados de séries cronológicas usando automaticamente o modelo mais adequado nele, independentemente do setor, cenário ou volume de dados.
Use a biblioteca de cliente do Detetor de Anomalias para JavaScript para:
- Detete anomalias em todo o conjunto de dados de séries temporais, como uma solicitação em lote
- Detetar o status de anomalia do ponto de dados mais recente em sua série temporal
- Detete pontos de mudança de tendência em seu conjunto de dados.
Pré-requisitos
- Uma assinatura do Azure - Crie uma gratuitamente
- A versão atual do Node.js
- Depois de ter sua assinatura do Azure, crie um recurso do Detetor de Anomalias no portal do Azure para obter sua chave e ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para recurso. Você pode usar o nível de preço gratuito (
F0
) para experimentar o serviço e atualizar posteriormente para um nível pago para produção.
Configurar
Criar uma nova aplicação Node.js
Numa janela de consola (como cmd, PowerShell ou Bash), crie um novo diretório para a sua aplicação e navegue para a mesma.
mkdir myapp && cd myapp
Crie um package.json
arquivo com o seguinte conteúdo:
{
"dependencies": {
"@azure/ai-anomaly-detector": "next",
"@azure-rest/ai-anomaly-detector": "next",
"@azure/core-auth": "^1.3.0",
"csv-parse": "^5.3.0"
}
}
Instalar a biblioteca de cliente
Instale os pacotes npm necessários executando o seguinte a partir do mesmo diretório que o arquivo package.json:
npm install
Recuperar chave e ponto de extremidade
Para fazer uma chamada com sucesso no serviço Detetor de Anomalias, você precisará dos seguintes valores:
Nome da variável | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Exemplo de parâmetro de avaliação: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
O valor da chave da API pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar seu recurso no portal do Azure. Pode utilizar KEY1 ou KEY2 . |
datapath |
Este guia de início rápido usa o request-data.csv arquivo que pode ser baixado de nossos dados de exemplo do GitHub. |
Vá para o seu recurso no portal do Azure. O Ponto de Extremidade e as Chaves podem ser encontrados na seção Gerenciamento de Recursos. Copie seu endpoint e sua chave de acesso, pois você precisará de ambos para autenticar suas chamadas de API. Pode utilizar KEY1
ou KEY2
. Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.
Criar variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Cofre de Chaves do Azure. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre segurança de serviços de IA, consulte Autenticar solicitações para serviços de IA do Azure.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Transferir dados de exemplo
Este guia de início rápido usa o request-data.csv
arquivo que pode ser baixado de nossos dados de exemplo do GitHub
Você também pode baixar os dados de exemplo executando:
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
Detetar anomalias
Crie um arquivo chamado index.js
e substitua pelo seguinte código:
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 };
Executar a aplicação
Execute a aplicação com o comando node
no seu ficheiro de início rápido.
node index.js
Saída
Anomalies were detected from the series at index:
3
18
21
22
23
24
25
28
29
30
31
32
35
44
Compreender os seus resultados
No código acima, chamamos a API do Detetor de Anomalias para detetar anomalias através de toda a série temporal como um lote com o método detectEntireSeries() do cliente. Armazenamos o objeto AnomalyDetectorDetectEntireSeriesResponse retornado. Em seguida, repetimos a lista de isAnomaly
respostas e imprimimos o índice de quaisquer true
valores. Estes valores correspondem ao índice de pontos de dados anómalos, caso tenham sido encontrados.
Clean up resources (Limpar recursos)
Se quiser limpar e remover um recurso do Detetor de Anomalias, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele. Você também pode considerar a exclusão das variáveis de ambiente criadas se não pretende mais usá-las.
Documentação |de referência da biblioteca Pacote de código-fonte | da biblioteca (PyPi) |Encontre o código de exemplo no GitHub
Comece a usar a biblioteca de cliente do Detetor de Anomalias para Python. Siga estas etapas para instalar o pacote e começar a usar os algoritmos fornecidos pelo serviço. O serviço Detetor de anomalias permite que você encontre anormalidades em seus dados de séries cronológicas usando automaticamente os modelos mais adequados neles, independentemente do setor, cenário ou volume de dados.
Use a biblioteca de cliente do Detetor de Anomalias para Python para:
- Detete anomalias em todo o conjunto de dados de séries temporais, como uma solicitação em lote
- Detetar o status de anomalia do ponto de dados mais recente em sua série temporal
- Detete pontos de mudança de tendência em seu conjunto de dados.
Pré-requisitos
- Uma assinatura do Azure - Crie uma gratuitamente
- Python 3.x
- Biblioteca de análise de dados Pandas
- Depois de ter sua assinatura do Azure, crie um recurso do Detetor de Anomalias no portal do Azure para obter sua chave e ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para recurso. Você pode usar o nível de preço gratuito (
F0
) para experimentar o serviço e atualizar posteriormente para um nível pago para produção.
Configurar
Instale a biblioteca do cliente. Você pode instalar a biblioteca de cliente com:
pip install --upgrade azure.ai.anomalydetector
Recuperar chave e ponto de extremidade
Para fazer uma chamada com sucesso no serviço Detetor de Anomalias, você precisará dos seguintes valores:
Nome da variável | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Exemplo de parâmetro de avaliação: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
O valor da chave da API pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar seu recurso no portal do Azure. Pode utilizar KEY1 ou KEY2 . |
DATA_PATH |
Este guia de início rápido usa o request-data.csv arquivo que pode ser baixado de nossos dados de exemplo do GitHub. Exemplo de caminho: c:\\test\\request-data.csv |
Vá para o seu recurso no portal do Azure. O Ponto de Extremidade e as Chaves podem ser encontrados na seção Gerenciamento de Recursos. Copie seu endpoint e sua chave de acesso, pois você precisará de ambos para autenticar suas chamadas de API. Pode utilizar KEY1
ou KEY2
. Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.
Criar variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Cofre de Chaves do Azure. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre segurança de serviços de IA, consulte Autenticar solicitações para serviços de IA do Azure.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Transferir dados de exemplo
Este guia de início rápido usa o request-data.csv
arquivo que pode ser baixado de nossos dados de exemplo do GitHub
Você também pode baixar os dados de exemplo executando:
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
Detetar anomalias
Crie um novo arquivo Python chamado quickstart.py. Em seguida, abra-o no seu editor ou IDE preferido.
Substitua o conteúdo do quickstart.py pelo código a seguir. Modifique o código para adicionar os nomes das variáveis de ambiente para sua chave, ponto de extremidade e caminho de dados de série 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
Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. Para obter mais informações sobre segurança de credenciais, consulte o artigo de segurança dos serviços de IA do Azure.
Execute o aplicativo com o
python
comando em seu arquivo de início rápidopython quickstart.py
Saída
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
Compreender os seus resultados
Em nosso código acima, chamamos a API do Detetor de Anomalias duas vezes. A primeira chamada verifica pontos de mudança de tendência em nossa série de dados de exemplo com o detect_change_point
método. Esta chamada retorna um ChangePointDetectResponse
que armazenamos em uma variável que nomeamos change_point_request
. Em seguida, iteramos através da lista de is_change_point
respostas e imprimimos o índice de quaisquer valores com um booleano de true
.
A segunda chamada verifica toda a série de dados de amostra em busca de anomalias usando o detect_entire_series
método. Esta chamada retorna um EntireDetectResponse
que armazenamos em uma variável que nomeamos anomaly_response
. Repetimos através da lista de is_anomaly
respostas e imprimimos o índice de quaisquer valores com um booleano de true
. Alternativamente, poderíamos ter usado o detect_last_point
método, que é mais apropriado para detetar anomalias em dados em tempo real. Para saber mais, consulte o guia de práticas recomendadas.
Visualizar resultados
Para visualizar as anomalias e os pontos de alteração em relação à série de dados de exemplo, usaremos a popular biblioteca de código aberto matplotlib.
Instale a biblioteca.
pip install matplotlib
Modifique seu arquivo quickstart.py com o seguinte código:
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
Para produção, use uma maneira segura de armazenar e acessar suas credenciais, como o Azure Key Vault. para obter mais informações sobre segurança de credenciais, consulte o artigo de segurança dos serviços de IA do Azure.
Execute o aplicativo com o
python
comando em seu arquivo de início rápidopython quickstart.py
Saída
Neste exemplo de código, adicionamos a matplotlib
biblioteca para nos permitir visualizar e distinguir facilmente pontos de dados normais de pontos de alteração e anomalias. Os pontos de alteração são representados por quadrados azuis, as anomalias são triângulos vermelhos e os pontos de dados normais são círculos verdes. As datas são convertidas em números usando matplotlib
o método de 's date2num
para fornecer valores amigáveis para os gráficos do eixo y.
Clean up resources (Limpar recursos)
Se quiser limpar e remover um recurso do Detetor de Anomalias, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele. Você também pode considerar a exclusão das variáveis de ambiente criadas se não pretende mais usá-las.
Neste guia de início rápido, você aprenderá a detetar anomalias em um lote de dados de séries cronológicas usando o serviço Detetor de Anomalias e o cURL.
Para uma visão de alto nível dos conceitos do Detetor de Anomalias, consulte o artigo de visão geral .
Pré-requisitos
- Uma assinatura do Azure - Crie uma gratuitamente
- Depois de ter sua assinatura do Azure, crie um recurso do Detetor de Anomalias no portal do Azure para obter sua chave e ponto de extremidade. Aguarde até que ele seja implantado e selecione o botão Ir para recurso. Você pode usar o nível de preço gratuito (
F0
) para experimentar o serviço e atualizar posteriormente para um nível pago para produção. - Um arquivo JSON válido de dados de séries temporais para testar anomalias. Se você não tiver seu próprio arquivo, poderá criar um arquivo sample.json a partir do exemplo Corpo da solicitação
Recuperar chave e ponto de extremidade
Para fazer uma chamada com sucesso no serviço Detetor de Anomalias, você precisará dos seguintes valores:
Nome da variável | Valor |
---|---|
ANOMALY_DETECTOR_ENDPOINT |
Este valor pode ser encontrado na secção Chaves e Ponto Final ao examinar o recurso no portal do Azure. Exemplo de parâmetro de avaliação: https://YOUR_RESOURCE_NAME.cognitiveservices.azure.com/ |
ANOMALY_DETECTOR_API_KEY |
O valor da chave da API pode ser encontrado na seção Chaves & Ponto de Extremidade ao examinar seu recurso no portal do Azure. Pode utilizar KEY1 ou KEY2 . |
Vá para o seu recurso no portal do Azure. O Ponto de Extremidade e as Chaves podem ser encontrados na seção Gerenciamento de Recursos. Copie seu endpoint e sua chave de acesso, pois você precisará de ambos para autenticar suas chamadas de API. Pode utilizar KEY1
ou KEY2
. Ter sempre duas chaves permite-lhe rodar e regenerar chaves de forma segura sem causar uma interrupção do serviço.
Criar variáveis de ambiente
Crie e atribua variáveis de ambiente persistentes para sua chave e endpoint.
Importante
Se você usar uma chave de API, armazene-a com segurança em outro lugar, como no Cofre de Chaves do Azure. Não inclua a chave da API diretamente no seu código e nunca a publique publicamente.
Para obter mais informações sobre segurança de serviços de IA, consulte Autenticar solicitações para serviços de IA do Azure.
setx ANOMALY_DETECTOR_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx ANOMALY_DETECTOR_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
Detetar anomalias
Em um prompt de comando, execute o seguinte comando. Você precisará inserir os seguintes valores no comando.
- A sua chave de subscrição do serviço Detetor de anomalias.
- Seu endereço de ponto final do detetor de anomalias.
- Um arquivo JSON válido de dados de séries temporais para testar anomalias. Se você não tiver seu próprio arquivo, poderá criar um arquivo sample.json a partir do exemplo Corpo da solicitação.
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"
Um exemplo do comando completo como uma única linha:
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, se você estiver executando o comando cURL a partir de um shell Bash, seu comando será ligeiramente 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"
Se você usou os dados de exemplo dos pré-requisitos, você deve receber uma resposta 200 com os seguintes 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 obter mais informações, consulte a referência REST de deteção de anomalias.
Clean up resources (Limpar recursos)
Se quiser limpar e remover uma assinatura de serviços do Azure AI, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados ao grupo de recursos.
Próximos passos
Conceitos:
- O que é a API do Detetor de Anomalias?
- Métodos de deteção de anomalias
- Práticas recomendadas ao usar a API do Detetor de Anomalias.
Tutoriais: