Partilhar via


Práticas recomendadas para usar a API univariada do Detetor de Anomalias

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.

A API do Detetor de Anomalias é um serviço de deteção de anomalias sem estado. A precisão e o desempenho de seus resultados podem ser afetados por:

  • Como são preparados os dados das suas séries cronológicas.
  • Os parâmetros da API do Detetor de Anomalias que foram usados.
  • O número de pontos de dados em sua solicitação de API.

Use este artigo para saber mais sobre as práticas recomendadas para usar a API para obter os melhores resultados para seus dados.

Quando usar a deteção de anomalias em lote (inteira) ou mais recente (última) pontual

O ponto de extremidade de deteção em lote da API do Detetor de Anomalias permite detetar anomalias através de dados de séries cronológicas inteiras. Neste modo de deteção, um único modelo estatístico é criado e aplicado a cada ponto do conjunto de dados. Se sua série temporal tiver as características abaixo, recomendamos usar a deteção em lote para visualizar seus dados em uma chamada de API.

  • Uma série temporal sazonal, com anomalias ocasionais.
  • Uma série temporal de tendência plana, com picos / quedas ocasionais.

Não recomendamos o uso da deteção de anomalias em lote para monitoramento de dados em tempo real ou o uso em dados de séries cronológicas que não tenham as características acima.

  • A deteção em lote cria e aplica apenas um modelo, a deteção para cada ponto é feita no contexto de toda a série. Se os dados de séries temporais tenderem para cima e para baixo sem sazonalidade, alguns pontos de mudança (quedas e picos nos dados) podem ser perdidos pelo modelo. Da mesma forma, alguns pontos de mudança que são menos significativos do que aqueles posteriores no conjunto de dados podem não ser considerados significativos o suficiente para serem incorporados ao modelo.

  • A deteção de lote é mais lenta do que detetar o status de anomalia do ponto mais recente ao fazer o monitoramento de dados em tempo real, devido ao número de pontos que estão sendo analisados.

Para monitoramento de dados em tempo real, recomendamos detetar apenas o status de anomalia do seu ponto de dados mais recente. Ao aplicar continuamente a deteção de ponto mais recente, o monitoramento de dados de streaming pode ser feito de forma mais eficiente e precisa.

O exemplo abaixo descreve o impacto que esses modos de deteção podem ter no desempenho. A primeira imagem mostra o resultado da deteção contínua do ponto mais recente do estado da anomalia ao longo de 28 pontos de dados vistos anteriormente. Os pontos vermelhos são anomalias.

Uma imagem mostrando a deteção de anomalias usando o ponto mais recente

Abaixo está o mesmo conjunto de dados usando a deteção de anomalias em lote. O modelo construído para a operação ignorou várias anomalias, marcadas por retângulos.

Uma imagem mostrando a deteção de anomalias usando o método de lote

Preparação de dados

A API do Detetor de Anomalias aceita dados de séries temporais formatados em um objeto de solicitação JSON. Uma série temporal pode ser qualquer dado numérico registado ao longo do tempo por ordem sequencial. Você pode enviar janelas de seus dados de séries cronológicas para o ponto de extremidade da API do Detetor de Anomalias para melhorar o desempenho da API. O número mínimo de pontos de dados que pode enviar é 12 e o máximo é de 8640 pontos. A granularidade é definida como a taxa em que seus dados são amostrados.

Os pontos de dados enviados para a API do Detetor de Anomalias devem ter um carimbo de data/hora UTC (Tempo Universal Coordenado) válido e um valor numérico.

{
    "granularity": "daily",
    "series": [
      {
        "timestamp": "2018-03-01T00:00:00Z",
        "value": 32858923
      },
      {
        "timestamp": "2018-03-02T00:00:00Z",
        "value": 29615278
      },
    ]
}

Se os dados forem amostrados em um intervalo de tempo não padrão, você poderá especificá-lo adicionando o customInterval atributo à sua solicitação. Por exemplo, se sua série for amostrada a cada 5 minutos, você poderá adicionar o seguinte à sua solicitação JSON:

{
    "granularity" : "minutely", 
    "customInterval" : 5
}

Pontos de dados em falta

Pontos de dados ausentes são comuns em conjuntos de dados de séries temporais uniformemente distribuídos, especialmente aqueles com uma granularidade fina (Um pequeno intervalo de amostragem. Por exemplo, dados amostrados a cada poucos minutos). A falta de menos de 10% do número esperado de pontos em seus dados não deve ter um impacto negativo nos resultados da deteção. Considere preencher lacunas em seus dados com base em suas características, como a substituição de pontos de dados de um período anterior, interpolação linear ou uma média móvel.

Agregar dados distribuídos

A API do Detetor de Anomalias funciona melhor em uma série temporal distribuída uniformemente. Se os dados forem distribuídos aleatoriamente, você deverá agregá-los por uma unidade de tempo, como por minuto, por hora ou diariamente.

Deteção de anomalias em dados com padrões sazonais

Se você souber que seus dados de séries temporais têm um padrão sazonal (que ocorre em intervalos regulares), poderá melhorar a precisão e o tempo de resposta da API.

Especificar um period quando você constrói sua solicitação JSON pode reduzir a latência de deteção de anomalias em até 50%. O period é um número inteiro que especifica aproximadamente quantos pontos de dados a série temporal leva para repetir um padrão. Por exemplo, uma série temporal com um ponto de dados por dia teria um period como 7, e uma série temporal com um ponto por hora (com o mesmo padrão semanal) teria um period de 7*24. Se você não tiver certeza dos padrões de seus dados, não precisará especificar esse parâmetro.

Para obter melhores resultados, forneça quatro periodpontos de dados, além de um adicional. Por exemplo, os dados horários com um padrão semanal, conforme descrito acima, devem fornecer 673 pontos de dados no corpo da solicitação (7 * 24 * 4 + 1).

Dados de amostragem para monitorização em tempo real

Se os dados de streaming forem amostrados em um curto intervalo (por exemplo, segundos ou minutos), o envio do número recomendado de pontos de dados pode exceder o número máximo permitido pela API do Detetor de Anomalias (8640 pontos de dados). Se os dados mostrarem um padrão sazonal estável, considere enviar uma amostra dos dados da série temporal em um intervalo de tempo maior, como horas. A amostragem de seus dados dessa maneira também pode melhorar visivelmente o tempo de resposta da API.

Próximos passos