Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Crie um detector de anomalias de qualidade do ar usando o Amazon Lookout for Metrics

Hoje, a poluição do ar é um problema ambiental familiar que cria graves problemas respiratórios e cardíacos, que representam sérias ameaças à saúde. A chuva ácida, a destruição da camada de ozônio e o aquecimento global também são consequências adversas da poluição do ar. Há necessidade de monitoramento e automação inteligentes para evitar problemas graves de saúde e, em casos extremos, situações de risco de vida. A qualidade do ar é medida usando a concentração de poluentes no ar. Identificar os sintomas precocemente e controlar o nível de poluentes antes que se tornem perigosos é crucial. O processo de identificar a qualidade do ar e a anomalia no peso dos poluentes e diagnosticar rapidamente a causa raiz é difícil, caro e propenso a erros.

O processo de aplicação de soluções baseadas em IA e aprendizado de máquina (ML) para encontrar anomalias de dados envolve muita complexidade na ingestão, curadoria e preparação de dados no formato certo e, em seguida, otimizar e manter a eficácia desses modelos de ML por longos períodos de tempo. Tempo. Essa tem sido uma das barreiras para implementar e dimensionar rapidamente a adoção de recursos de ML.

Esta postagem mostra como usar uma solução integrada com Amazon Lookout para métricas e Mangueira de incêndio de dados do Amazon Kinesis para quebrar essas barreiras ingerindo dados de streaming de forma rápida e fácil e, posteriormente, detectando anomalias nos principais indicadores de desempenho de seu interesse.

O Lookout for Metrics detecta e diagnostica automaticamente anomalias (fora da norma) em dados comerciais e operacionais. É um serviço de ML totalmente gerenciado que usa modelos de ML especializados para detectar anomalias com base nas características de seus dados. Por exemplo, tendências e sazonalidade são duas características de métricas de séries temporais nas quais a detecção de anomalias com base em limites não funciona. As tendências são variações contínuas (aumentos ou diminuições) no valor de uma métrica. Por outro lado, a sazonalidade são padrões periódicos que ocorrem em um sistema, geralmente subindo acima de uma linha de base e depois diminuindo novamente. Você não precisa de experiência em ML para usar o Lookout for Metrics.

Demonstramos um cenário comum de monitoramento da qualidade do ar, no qual detectamos anomalias na concentração de poluentes no ar. Ao final desta postagem, você aprenderá a usar esses serviços gerenciados da AWS para ajudar a evitar problemas de saúde e aquecimento global. Você pode aplicar esta solução a outros casos de uso para melhor gerenciamento do ambiente, como detectar anomalias na qualidade da água, qualidade do solo e padrões de consumo de energia, para citar alguns.

Visão geral da solução

A arquitetura consiste em três blocos funcionais:

  • Sensores sem fio colocados em locais estratégicos para detectar o nível de concentração de monóxido de carbono (CO), dióxido de enxofre (SO2) e dióxido de nitrogênio (NO2) no ar
  • Ingestão e armazenamento de dados de streaming
  • Detecção e notificação de anomalias

A solução fornece um caminho de dados totalmente automatizado desde os sensores até uma notificação enviada ao usuário. Você também pode interagir com a solução usando a IU do Lookout for Metrics para analisar as anomalias identificadas.

O diagrama a seguir ilustra nossa arquitetura de solução.

Pré-requisitos

Você precisa dos seguintes pré-requisitos antes de prosseguir com a solução. Para este post, usamos a região us-east-1.

  1. Baixe o script Python (publicar.py) e arquivo de dados do GitHub repo.
  2. Abra o live_data.csv arquivo em seu editor preferido e substitua as datas para a data de hoje e amanhã. Por exemplo, se a data de hoje for 8 de julho de 2022, substitua 2022-03-25 de 2022-07-08. Mantenha o mesmo formato. Isso é necessário para simular os dados do sensor para a data atual usando o script do simulador de IoT.
  3. Crie uma Serviço de armazenamento simples da Amazon (Amazon S3) e uma pasta chamada air-quality. Crie uma subpasta dentro air-quality nomeado historical. Para obter instruções, consulte Criação de uma pasta.
  4. Nos envie os live_data.csv arquivo no bucket raiz do S3 e historical_data.json na pasta histórica.
  5. Crie uma Nuvem AWS9 ambiente de desenvolvimento, que usamos para executar o programa simulador Python para criar dados de sensor para esta solução.

Ingerir e transformar dados usando AWS IoT Core e Kinesis Data Firehose

Usamos um stream de entrega do Kinesis Data Firehose para ingerir os dados de streaming de Núcleo da AWS IoT e entregá-lo ao Amazon S3. Conclua as seguintes etapas:

  1. No console Kinesis Data Firehose, escolha Criar fluxo de entrega.
  2. Escolha fonte, escolha PUT direto.
  3. Escolha Destino, escolha Amazon S3.
  4. Escolha Nome do fluxo de entrega, insira um nome para seu fluxo de entrega.
    Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  5. Escolha Caçamba S3, insira o bucket que você criou como pré-requisito.
  6. Insira valores para Prefixo do bucket do S3 e Prefixo de saída de erro do bucket do S3.Um dos principais pontos a serem observados é a configuração do prefixo personalizado configurado para o destino do Amazon S3. Esse padrão de prefixo garante que os dados sejam criados no bucket do S3 de acordo com a hierarquia de prefixo esperada pelo Lookout for Metrics. (Mais sobre isso posteriormente neste post.) Para obter mais informações sobre prefixos personalizados, consulte Prefixos personalizados para objetos Amazon S3.
    Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  7. Escolha Intervalo de buffer, entrar 60.
    Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  8. Escolha Criar ou atualizar a função do IAM.
  9. Escolha Criar fluxo de entrega.
    Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
    Agora configuramos o AWS IoT Core e executamos o programa simulador de qualidade do ar.
  10. No console do AWS IoT Core, criar uma política da AWS IoT chamado de administrador.
  11. No painel de navegação em Roteamento de mensagens, escolha Regras.
  12. Escolha Criar regra.
  13. Crie uma regra com o Ação do Kinesis Data Firehose(firehose).
    Isso envia dados de uma mensagem MQTT para um fluxo de entrega do Kinesis Data Firehose.
  14. Escolha Crie.
    Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  15. Crie uma coisa da AWS IoT com nome Test-Thing e anexe a política que você criou.
  16. Faça download do certificado, chave pública, chave privada, certificado de dispositivo e CA raiz para AWS IoT Core.
  17. Salve cada um dos arquivos baixados no certificates subdiretório que você criou anteriormente.
    Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  18. Faça upload de publish.py para o iot-test-publish pasta.
  19. No console do AWS IoT Core, no painel de navegação, escolha Configurações.
  20. Debaixo Endpoint personalizado, copie o ponto de extremidade.
    Este URL de endpoint personalizado do AWS IoT Core é pessoal para sua conta e região da AWS.
  21. Substituir customEndpointUrl com seu URL de endpoint personalizado do AWS IoT Core, certificados com o nome do certificado e Your_S3_Bucket_Name com o nome do seu bucket do S3.
    Em seguida, você instala o pip e o AWS IoT SDK for Python.
  22. Faça login no AWS Cloud9 e crie um diretório de trabalho em seu ambiente de desenvolvimento. Por exemplo: aq-iot-publish.
  23. Crie um subdiretório para certificados em seu novo diretório de trabalho. Por exemplo: certificates.
  24. Instale o AWS IoT SDK for Python v2 executando o seguinte na linha de comando.
    pip install awsiotsdk

  25. Para testar o pipeline de dados, execute o seguinte comando:
    python3 publish.py

Você pode ver a carga útil na captura de tela a seguir.

Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Por fim, os dados são entregues ao bucket S3 especificado na estrutura de prefixo.

Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Os dados dos arquivos são os seguintes:

  • {"TIMESTAMP":"2022-03-20 00:00","LOCATION_ID":"B-101","CO":2.6,"SO2":62,"NO2":57}
  • {"TIMESTAMP":"2022-03-20 00:05","LOCATION_ID":"B-101","CO":3.9,"SO2":60,"NO2":73}

Os carimbos de data/hora mostram que cada arquivo contém dados para intervalos de 5 minutos.

Com o mínimo de código, agora ingerimos os dados do sensor, criamos um fluxo de entrada a partir dos dados ingeridos e armazenamos os dados em um bucket do S3 com base nos requisitos do Lookout for Metrics.

Nas seções a seguir, analisamos mais detalhadamente as construções no Lookout for Metrics e como é fácil configurar esses conceitos usando o console Lookout for Metrics.

Criar um detector

Um detector é um recurso Lookout for Metrics que monitora um conjunto de dados e identifica anomalias em uma frequência predefinida. Os detectores usam ML para encontrar padrões nos dados e distinguir entre variações esperadas nos dados e anomalias legítimas. Para melhorar seu desempenho, um detector aprende mais sobre seus dados ao longo do tempo.

Em nosso caso de uso, o detector analisa os dados do sensor a cada 5 minutos.

Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Para criar o detector, navegue até o console Lookout for Metrics e escolha Criar detector. Forneça o nome e a descrição (opcional) do detector, junto com o intervalo de 5 minutos.

Seus dados são criptografados por padrão com uma chave que a AWS possui e gerencia para você. Você também pode configurar se deseja usar uma chave de criptografia diferente daquela que é usada por padrão.

Agora vamos apontar esse detector para os dados nos quais você deseja que ele execute a detecção de anomalias.

Criar um conjunto de dados

Um conjunto de dados informa ao detector onde encontrar seus dados e quais métricas analisar em busca de anomalias. Para criar um conjunto de dados, conclua as etapas a seguir:

  1. No console do Amazon Lookout for Metrics, navegue até seu detector.
  2. Escolha Adicionar um conjunto de dados.
    Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  3. Escolha Nome, insira um nome (por exemplo, air-quality-dataset).
  4. Escolha Fonte de dados, escolha sua fonte de dados (para esta postagem, Amazon S3).
    Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.
  5. Escolha Modo detector, selecione seu modo (para esta postagem, Contínuo).

Com o Amazon S3, você pode criar um detector em dois modos:

    • Backtest - Este modo é usado para encontrar anomalias em dados históricos. Ele precisa que todos os registros sejam consolidados em um único arquivo.
    • Contínuo – Este modo é usado para detectar anomalias em dados ao vivo. Usamos esse modo com nosso caso de uso porque queremos detectar anomalias à medida que recebemos dados de poluentes do ar do sensor de monitoramento do ar.
  1. Insira o caminho do S3 para a pasta S3 ativa e o padrão de caminho.
  2. Escolha Intervalo da fonte de dados, escolha Intervalos de 5 minutos.Se você tiver dados históricos dos quais o detector pode aprender padrões, você pode fornecê-los durante esta configuração. Espera-se que os dados estejam no mesmo formato que você usa para realizar um backtest. O fornecimento de dados históricos acelera o processo de treinamento do modelo de ML. Se isso não estiver disponível, o detector contínuo espera que dados suficientes estejam disponíveis antes de fazer inferências.
  3. Para este post, já temos dados históricos, então selecione Use dados históricos.
  4. Digite o caminho S3 de historical_data.json.
  5. Escolha Formato de arquivo, selecione Linhas JSON.
    Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Neste ponto, Lookout for Metrics acessa a fonte de dados e valida se pode analisar os dados. Se a análise for bem-sucedida, ela fornecerá uma mensagem "Validação bem-sucedida" e o levará para a próxima página, onde você configura medidas, dimensões e carimbos de data/hora.

Configurar medidas, dimensões e carimbos de data/hora

Medidas defina KPIs para os quais deseja rastrear anomalias. Você pode adicionar até cinco medidas por detector. Os campos usados ​​para criar KPIs a partir de seus dados de origem devem estar em formato numérico. Os KPIs podem ser definidos atualmente agregando registros dentro do intervalo de tempo fazendo uma SOMA ou MÉDIA.

Dimensões oferecem a capacidade de fatiar e dividir seus dados definindo categorias ou segmentos. Isso permite rastrear anomalias para um subconjunto de todo o conjunto de dados para o qual uma determinada medida é aplicável.

Em nosso caso de uso, adicionamos três medidas, que calculam o AVG dos objetos vistos no intervalo de 5 minutos, e possuem apenas uma dimensão, para a qual é medida a concentração de poluentes.

Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Cada registro no conjunto de dados deve ter um carimbo de data / hora. A configuração a seguir permite que você escolha o campo que representa o valor do carimbo de data / hora e também o formato do carimbo de data / hora.

Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

A próxima página permite que você revise todos os detalhes adicionados e, em seguida, salve e ative o detector.

O detector então começa a aprender o fluxo de dados na fonte de dados. Nesta fase, o status do detector muda para Initializing.

É importante observar a quantidade mínima de dados necessária antes que o Lookout for Metrics possa começar a detectar anomalias. Para obter mais informações sobre requisitos e limites, consulte Observação de cotas de métricas.

Com configuração mínima, você criou seu detector, apontou-o para um conjunto de dados e definiu as métricas nas quais deseja que o Lookout for Metrics encontre anomalias.

Visualizar anomalias

Lookout for Metrics fornece uma rica experiência de interface de usuário para usuários que desejam usar o Console de gerenciamento da AWS para analisar as anomalias detectadas. Ele também fornece a capacidade de consultar as anomalias por meio de APIs.

Vejamos um exemplo de anomalia detectada em nosso caso de uso de dados de qualidade do ar. A captura de tela a seguir mostra uma anomalia detectada na concentração de CO no ar na hora e data designadas com uma pontuação de gravidade de 93. Ela também mostra a contribuição percentual da dimensão para a anomalia. Nesse caso, a contribuição de 100% vem da dimensão do ID do local B-101.

Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Criar alertas

O Lookout for Metrics permite enviar alertas usando uma variedade de canais. Você pode configurar o limite de pontuação de gravidade da anomalia no qual os alertas devem ser acionados.

Em nosso caso de uso, configuramos alertas para serem enviados a um Serviço de notificação simples da Amazon (Amazon SNS), que por sua vez envia um SMS. As capturas de tela a seguir mostram os detalhes de configuração.

Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Você também pode usar um alerta para acionar automações usando AWS Lambda funções para conduzir operações orientadas por API no AWS IoT Core.

Conclusão

Nesta postagem, mostramos como é fácil usar o Lookout for Metrics e o Kinesis Data Firehose para remover o trabalho pesado indiferenciado envolvido no gerenciamento do ciclo de vida completo da criação de aplicativos de detecção de anomalias baseados em ML. Essa solução pode ajudá-lo a acelerar sua capacidade de encontrar anomalias nas principais métricas de negócios e permitir que você concentre seus esforços no crescimento e na melhoria de seus negócios.

Nós o encorajamos a aprender mais visitando o Guia do desenvolvedor do Amazon Lookout for Metrics e experimente a solução de ponta a ponta habilitada por esses serviços com um conjunto de dados relevante para seus KPIs de negócios.


Sobre o autor

Crie um detector de anomalias de qualidade do ar usando Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Dhiraj Thakur é arquiteto de soluções da Amazon Web Services. Ele trabalha com clientes e parceiros da AWS para fornecer orientação sobre adoção, migração e estratégia da nuvem corporativa. Ele é apaixonado por tecnologia e gosta de construir e experimentar no espaço de análise e IA/ML.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS