Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics

I dag er luftforurensning et kjent miljøproblem som skaper alvorlige luftveis- og hjertesykdommer, som utgjør alvorlige helsetrusler. Sur nedbør, utarming av ozonlaget og global oppvarming er også negative konsekvenser av luftforurensning. Det er behov for intelligent overvåking og automatisering for å forhindre alvorlige helseproblemer og i ekstreme tilfeller livstruende situasjoner. Luftkvaliteten måles ved å bruke konsentrasjonen av forurensninger i luften. Det er avgjørende å identifisere symptomer tidlig og kontrollere forurensningsnivået før det er farlig. Prosessen med å identifisere luftkvaliteten og anomalien i vekten av forurensninger, og raskt diagnostisere årsaken, er vanskelig, kostbar og utsatt for feil.

Prosessen med å bruke AI og maskinlæringsbaserte løsninger (ML) for å finne dataavvik innebærer mye kompleksitet i å innta, kuratere og forberede data i riktig format og deretter optimalisere og opprettholde effektiviteten til disse ML-modellene over lange perioder med tid. Dette har vært en av barrierene for raskt å implementere og skalere innføringen av ML-funksjoner.

Dette innlegget viser deg hvordan du bruker en integrert løsning med Amazon Lookout for metrics og Amazon Kinesis Data Firehose å bryte disse barrierene ved å raskt og enkelt innta strømmedata, og deretter oppdage uregelmessigheter i nøkkelytelsesindikatorene du er interessert i.

Lookout for Metrics oppdager og diagnostiserer automatisk anomalier (avvik fra normen) i forretnings- og driftsdata. Det er en fullstendig administrert ML-tjeneste som bruker spesialiserte ML-modeller for å oppdage uregelmessigheter basert på egenskapene til dataene dine. For eksempel er trender og sesongvariasjoner to kjennetegn ved tidsserieberegninger der terskelbasert anomalideteksjon ikke fungerer. Trender er kontinuerlige variasjoner (økninger eller reduksjoner) i en beregnings verdi. På den annen side er sesongvariasjoner periodiske mønstre som oppstår i et system, som vanligvis stiger over en grunnlinje og deretter avtar igjen. Du trenger ikke ML-erfaring for å bruke Lookout for Metrics.

Vi demonstrerer et vanlig overvåkingsscenario for luftkvalitet, der vi oppdager anomalier i forurensningskonsentrasjonen i luften. Mot slutten av dette innlegget vil du lære hvordan du bruker disse administrerte tjenestene fra AWS for å forhindre helseproblemer og global oppvarming. Du kan bruke denne løsningen på andre brukstilfeller for bedre miljøstyring, for eksempel å oppdage uregelmessigheter i vannkvalitet, landkvalitet og strømforbruksmønstre, for å nevne noen.

Løsningsoversikt

Arkitekturen består av tre funksjonelle blokker:

  • Trådløse sensorer plassert på strategiske steder for å registrere konsentrasjonsnivået av karbonmonoksid (CO), svoveldioksid (SO2) og nitrogendioksid (NO2) i luften
  • Streaming av datainntak og lagring
  • Avviksdeteksjon og varsling

Løsningen gir en helautomatisert datavei fra sensorene hele veien til et varsel sendes til brukeren. Du kan også samhandle med løsningen ved å bruke Lookout for Metrics UI for å analysere de identifiserte uregelmessighetene.

Følgende diagram illustrerer løsningsarkitekturen.

Forutsetninger

Du trenger følgende forutsetninger før du kan fortsette med løsningen. For dette innlegget bruker vi us-east-1-regionen.

  1. Last ned Python-skriptet (publisere.py) og datafil fra GitHub repo.
  2. Åpne live_data.csv fil i ditt foretrukne redigeringsprogram og bytt ut datoene til dagens og morgendagens dato. For eksempel, hvis dagens dato er 8. juli 2022, bytt ut 2022-03-25 med 2022-07-08. Hold formatet det samme. Dette er nødvendig for å simulere sensordata for gjeldende dato ved å bruke IoT-simulatorskriptet.
  3. Lag en Amazon enkel lagringstjeneste (Amazon S3) bøtte og en mappe kalt air-quality. Lag en undermappe inni air-quality navngitt historical. For instruksjoner, se Opprette en mappe.
  4. Last opp live_data.csv fil i rot S3 bøtte og historical_data.json i den historiske mappen.
  5. Lag en AWS Cloud9 utviklingsmiljø, som vi bruker til å kjøre Python-simulatorprogrammet for å lage sensordata for denne løsningen.

Innta og transformere data ved hjelp av AWS IoT Core og Kinesis Data Firehose

Vi bruker en Kinesis Data Firehose-leveringsstrøm for å innta strømmedataene fra AWS IoT-kjerne og lever den til Amazon S3. Fullfør følgende trinn:

  1. På Kinesis Data Firehose-konsollen velger du Opprett leveringsstrøm.
  2. Til kilde, velg Direkte PUT.
  3. Til Destinasjon, velg Amazon S3.
  4. Til Navn på leveringsstrøm, skriv inn et navn for leveringsstrømmen.
    Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  5. Til S3 bøtte, skriv inn bøtten du opprettet som en forutsetning.
  6. Angi verdier for S3 bøtteprefiks og S3 bøttefeil utgangsprefiks.Et av hovedpunktene å merke seg er konfigurasjonen av det tilpassede prefikset som er konfigurert for Amazon S3-destinasjonen. Dette prefiksmønsteret sørger for at dataene opprettes i S3-bøtten i henhold til prefikshierarkiet som forventes av Lookout for Metrics. (Mer om dette senere i dette innlegget.) For mer informasjon om egendefinerte prefikser, se Egendefinerte prefikser for Amazon S3-objekter.
    Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  7. Til Bufferintervall, Tast inn 60.
    Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  8. Velg Opprett eller oppdater IAM-rolle.
  9. Velg Opprett leveringsstrøm.
    Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
    Nå konfigurerer vi AWS IoT Core og kjører luftkvalitetssimulatorprogrammet.
  10. På AWS IoT Core-konsollen, lage en AWS IoT-policy kalt admin.
  11. I navigasjonsruten under Meldingsruting, velg Regler.
  12. Velg Lag regel.
  13. Lag en regel med Kinesis Data Brannslange (brannslange) handling.
    Dette sender data fra en MQTT-melding til en Kinesis Data Firehose-leveringsstrøm.
  14. Velg Opprett.
    Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  15. Lag en AWS IoT-ting med navn Test-Thing og legg ved policyen du opprettet.
  16. Last ned sertifikatet, den offentlige nøkkelen, den private nøkkelen, enhetssertifikatet og rot-CA for AWS IoT Core.
  17. Lagre hver av de nedlastede filene til certificates underkatalog som du opprettet tidligere.
    Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  18. Last opp publish.py til iot-test-publish mappe.
  19. På AWS IoT Core-konsollen, i navigasjonsruten, velg innstillinger.
  20. Under Egendefinert endepunkt, kopier endepunktet.
    Denne AWS IoT Core-tilpassede endepunkt-URLen er personlig for din AWS-konto og region.
  21. Erstatt customEndpointUrl med din egendefinerte AWS IoT Core-endepunkt-URL, sertifikater med navnet på sertifikatet og Your_S3_Bucket_Name med S3-bøttenavnet ditt.
    Deretter installerer du pip og AWS IoT SDK for Python.
  22. Logg på AWS Cloud9 og lag en arbeidskatalog i utviklingsmiljøet ditt. For eksempel: aq-iot-publish.
  23. Opprett en underkatalog for sertifikater i den nye arbeidskatalogen din. For eksempel: certificates.
  24. Installer AWS IoT SDK for Python v2 ved å kjøre følgende fra kommandolinjen.
    pip install awsiotsdk

  25. For å teste datapipeline, kjør følgende kommando:
    python3 publish.py

Du kan se nyttelasten i følgende skjermbilde.

Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Til slutt leveres dataene til den angitte S3-bøtten i prefiksstrukturen.

Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Dataene til filene er som følger:

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

Tidsstemplene viser at hver fil inneholder data i 5-minutters intervaller.

Med minimal kode har vi nå inntatt sensordataene, opprettet en inputstrøm fra de inntatte dataene og lagret dataene i en S3-bøtte basert på kravene til Lookout for Metrics.

I de følgende delene tar vi en dypere titt på konstruksjonene i Lookout for Metrics, og hvor enkelt det er å konfigurere disse konseptene ved å bruke Lookout for Metrics-konsollen.

Lag en detektor

En detektor er en Lookout for Metrics-ressurs som overvåker et datasett og identifiserer anomalier med en forhåndsdefinert frekvens. Detektorer bruker ML for å finne mønstre i data og skille mellom forventede variasjoner i data og legitime anomalier. For å forbedre ytelsen lærer en detektor mer om dataene dine over tid.

I vårt bruksområde analyserer detektoren data fra sensoren hvert 5. minutt.

Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

For å lage detektoren, naviger til Lookout for Metrics-konsollen og velg Lag detektor. Oppgi navn og beskrivelse (valgfritt) for detektoren, sammen med intervallet på 5 minutter.

Dataene dine er kryptert som standard med en nøkkel som AWS eier og administrerer for deg. Du kan også konfigurere om du vil bruke en annen krypteringsnøkkel enn den som brukes som standard.

La oss nå peke denne detektoren til dataene du vil at den skal kjøre anomalideteksjon på.

Lag et datasett

Et datasett forteller detektoren hvor den skal finne dataene dine og hvilke beregninger som skal analyseres for uregelmessigheter. For å opprette et datasett, fullfør følgende trinn:

  1. Naviger til detektoren din på Amazon Lookout for Metrics-konsollen.
  2. Velg Legg til et datasett.
    Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  3. Til Navn, skriv inn et navn (for eksempel, air-quality-dataset).
  4. Til Datakilde, velg datakilden din (for dette innlegget, Amazon S3).
    Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.
  5. Til Detektormodus, velg modusen din (for dette innlegget, Kontinuerlig).

Med Amazon S3 kan du lage en detektor i to moduser:

    • Backtest – Denne modusen brukes til å finne anomalier i historiske data. Den trenger alle poster for å bli konsolidert i en enkelt fil.
    • Kontinuerlig – Denne modusen brukes til å oppdage uregelmessigheter i live-data. Vi bruker denne modusen med vår brukstilfelle fordi vi ønsker å oppdage uregelmessigheter når vi mottar luftforurensningsdata fra luftovervåkingssensoren.
  1. Skriv inn S3-banen for den levende S3-mappen og banemønsteret.
  2. Til Datakildeintervall, velg 5 minutts intervaller.Hvis du har historiske data som detektoren kan lære mønstre fra, kan du gi dem under denne konfigurasjonen. Dataene forventes å være i samme format som du bruker til å utføre en backtest. Å gi historiske data øker hastigheten på opplæringsprosessen for ML-modellen. Hvis dette ikke er tilgjengelig, venter den kontinuerlige detektoren på at tilstrekkelig data er tilgjengelig før den trekker konklusjoner.
  3. For dette innlegget har vi allerede historiske data, så velg Bruk historiske data.
  4. Gå inn på S3-banen til historical_data.json.
  5. Til filformat, plukke ut JSON-linjer.
    Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

På dette tidspunktet får Lookout for Metrics tilgang til datakilden og validerer om den kan analysere dataene. Hvis parsingen er vellykket, gir den deg en "Validering vellykket"-melding og tar deg til neste side, der du konfigurerer mål, dimensjoner og tidsstempler.

Konfigurer mål, dimensjoner og tidsstempler

målinger definere KPIer som du vil spore avvik for. Du kan legge til opptil fem mål per detektor. Feltene som brukes til å lage KPIer fra kildedataene dine, må være av numerisk format. KPIene kan for øyeblikket defineres ved å aggregere poster innenfor tidsintervallet ved å gjøre en SUM eller GJENNOMSNITT.

Dimensjoner gir deg muligheten til å dele opp dataene dine ved å definere kategorier eller segmenter. Dette lar deg spore anomalier for et undersett av hele settet med data som et bestemt mål er aktuelt for.

I vårt brukstilfelle legger vi til tre mål, som beregner AVG for objektene sett i 5-minutters intervallet, og har kun én dimensjon, som forurensningskonsentrasjonen måles for.

Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Hver post i datasettet må ha et tidsstempel. Følgende konfigurasjon lar deg velge feltet som representerer tidsstempelverdien og også formatet til tidsstemplet.

Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Den neste siden lar deg se gjennom alle detaljene du har lagt til og deretter lagre og aktivere detektoren.

Detektoren begynner deretter å lære dataene som strømmer inn i datakilden. På dette stadiet endres statusen til detektoren til Initializing.

Det er viktig å merke seg minimumsmengden data som kreves før Lookout for Metrics kan begynne å oppdage uregelmessigheter. For mer informasjon om krav og grenser, se Se etter beregningskvoter.

Med minimal konfigurasjon har du opprettet detektoren din, rettet den mot et datasett og definert beregningene du vil at Lookout for Metrics skal finne anomalier i.

Visualiser anomalier

Lookout for Metrics gir en rik UI-opplevelse for brukere som ønsker å bruke AWS-administrasjonskonsoll å analysere avvikene som oppdages. Det gir også muligheten til å spørre etter uregelmessighetene via APIer.

La oss se på et eksempel på uregelmessigheter som er oppdaget fra vår brukssak for luftkvalitetsdata. Følgende skjermbilde viser en anomali oppdaget i CO-konsentrasjon i luften på angitt tid og dato med en alvorlighetsgrad på 93. Den viser også dimensjonens prosentvise bidrag til anomalien. I dette tilfellet kommer 100 % bidrag fra steds-ID B-101-dimensjonen.

Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Lag varsler

Lookout for Metrics lar deg sende varsler ved hjelp av en rekke kanaler. Du kan konfigurere terskelen for alvorlighetsgraden for uregelmessigheter der varslene må utløses.

I vårt brukstilfelle konfigurerer vi varsler som skal sendes til en Amazon enkel varslingstjeneste (Amazon SNS) kanal, som igjen sender en SMS. Følgende skjermbilder viser konfigurasjonsdetaljene.

Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Du kan også bruke et varsel for å utløse automatiseringer ved hjelp av AWS Lambda funksjoner for å drive API-drevne operasjoner på AWS IoT Core.

konklusjonen

I dette innlegget viste vi deg hvor enkelt å bruke Lookout for Metrics og Kinesis Data Firehose for å fjerne de udifferensierte tunge løftene som er involvert i å administrere ende-til-ende-livssyklusen til å bygge ML-drevne anomalideteksjonsapplikasjoner. Denne løsningen kan hjelpe deg å akselerere din evne til å finne uregelmessigheter i viktige forretningsberegninger og la deg fokusere innsatsen på å vokse og forbedre virksomheten din.

Vi oppfordrer deg til å lære mer ved å besøke Amazon Lookout for Metrics utviklerveiledning og prøv ut ende-til-ende-løsningen aktivert av disse tjenestene med et datasett som er relevant for bedriftens KPIer.


Om forfatteren

Bygg en luftkvalitetsavvikdetektor ved å bruke Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Dhiraj Thakur er en løsningsarkitekt med Amazon Web Services. Han jobber med AWS-kunder og partnere for å gi veiledning om cloud-adopsjon, migrasjon og strategi for enterprise. Han er lidenskapelig opptatt av teknologi og liker å bygge og eksperimentere i analytics og AI / ML-rommet.

Tidstempel:

Mer fra AWS maskinlæring