Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics

Tegenwoordig is luchtvervuiling een bekend milieuprobleem dat ernstige aandoeningen van de luchtwegen en het hart veroorzaakt, die een ernstige bedreiging vormen voor de gezondheid. Zure regen, aantasting van de ozonlaag en opwarming van de aarde zijn ook nadelige gevolgen van luchtvervuiling. Er is behoefte aan intelligente monitoring en automatisering om ernstige gezondheidsproblemen en in extreme gevallen levensbedreigende situaties te voorkomen. De luchtkwaliteit wordt gemeten aan de hand van de concentratie van vervuilende stoffen in de lucht. Het is van cruciaal belang om vroegtijdig symptomen te identificeren en het niveau van verontreinigende stoffen onder controle te houden voordat het gevaarlijk wordt. Het proces van het identificeren van de luchtkwaliteit en de anomalie in het gewicht van verontreinigende stoffen, en het snel diagnosticeren van de oorzaak, is moeilijk, kostbaar en foutgevoelig.

Het proces van het toepassen van op AI en machine learning (ML) gebaseerde oplossingen om gegevensafwijkingen te vinden, brengt veel complexiteit met zich mee bij het opnemen, beheren en voorbereiden van gegevens in het juiste formaat en het vervolgens optimaliseren en behouden van de effectiviteit van deze ML-modellen gedurende lange perioden van tijd. Dit was een van de belemmeringen voor het snel implementeren en opschalen van de acceptatie van ML-mogelijkheden.

Dit bericht laat zien hoe u een geรฏntegreerde oplossing kunt gebruiken met Amazon Lookout voor statistieken en Amazon Kinesis-gegevens Firehose om deze barriรจres te doorbreken door snel en eenvoudig streaminggegevens op te nemen en vervolgens afwijkingen te detecteren in de belangrijkste prestatie-indicatoren van uw interesse.

Lookout for Metrics detecteert en diagnosticeert automatisch afwijkingen (uitbijters van de norm) in zakelijke en operationele gegevens. Het is een volledig beheerde ML-service die gespecialiseerde ML-modellen gebruikt om afwijkingen te detecteren op basis van de kenmerken van uw gegevens. Trends en seizoensgebondenheid zijn bijvoorbeeld twee kenmerken van tijdreeksstatistieken waarin detectie van anomalie op basis van drempels niet werkt. Trends zijn continue variaties (stijgingen of dalingen) in de waarde van een metriek. Aan de andere kant zijn seizoensinvloeden periodieke patronen die in een systeem voorkomen, meestal boven een basislijn uitstijgen en vervolgens weer afnemen. U hebt geen ervaring met ML nodig om Lookout for Metrics te gebruiken.

We demonstreren een gemeenschappelijk scenario voor het monitoren van de luchtkwaliteit, waarin we afwijkingen detecteren in de concentratie van verontreinigende stoffen in de lucht. Aan het einde van dit bericht leert u hoe u deze beheerde services van AWS kunt gebruiken om gezondheidsproblemen en het broeikaseffect te voorkomen. U kunt deze oplossing toepassen op andere gebruiksscenario's voor beter milieubeheer, zoals het detecteren van afwijkingen in waterkwaliteit, landkwaliteit en stroomverbruikpatronen, om er maar een paar te noemen.

Overzicht oplossingen

De architectuur bestaat uit drie functionele blokken:

  • Draadloze sensoren geplaatst op strategische locaties om het concentratieniveau van koolmonoxide (CO), zwaveldioxide (SO2) en stikstofdioxide (NO2) in de lucht te detecteren
  • Opname en opslag van streaminggegevens
  • Detectie en melding van afwijkingen

De oplossing biedt een volledig geautomatiseerd gegevenspad van de sensoren tot aan een melding aan de gebruiker. U kunt ook communiceren met de oplossing met behulp van de gebruikersinterface van Lookout for Metrics om de geรฏdentificeerde afwijkingen te analyseren.

Het volgende diagram illustreert onze oplossingsarchitectuur.

Voorwaarden

U hebt de volgende vereisten nodig voordat u verder kunt gaan met de oplossing. Voor dit bericht gebruiken we de us-east-1-regio.

  1. Download het Python-script (publiceren.py) en gegevensbestand van de GitHub repo.
  2. Open de live_data.csv bestand in uw favoriete editor en vervang de datums door de datum van vandaag en morgen. Als de datum van vandaag bijvoorbeeld 8 juli 2022 is, vervang dan 2022-03-25 Met 2022-07-08. Houd het formaat hetzelfde. Dit is nodig om sensorgegevens voor de huidige datum te simuleren met behulp van het IoT-simulatorscript.
  3. Maak een Amazon eenvoudige opslagservice (Amazon S3) bucket en een map met de naam air-quality. Maak een submap binnen air-quality genoemd historical. Voor instructies, zie Een map aanmaken.
  4. Upload de live_data.csv bestand in de root S3-bucket en historical_data.json in de historische map.
  5. Maak een AWS-Cloud9 ontwikkelomgeving, die we gebruiken om het Python-simulatorprogramma uit te voeren om sensorgegevens voor deze oplossing te creรซren.

Gegevens opnemen en transformeren met AWS IoT Core en Kinesis Data Firehose

We gebruiken een Kinesis Data Firehose-leveringsstroom om de streaminggegevens op te nemen van: AWS IoT-kern en bezorg het aan Amazon S3. Voer de volgende stappen uit:

  1. Kies op de Kinesis Data Firehose-console Maak een leveringsstroom.
  2. Voor bron, kiezen Directe PUT.
  3. Voor Bestemming, kiezen Amazon S3.
  4. Voor Naam van bezorgstroom, voer een naam in voor uw bezorgstroom.
    Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  5. Voor S3 emmer, voer dan als voorwaarde de bucket in die u hebt gemaakt.
  6. Voer waarden in voor S3-bucketvoorvoegsel en Uitvoervoorvoegsel S3-bucketfoutEen van de belangrijkste aandachtspunten is de configuratie van het aangepaste voorvoegsel dat is geconfigureerd voor de Amazon S3-bestemming. Dit prefixpatroon zorgt ervoor dat de gegevens in de S3-bucket worden gemaakt volgens de prefixhiรซrarchie die wordt verwacht door Lookout for Metrics. (Meer hierover verderop in dit bericht.) Voor meer informatie over aangepaste voorvoegsels, zie Aangepaste voorvoegsels voor Amazon S3-objecten.
    Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  7. Voor Bufferinterval, ga naar binnen 60.
    Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  8. Kies IAM-rol maken of bijwerken.
  9. Kies Maak een leveringsstroom.
    Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
    Nu configureren we AWS IoT Core en voeren we het luchtkwaliteitsimulatorprogramma uit.
  10. Op de AWS IoT Core-console, een AWS IoT-beleid maken beheerder genoemd.
  11. In het navigatievenster onder Bericht routering, kiezen Reglement.
  12. Kies Creรซer regel.
  13. Maak een regel met de Kinesis Data Firehose (firehose) actie.
    Dit verzendt gegevens van een MQTT-bericht naar een Kinesis Data Firehose-leveringsstroom.
  14. Kies creรซren.
    Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  15. Maak een AWS IoT-ding met naam Test-Thing en voeg het beleid toe dat u hebt gemaakt.
  16. Download het certificaat, de openbare sleutel, de persoonlijke sleutel, het apparaatcertificaat en de root-CA voor AWS IoT Core.
  17. Sla elk van de gedownloade bestanden op in de certificates submap die u eerder hebt gemaakt.
    Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  18. Upload publish.py naar de iot-test-publish map.
  19. Kies op de AWS IoT Core-console in het navigatievenster: Instellingen.
  20. Onder Aangepast eindpunt, kopieer het eindpunt.
    Deze aangepaste AWS IoT Core-eindpunt-URL is persoonlijk voor uw AWS-account en regio.
  21. vervangen customEndpointUrl met uw AWS IoT Core aangepaste eindpunt-URL, certificaten met de naam van het certificaat, en Your_S3_Bucket_Name met uw S3-bucketnaam.
    Vervolgens installeer je pip en de AWS IoT SDK voor Python.
  22. Log in op AWS Cloud9 en maak een werkmap aan in uw ontwikkelomgeving. Bijvoorbeeld: aq-iot-publish.
  23. Maak een submap voor certificaten in uw nieuwe werkmap. Bijvoorbeeld: certificates.
  24. Installeer de AWS IoT SDK voor Python v2 door het volgende uit te voeren vanaf de opdrachtregel.
    pip install awsiotsdk

  25. Voer de volgende opdracht uit om de gegevenspijplijn te testen:
    python3 publish.py

U kunt de payload zien in de volgende schermafbeelding.

Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Ten slotte worden de gegevens geleverd aan de gespecificeerde S3-bucket in de prefixstructuur.

Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

De gegevens van de bestanden zijn als volgt:

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

De tijdstempels laten zien dat elk bestand gegevens bevat voor intervallen van 5 minuten.

Met minimale code hebben we nu de sensorgegevens opgenomen, een invoerstroom gemaakt van de opgenomen gegevens en de gegevens opgeslagen in een S3-bucket op basis van de vereisten voor Lookout for Metrics.

In de volgende secties gaan we dieper in op de constructies binnen Lookout for Metrics en hoe eenvoudig het is om deze concepten te configureren met behulp van de Lookout for Metrics-console.

Een detector maken

Een detector is een Lookout for Metrics-bron die een dataset bewaakt en afwijkingen identificeert met een vooraf gedefinieerde frequentie. Detectors gebruiken ML om patronen in gegevens te vinden en onderscheid te maken tussen verwachte variaties in gegevens en legitieme afwijkingen. Om de prestaties te verbeteren, leert een detector na verloop van tijd meer over uw gegevens.

In onze use case analyseert de detector elke 5 minuten gegevens van de sensor.

Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Om de detector te maken, navigeert u naar de Lookout for Metrics-console en kiest u: Maak een detector. Geef de naam en beschrijving (optioneel) voor de detector op, samen met het interval van 5 minuten.

Uw gegevens worden standaard versleuteld met een sleutel die AWS voor u bezit en beheert. U kunt ook configureren of u een andere coderingssleutel wilt gebruiken dan die standaard wordt gebruikt.

Laten we deze detector nu richten op de gegevens waarop u de anomaliedetectie wilt uitvoeren.

Een gegevensset maken

Een dataset vertelt de detector waar uw gegevens te vinden zijn en welke meetwaarden moeten worden geanalyseerd op afwijkingen. Voer de volgende stappen uit om een โ€‹โ€‹dataset te maken:

  1. Navigeer op de Amazon Lookout for Metrics-console naar uw detector.
  2. Kies Voeg een dataset toe.
    Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  3. Voor Naam, voer een naam in (bijvoorbeeld air-quality-dataset).
  4. Voor Databron, kies je gegevensbron (voor dit bericht, Amazon S3).
    Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.
  5. Voor Detectormodus, selecteer je modus (voor dit bericht, Doorlopend).

Met Amazon S3 kunt u in twee modi een detector maken:

    • Backtest โ€“ Deze modus wordt gebruikt om afwijkingen in historische gegevens te vinden. Het vereist dat alle records worden geconsolideerd in รฉรฉn enkel bestand.
    • Doorlopend โ€“ Deze modus wordt gebruikt om afwijkingen in livegegevens te detecteren. We gebruiken deze modus met onze use-case omdat we anomalieรซn willen detecteren wanneer we luchtverontreinigende gegevens ontvangen van de luchtbewakingssensor.
  1. Voer het S3-pad in voor de live S3-map en het padpatroon.
  2. Voor Datasource-interval, kiezen Intervallen van 5 minuten.Als u historische gegevens heeft waaruit de detector patronen kan leren, kunt u deze tijdens deze configuratie verstrekken. De gegevens hebben naar verwachting dezelfde indeling die u gebruikt om een โ€‹โ€‹backtest uit te voeren. Het verstrekken van historische gegevens versnelt het trainingsproces van het ML-model. Als dit niet beschikbaar is, wacht de continue detector totdat er voldoende gegevens beschikbaar zijn voordat conclusies worden getrokken.
  3. Voor dit bericht hebben we al historische gegevens, dus selecteer Gebruik historische gegevens.
  4. Voer het S3-pad van . in historical_data.json.
  5. Voor bestandsformaatselecteer JSON-lijnen.
    Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Op dit punt krijgt Lookout for Metrics toegang tot de gegevensbron en valideert het of de gegevens kunnen worden geparseerd. Als het parseren is gelukt, krijgt u het bericht 'Validatie geslaagd' en gaat u naar de volgende pagina waar u metingen, dimensies en tijdstempels configureert.

Meetwaarden, dimensies en tijdstempels configureren

Maatregelen definieer KPI's waarvoor u afwijkingen wilt bijhouden. U kunt maximaal vijf metingen per detector toevoegen. De velden die worden gebruikt om KPI's van uw brongegevens te maken, moeten een numerieke indeling hebben. De KPI's kunnen momenteel worden gedefinieerd door records binnen het tijdsinterval te aggregeren door een SOM of GEMIDDELDE te doen.

Afmetingen geeft u de mogelijkheid om uw gegevens te segmenteren door categorieรซn of segmenten te definiรซren. Hiermee kunt u anomalieรซn volgen voor een subset van de hele set gegevens waarvoor een bepaalde maatregel van toepassing is.

In onze use-case voegen we drie metingen toe, die de AVG berekenen van de objecten die in het interval van 5 minuten worden gezien, en die slechts รฉรฉn dimensie hebben, waarvoor de concentratie van verontreinigende stoffen wordt gemeten.

Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Elk record in de dataset moet een tijdstempel hebben. Met de volgende configuratie kunt u het veld kiezen dat de tijdstempelwaarde vertegenwoordigt en ook het formaat van de tijdstempel.

Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Op de volgende pagina kunt u alle details bekijken die u hebt toegevoegd en vervolgens de detector opslaan en activeren.

De detector begint dan met het leren van de gegevensstroom naar de gegevensbron. In dit stadium verandert de status van de detector in: Initializing.

Het is belangrijk om de minimale hoeveelheid gegevens te noteren die nodig is voordat Lookout for Metrics afwijkingen kan gaan detecteren. Voor meer informatie over vereisten en limieten, zie Let op quota's voor statistieken.

Met minimale configuratie hebt u uw detector gemaakt, op een dataset gericht en de metrieken gedefinieerd waarvan u wilt dat Lookout for Metrics afwijkingen opspoort.

Anomalieรซn visualiseren

Lookout for Metrics biedt een rijke UI-ervaring voor gebruikers die de AWS-beheerconsole om de gedetecteerde anomalieรซn te analyseren. Het biedt ook de mogelijkheid om de anomalieรซn op te vragen via API's.

Laten we eens kijken naar een voorbeeld van een afwijking die is gedetecteerd in onze use case voor luchtkwaliteitsgegevens. De volgende schermafbeelding toont een anomalie die is gedetecteerd in de CO-concentratie in de lucht op de aangegeven tijd en datum met een ernstscore van 93. Het toont ook de procentuele bijdrage van de dimensie aan de anomalie. In dit geval is de bijdrage van 100% afkomstig van de dimensie locatie-ID B-101.

Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Meldingen maken

Met Lookout for Metrics kunt u waarschuwingen verzenden via verschillende kanalen. U kunt de drempel voor de ernst van de anomalie configureren waarop de waarschuwingen moeten worden geactiveerd.

In onze use case configureren we waarschuwingen die naar een Amazon eenvoudige meldingsservice (Amazon SNS) kanaal, dat op zijn beurt een sms verstuurt. De volgende schermafbeeldingen tonen de configuratiedetails.

Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

U kunt ook een waarschuwing gebruiken om automatiseringen te activeren met AWS Lambda functies om API-gestuurde bewerkingen op AWS IoT Core aan te sturen.

Conclusie

In dit bericht hebben we u laten zien hoe u Lookout for Metrics en Kinesis Data Firehose eenvoudig kunt gebruiken om het ongedifferentieerde zware werk te elimineren dat komt kijken bij het beheer van de end-to-end levenscyclus van het bouwen van door ML aangedreven anomaliedetectietoepassingen. Deze oplossing kan u helpen uw vermogen om afwijkingen in belangrijke bedrijfsstatistieken te vinden te versnellen en u in staat te stellen uw inspanningen te richten op de groei en verbetering van uw bedrijf.

We moedigen u aan om meer te leren door een bezoek te brengen aan de Amazon Lookout for Metrics-ontwikkelaarsgids en probeer de end-to-end-oplossing van deze services uit met een dataset die relevant is voor uw zakelijke KPI's.


Over de auteur

Bouw een anomaliedetector voor luchtkwaliteit met Amazon Lookout for Metrics PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Dhiraj Thakuro is een Solutions Architect bij Amazon Web Services. Hij werkt samen met AWS-klanten en -partners om advies te geven over de acceptatie, migratie en strategie van enterprise-cloud. Hij is gepassioneerd door technologie en geniet van het bouwen en experimenteren op het gebied van analyse en AI / ML.

Tijdstempel:

Meer van AWS-machine learning