Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics

Idag är luftföroreningar en välbekant miljöfråga som skapar svåra andnings- och hjärtsjukdomar som utgör allvarliga hälsohot. Surt regn, utarmning av ozonskiktet och global uppvärmning är också negativa konsekvenser av luftföroreningar. Det finns ett behov av intelligent övervakning och automatisering för att förhindra allvarliga hälsoproblem och i extrema fall livshotande situationer. Luftkvaliteten mäts med hjälp av koncentrationen av föroreningar i luften. Att identifiera symtom tidigt och kontrollera föroreningsnivån innan det är farligt är avgörande. Processen att identifiera luftkvaliteten och anomalien i vikten av föroreningar, och snabbt diagnostisera grundorsaken, är svår, kostsam och felbenägen.

Processen att tillämpa AI och maskininlärning (ML)-baserade lösningar för att hitta dataavvikelser innebär mycket komplexitet i att inta, kurera och förbereda data i rätt format och sedan optimera och bibehålla effektiviteten hos dessa ML-modeller under långa perioder av tid. Detta har varit ett av hindren för att snabbt implementera och skala införandet av ML-kapacitet.

Det här inlägget visar hur du använder en integrerad lösning med Amazon Lookout för mätvärden och Amazon Kinesis Data Firehose att bryta dessa barriärer genom att snabbt och enkelt ta in strömmande data och därefter upptäcka anomalier i nyckelprestandaindikatorerna för ditt intresse.

Lookout for Metrics upptäcker och diagnostiserar automatiskt anomalier (avvikelser från normen) i affärs- och verksamhetsdata. Det är en helt hanterad ML-tjänst som använder specialiserade ML-modeller för att upptäcka avvikelser baserat på egenskaperna hos din data. Till exempel är trender och säsongsvariationer två kännetecken för tidsseriemätningar där tröskelbaserad anomalidetektering inte fungerar. Trender är kontinuerliga variationer (ökningar eller minskningar) i ett mätvärdes värde. Å andra sidan är säsongsvariationer periodiska mönster som förekommer i ett system, som vanligtvis stiger över en baslinje och sedan minskar igen. Du behöver ingen erfarenhet av ML för att använda Lookout for Metrics.

Vi visar ett vanligt scenario för övervakning av luftkvalitet, där vi upptäcker anomalier i föroreningskoncentrationen i luften. I slutet av det här inlägget kommer du att lära dig hur du använder dessa hanterade tjänster från AWS för att förhindra hälsoproblem och global uppvärmning. Du kan tillämpa den här lösningen på andra användningsfall för bättre miljöledning, som att upptäcka anomalier i vattenkvalitet, markkvalitet och strömförbrukningsmönster, för att nämna några.

Lösningsöversikt

Arkitekturen består av tre funktionella block:

  • Trådlösa sensorer placerade på strategiska platser för att känna av koncentrationsnivån av kolmonoxid (CO), svaveldioxid (SO2) och kvävedioxid (NO2) i luften
  • Strömmande dataintag och lagring
  • Avvikelsedetektering och avisering

Lösningen ger en helautomatiserad dataväg från sensorerna hela vägen till att ett meddelande sänds till användaren. Du kan också interagera med lösningen med hjälp av Lookout for Metrics UI för att analysera de identifierade anomalierna.

Följande diagram illustrerar vår lösningsarkitektur.

Förutsättningar

Du behöver följande förutsättningar innan du kan fortsätta med lösningen. För det här inlägget använder vi regionen us-east-1.

  1. Ladda ner Python-skriptet (publish.py) och datafil från GitHub repo.
  2. Öppna live_data.csv fil i din föredragna editor och byt ut datumen till dagens och morgondagens datum. Till exempel, om dagens datum är den 8 juli 2022, byt ut 2022-03-25 med 2022-07-08. Håll formatet detsamma. Detta krävs för att simulera sensordata för det aktuella datumet med hjälp av IoT-simulatorskriptet.
  3. Skapa ett Amazon enkel lagringstjänst (Amazon S3) hink och en mapp med namnet air-quality. Skapa en undermapp inuti air-quality som heter historical. För instruktioner, se Skapa en mapp.
  4. Ladda upp live_data.csv fil i rot S3-hinken och historical_data.json i den historiska mappen.
  5. Skapa ett AWS Cloud9 utvecklingsmiljö, som vi använder för att köra Python-simulatorprogrammet för att skapa sensordata för denna lösning.

Ta in och transformera data med AWS IoT Core och Kinesis Data Firehose

Vi använder en Kinesis Data Firehose-leveransström för att få in strömmande data från AWS IoT Core och leverera den till Amazon S3. Slutför följande steg:

  1. Välj Kinesis Data Firehose-konsolen Skapa leveransström.
  2. För Källaväljer Direkt PUT.
  3. För Destinationväljer Amazon S3.
  4. För Namn på leveransströmanger du ett namn för din leveransström.
    Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  5. För S3 hink, ange den hink du skapade som en förutsättning.
  6. Ange värden för S3 hinkprefix och S3 bucket error output prefix.En av de viktigaste punkterna att notera är konfigurationen av det anpassade prefixet som är konfigurerat för Amazon S3-destinationen. Detta prefixmönster ser till att data skapas i S3-bucket enligt prefixhierarkin som förväntas av Lookout for Metrics. (Mer om detta senare i det här inlägget.) För mer information om anpassade prefix, se Anpassade prefix för Amazon S3-objekt.
    Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  7. För Buffertintervall, stiga på 60.
    Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  8. Välja Skapa eller uppdatera IAM-rollen.
  9. Välja Skapa leveransström.
    Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
    Nu konfigurerar vi AWS IoT Core och kör luftkvalitetssimulatorprogrammet.
  10. På AWS IoT Core-konsolen, skapa en AWS IoT-policy kallas admin.
  11. I navigeringsfönstret under Meddelandedirigeringväljer regler.
  12. Välja Skapa regel.
  13. Skapa en regel med Kinesis Data Brandslang (brandslang) åtgärd.
    Detta skickar data från ett MQTT-meddelande till en Kinesis Data Firehose-leveransström.
  14. Välja Skapa.
    Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  15. Skapa en AWS IoT-sak med namn Test-Thing och bifoga policyn du skapade.
  16. Ladda ner certifikatet, den offentliga nyckeln, den privata nyckeln, enhetscertifikatet och rot-CA för AWS IoT Core.
  17. Spara var och en av de nedladdade filerna till certificates underkatalog som du skapade tidigare.
    Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  18. Ladda upp publish.py till iot-test-publish mapp.
  19. På AWS IoT Core-konsolen, i navigeringsfönstret, välj Inställningar.
  20. Enligt Anpassad slutpunkt, kopiera slutpunkten.
    Denna AWS IoT Core anpassade slutpunkts-URL är personlig för ditt AWS-konto och din region.
  21. ersätta customEndpointUrl med din AWS IoT Core anpassade slutpunkts-URL, certifikat med namnet på certifikatet och Your_S3_Bucket_Name med ditt S3-hinknamn.
    Därefter installerar du pip och AWS IoT SDK för Python.
  22. Logga in på AWS Cloud9 och skapa en arbetskatalog i din utvecklingsmiljö. Till exempel: aq-iot-publish.
  23. Skapa en underkatalog för certifikat i din nya arbetskatalog. Till exempel: certificates.
  24. Installera AWS IoT SDK för Python v2 genom att köra följande från kommandoraden.
    pip install awsiotsdk

  25. För att testa datapipeline, kör följande kommando:
    python3 publish.py

Du kan se nyttolasten i följande skärmdump.

Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Slutligen levereras data till den angivna S3-hinken i prefixstrukturen.

Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Data för filerna är som följer:

  • {"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}

Tidsstämplarna visar att varje fil innehåller data i 5-minutersintervaller.

Med minimal kod har vi nu matat in sensordata, skapat en ingångsström från intagen data och lagrat data i en S3-bucket baserat på kraven för Lookout for Metrics.

I följande avsnitt tar vi en djupare titt på konstruktionerna inom Lookout for Metrics, och hur lätt det är att konfigurera dessa koncept med Lookout for Metrics-konsolen.

Skapa en detektor

En detektor är en Lookout for Metrics-resurs som övervakar en datauppsättning och identifierar anomalier med en fördefinierad frekvens. Detektorer använder ML för att hitta mönster i data och skilja mellan förväntade variationer i data och legitima anomalier. För att förbättra sin prestanda lär sig en detektor mer om dina data över tid.

I vårt användningsfall analyserar detektorn data från sensorn var 5:e minut.

Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

För att skapa detektorn, navigera till Lookout for Metrics-konsolen och välj Skapa detektor. Ange namn och beskrivning (valfritt) för detektorn, tillsammans med intervallet på 5 minuter.

Din data krypteras som standard med en nyckel som AWS äger och hanterar åt dig. Du kan också konfigurera om du vill använda en annan krypteringsnyckel än den som används som standard.

Låt oss nu peka den här detektorn till de data som du vill att den ska köra anomalidetektering på.

Skapa en datauppsättning

En datauppsättning talar om för detektorn var den ska hitta dina data och vilka mätvärden som ska analyseras för avvikelser. Utför följande steg för att skapa en datauppsättning:

  1. På Amazon Lookout for Metrics-konsolen navigerar du till din detektor.
  2. Välja Lägg till en dataset.
    Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  3. För Namn , ange ett namn (t.ex. air-quality-dataset).
  4. För Datakälla, välj din datakälla (för detta inlägg, Amazon S3).
    Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  5. För Detektormod, välj ditt läge (för det här inlägget, Kontinuerlig).

Med Amazon S3 kan du skapa en detektor i två lägen:

    • Backtest – Det här läget används för att hitta anomalier i historiska data. Den behöver alla poster för att konsolideras i en enda fil.
    • Kontinuerlig – Det här läget används för att upptäcka anomalier i livedata. Vi använder det här läget med vårt användningsfall eftersom vi vill upptäcka anomalier när vi tar emot luftföroreningsdata från luftövervakningssensorn.
  1. Ange S3-sökvägen för den levande S3-mappen och sökvägsmönstret.
  2. För Datakällintervallväljer 5 minuters intervall.Om du har historiska data från vilka detektorn kan lära sig mönster, kan du tillhandahålla det under denna konfiguration. Data förväntas vara i samma format som du använder för att utföra ett backtest. Att tillhandahålla historiska data påskyndar ML-modellutbildningsprocessen. Om detta inte är tillgängligt, väntar den kontinuerliga detektorn på att tillräckligt med data finns tillgänglig innan den drar slutsatser.
  3. För det här inlägget har vi redan historiska data, så välj Använd historiska data.
  4. Ange S3-vägen för historical_data.json.
  5. För filformat, Välj JSON-linjer.
    Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Vid det här laget kommer Lookout for Metrics åt datakällan och validerar om den kan analysera data. Om analysen lyckas, ger det dig ett meddelande om "Validering lyckad" och tar dig till nästa sida, där du konfigurerar mått, dimensioner och tidsstämplar.

Konfigurera mått, dimensioner och tidsstämplar

åtgärder definiera KPI:er som du vill spåra avvikelser för. Du kan lägga till upp till fem mätningar per detektor. Fälten som används för att skapa KPI:er från din källdata måste vara av numeriskt format. KPI:erna kan för närvarande definieras genom att aggregera poster inom tidsintervallet genom att göra en SUMMA eller MEDEL.

Mått ger dig möjligheten att dela upp din data genom att definiera kategorier eller segment. Detta gör att du kan spåra anomalier för en delmängd av hela uppsättningen data för vilken en viss åtgärd är tillämplig.

I vårt användningsfall lägger vi till tre mått, som beräknar AVG för objekten som ses i 5-minutersintervallet, och har bara en dimension, för vilken föroreningskoncentrationen mäts.

Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Varje post i datamängden måste ha en tidsstämpel. Följande konfiguration låter dig välja fältet som representerar tidsstämpelvärdet och även formatet för tidsstämpeln.

Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

På nästa sida kan du granska alla detaljer du lagt till och sedan spara och aktivera detektorn.

Detektorn börjar sedan lära sig data som strömmar in i datakällan. I detta skede ändras detektorns status till Initializing.

Det är viktigt att notera den minsta mängd data som krävs innan Lookout for Metrics kan börja upptäcka avvikelser. För mer information om krav och gränser, se Håll utkik efter Metrics-kvoter.

Med minimal konfiguration har du skapat din detektor, riktat den mot en datauppsättning och definierat de mätvärden som du vill att Lookout for Metrics ska hitta avvikelser i.

Visualisera anomalier

Lookout for Metrics ger en rik gränssnittsupplevelse för användare som vill använda AWS Management Console för att analysera de anomalier som upptäcks. Det ger också möjlighet att fråga efter anomalierna via API:er.

Låt oss titta på ett exempel på anomali som upptäckts från vårt användningsfall för luftkvalitetsdata. Följande skärmdump visar en anomali som upptäckts i CO-koncentrationen i luften vid den angivna tidpunkten och datumet med en allvarlighetsgrad på 93. Den visar också det procentuella bidraget från dimensionen till anomali. I det här fallet kommer 100 % bidrag från dimensionen plats-ID B-101.

Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Skapa varningar

Lookout for Metrics låter dig skicka varningar med en mängd olika kanaler. Du kan konfigurera tröskelvärdet för anomaliens allvarlighetsgrad vid vilken varningarna måste utlösas.

I vårt användningsfall konfigurerar vi varningar för att skickas till en Amazon enkel meddelandetjänst (Amazon SNS) kanal, som i sin tur skickar ett SMS. Följande skärmdumpar visar konfigurationsdetaljerna.

Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Du kan också använda en varning för att utlösa automatiseringar med hjälp av AWS Lambda funktioner för att driva API-drivna operationer på AWS IoT Core.

Slutsats

I det här inlägget visade vi hur lätt det är att använda Lookout for Metrics och Kinesis Data Firehose för att ta bort de odifferentierade tunga lyften som är involverade i hanteringen av hela livscykeln för att bygga ML-drivna anomalidetekteringsapplikationer. Denna lösning kan hjälpa dig att påskynda din förmåga att hitta avvikelser i viktiga affärsmått och låta dig fokusera dina ansträngningar på att växa och förbättra din verksamhet.

Vi uppmuntrar dig att lära dig mer genom att besöka Amazon Lookout for Metrics utvecklarguide och prova end-to-end-lösningen som möjliggörs av dessa tjänster med en datauppsättning som är relevant för ditt företags KPI:er.


Om författaren

Bygg en detektor för luftkvalitetsavvikelser med Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Dhiraj Thakur är en lösningsarkitekt med Amazon Web Services. Han samarbetar med AWS-kunder och -partners för att ge vägledning om införande, migrering och strategi för företagsmoln. Han brinner för teknik och tycker om att bygga och experimentera inom analys- och AI/ML-området.

Tidsstämpel:

Mer från AWS maskininlärning