Astăzi, poluarea aerului este o problemă familiară de mediu care creează afecțiuni respiratorii și cardiace severe, care reprezintă amenințări grave pentru sănătate. Ploaia acidă, epuizarea stratului de ozon și încălzirea globală sunt, de asemenea, consecințe negative ale poluării aerului. Este nevoie de monitorizare și automatizare inteligentă pentru a preveni problemele grave de sănătate și, în cazuri extreme, situațiile care pun viața în pericol. Calitatea aerului este măsurată folosind concentrația de poluanți din aer. Identificarea precoce a simptomelor și controlul nivelului poluantului înainte ca acesta să devină periculos este crucială. Procesul de identificare a calității aerului și a anomaliilor în greutatea poluanților și de diagnosticare rapidă a cauzei principale este dificil, costisitor și predispus la erori.
Procesul de aplicare a soluțiilor bazate pe inteligență artificială și învățarea automată (ML) pentru a găsi anomalii de date implică multă complexitate în asimilarea, conservarea și pregătirea datelor în formatul potrivit și apoi optimizarea și menținerea eficacității acestor modele ML pe perioade lungi de timp. timp. Acesta a fost unul dintre barierele în calea implementării și extinderii rapide a adoptării capabilităților ML.
Această postare vă arată cum să utilizați o soluție integrată cu Amazon Lookout pentru metrici și Firehose Amazon Kinesis Data pentru a sparge aceste bariere prin ingerarea rapidă și ușoară a datelor de streaming și, ulterior, detectarea anomaliilor în indicatorii cheie de performanță care vă interesează.
Lookout for Metrics detectează și diagnostichează automat anomaliile (outlieri de la normă) în datele de afaceri și operaționale. Este un serviciu ML gestionat complet care utilizează modele ML specializate pentru a detecta anomalii pe baza caracteristicilor datelor dvs. De exemplu, tendințele și sezonalitatea sunt două caracteristici ale valorilor seriilor de timp în care detectarea anomaliilor bazată pe prag nu funcționează. Tendințele sunt variații continue (creșteri sau scăderi) ale valorii unei valori. Pe de altă parte, sezonalitatea reprezintă tipare periodice care apar într-un sistem, de obicei crescând peste o linie de bază și apoi scăzând din nou. Nu aveți nevoie de experiență ML pentru a utiliza Lookout for Metrics.
Demonstrăm un scenariu comun de monitorizare a calității aerului, în care detectăm anomalii în concentrația de poluanți din aer. Până la sfârșitul acestei postări, veți învăța cum să utilizați aceste servicii gestionate de la AWS pentru a preveni problemele de sănătate și încălzirea globală. Puteți aplica această soluție în alte cazuri de utilizare pentru o mai bună gestionare a mediului, cum ar fi detectarea anomaliilor în calitatea apei, calitatea terenului și modelele de consum de energie, pentru a numi câteva.
Prezentare generală a soluțiilor
Arhitectura constă din trei blocuri funcționale:
- Senzori wireless plasați în locații strategice pentru a detecta nivelul de concentrație de monoxid de carbon (CO), dioxid de sulf (SO2) și dioxid de azot (NO2) în aer
- Ingerarea și stocarea datelor în flux
- Detectarea și notificarea anomaliilor
Soluția oferă o cale de date complet automatizată de la senzori până la o notificare trimisă utilizatorului. De asemenea, puteți interacționa cu soluția utilizând interfața de utilizare Lookout for Metrics pentru a analiza anomaliile identificate.
Următoarea diagramă ilustrează arhitectura soluției noastre.
Cerințe preliminare
Aveți nevoie de următoarele condiții preliminare înainte de a putea continua cu soluția. Pentru această postare, folosim Regiunea us-east-1.
- Descărcați scriptul Python (publica.py) și fișierul de date din GitHub repo.
- Deschideți
live_data.csv
fișier în editorul preferat și înlocuiți datele pentru a fi data de azi și de mâine. De exemplu, dacă data de astăzi este 8 iulie 2022, atunci înlocuiți2022-03-25
cu2022-07-08
. Păstrați același format. Acest lucru este necesar pentru a simula datele senzorului pentru data curentă utilizând scriptul simulatorului IoT. - Creați o Serviciul Amazon de stocare simplă (Amazon S3) și un folder numit
air-quality
. Creați un subdosar în interiorair-quality
numithistorical
. Pentru instrucțiuni, consultați Crearea unui folder. - Încărcați
live_data.csv
fișier în găleată rădăcină S3 șihistorical_data.json
în dosarul istoric. - Creați o AWS Cloud9 mediu de dezvoltare, pe care îl folosim pentru a rula programul de simulare Python pentru a crea date senzorilor pentru această soluție.
Ingerați și transformați date folosind AWS IoT Core și Kinesis Data Firehose
Folosim un flux de livrare Kinesis Data Firehose pentru a ingera datele din streaming AWS IoT Core și livrați-l pe Amazon S3. Parcurgeți următorii pași:
- Pe consola Kinesis Data Firehose, alegeți Creați un flux de livrare.
- Pentru Sursă, alege PUNERE Direct.
- Pentru Destinaţie, alege Amazon S3.
- Pentru Numele fluxului de livrare, introduceți un nume pentru fluxul dvs. de livrare.
- Pentru Găleată S3, introduceți compartimentul pe care l-ați creat ca o condiție prealabilă.
- Introduceți valori pentru Prefixul găleții S3 și Prefix de ieșire pentru eroare găleată S3.Unul dintre punctele cheie de reținut este configurarea prefixului personalizat care este configurat pentru destinația Amazon S3. Acest model de prefix se asigură că datele sunt create în compartimentul S3 conform ierarhiei de prefix așteptate de Lookout for Metrics. (Mai multe despre acest lucru mai târziu în această postare.) Pentru mai multe informații despre prefixele personalizate, consultați Prefixe personalizate pentru obiectele Amazon S3.
- Pentru Interval tampon, introduce
60
. - Alege Creați sau actualizați rolul IAM.
- Alege Creați un flux de livrare.
Acum configuram AWS IoT Core și rulăm programul de simulare a calității aerului. - Pe consola AWS IoT Core, creați o politică AWS IoT numit admin.
- În panoul de navigare de sub Dirijarea mesajelor, alege Reguli.
- Alege Creați o regulă.
- Creați o regulă cu Kinesis Data Firehose (furtun de incendiu)..
Aceasta trimite date de la un mesaj MQTT la un flux de livrare Kinesis Data Firehose. - Alege Crea.
- Creați un lucru AWS IoT cu nume
Test-Thing
și atașați politica pe care ați creat-o. - Descărcați certificatul, cheia publică, cheia privată, certificatul dispozitivului și CA rădăcină pentru AWS IoT Core.
- Salvați fiecare dintre fișierele descărcate în
certificates
subdirectorul pe care l-ați creat mai devreme. - Încărcați publish.py în
iot-test-publish
dosar. - Pe consola AWS IoT Core, în panoul de navigare, alegeți setări cont.
- În Punct final personalizat, copiați punctul final.
Această adresă URL personalizată a punctului final AWS IoT Core este personală pentru contul și regiunea dvs. AWS. - Înlocui
customEndpointUrl
cu adresa URL a punctului final personalizat AWS IoT Core, certificate cu numele certificatului șiYour_S3_Bucket_Name
cu numele găleții dvs. S3.
Apoi, instalați pip și AWS IoT SDK pentru Python. - Conectați-vă la AWS Cloud9 și creați un director de lucru în mediul dvs. de dezvoltare. De exemplu:
aq-iot-publish
. - Creați un subdirector pentru certificate în noul director de lucru. De exemplu:
certificates
. - Instalați SDK-ul AWS IoT pentru Python v2 rulând următoarele din linia de comandă.
- Pentru a testa conducta de date, executați următoarea comandă:
Puteți vedea sarcina utilă în următoarea captură de ecran.
În cele din urmă, datele sunt livrate în compartimentul S3 specificat în structura prefixului.
Datele fișierelor sunt următoarele:
{"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}
Marcajele temporale arată că fiecare fișier conține date pentru intervale de 5 minute.
Cu un cod minim, acum am ingerat datele senzorului, am creat un flux de intrare din datele ingerate și am stocat datele într-un compartiment S3 pe baza cerințelor pentru Lookout for Metrics.
În secțiunile următoare, aruncăm o privire mai profundă asupra constructelor din Lookout for Metrics și cât de ușor este să configurați aceste concepte folosind consola Lookout for Metrics.
Creați un detector
Un detector este o resursă Lookout for Metrics care monitorizează un set de date și identifică anomalii la o frecvență predefinită. Detectoarele folosesc ML pentru a găsi modele în date și pentru a distinge între variațiile așteptate ale datelor și anomaliile legitime. Pentru a-și îmbunătăți performanța, un detector învață mai multe despre datele dvs. în timp.
În cazul nostru de utilizare, detectorul analizează datele de la senzor la fiecare 5 minute.
Pentru a crea detectorul, navigați la consola Lookout for Metrics și alegeți Creați detector. Furnizați numele și descrierea (opțional) pentru detector, împreună cu intervalul de 5 minute.
Datele dvs. sunt criptate implicit cu o cheie pe care AWS o deține și o gestionează pentru dvs. De asemenea, puteți configura dacă doriți să utilizați o cheie de criptare diferită de cea care este utilizată implicit.
Acum să îndreptăm acest detector către datele pe care doriți să ruleze detectarea anomaliilor.
Creați un set de date
Un set de date îi spune detectorului unde să găsească datele dvs. și ce valori să analizeze pentru anomalii. Pentru a crea un set de date, parcurgeți următorii pași:
- Pe consola Amazon Lookout for Metrics, navigați la detectorul dvs.
- Alege Adăugați un set de date.
- Pentru Nume si Prenume, introduceți un nume (de exemplu,
air-quality-dataset
). - Pentru Sursă de date, alege-ți sursa de date (pentru această postare, Amazon S3).
- Pentru Mod detector, selectați modul dvs. (pentru această postare, Continuu).
Cu Amazon S3, puteți crea un detector în două moduri:
-
- Backtest – Acest mod este folosit pentru a găsi anomalii în datele istorice. Are nevoie ca toate înregistrările să fie consolidate într-un singur fișier.
- Continuu – Acest mod este utilizat pentru a detecta anomalii în datele live. Folosim acest mod cu cazul nostru de utilizare deoarece dorim să detectăm anomalii pe măsură ce primim date despre poluanții atmosferici de la senzorul de monitorizare a aerului.
- Introduceți calea S3 pentru folderul S3 live și modelul de cale.
- Pentru Intervalul sursei de date, alege intervale de 5 minute.Dacă aveți date istorice din care detectorul poate învăța modele, le puteți furniza în timpul acestei configurații. Se așteaptă ca datele să fie în același format pe care îl utilizați pentru a efectua un backtest. Furnizarea datelor istorice accelerează procesul de formare a modelului ML. Dacă acest lucru nu este disponibil, detectorul continuu așteaptă ca date suficiente să fie disponibile înainte de a face inferențe.
- Pentru această postare, avem deja date istorice, așa că selectați Folosiți date istorice.
- Introduceți calea S3 a
historical_data.json
. - Pentru formatul de fișier, Selectați linii JSON.
În acest moment, Lookout for Metrics accesează sursa de date și validează dacă poate analiza datele. Dacă analiza are succes, vă va afișa un mesaj „Validare reușită” și vă duce la pagina următoare, unde configurați măsurile, dimensiunile și marcajele de timp.
Configurați măsurile, dimensiunile și marcajele de timp
măsuri definiți KPI pentru care doriți să urmăriți anomaliile. Puteți adăuga până la cinci măsuri pentru fiecare detector. Câmpurile care sunt utilizate pentru a crea KPI din datele dumneavoastră sursă trebuie să fie în format numeric. KPI-urile pot fi definite în prezent prin agregarea înregistrărilor în intervalul de timp, făcând o SUMA sau MEDIE.
Dimensiuni vă oferă posibilitatea de a tăia și tăia datele prin definirea de categorii sau segmente. Acest lucru vă permite să urmăriți anomaliile pentru un subset al întregului set de date pentru care se aplică o anumită măsură.
În cazul nostru de utilizare, adăugăm trei măsuri, care calculează AVG-ul obiectelor văzute în intervalul de 5 minute și au o singură dimensiune, pentru care se măsoară concentrația de poluanți.
Fiecare înregistrare din setul de date trebuie să aibă un marcaj de timp. Următoarea configurație vă permite să alegeți câmpul care reprezintă valoarea marcajului de timp și, de asemenea, formatul mărcii de timp.
Pagina următoare vă permite să revizuiți toate detaliile adăugate și apoi să salvați și să activați detectorul.
Detectorul începe apoi să învețe fluxul de date în sursa de date. În această etapă, starea detectorului se schimbă în Initializing
.
Este important să rețineți cantitatea minimă de date necesară înainte ca Lookout for Metrics să poată începe să detecteze anomalii. Pentru mai multe informații despre cerințe și limite, consultați Căutați cote pentru valori.
Cu o configurație minimă, ați creat detectorul, l-ați îndreptat către un set de date și ați definit valorile în care doriți ca Lookout for Metrics să găsească anomalii.
Vizualizați anomaliile
Lookout for Metrics oferă o experiență bogată de IU pentru utilizatorii care doresc să utilizeze Consola de administrare AWS pentru a analiza anomaliile depistate. De asemenea, oferă capacitatea de a interoga anomaliile prin intermediul API-urilor.
Să ne uităm la un exemplu de anomalie detectată din cazul nostru de utilizare a datelor privind calitatea aerului. Următoarea captură de ecran arată o anomalie detectată în concentrația de CO în aer la ora și data desemnate, cu un scor de severitate de 93. De asemenea, arată contribuția procentuală a dimensiunii la anomalie. În acest caz, contribuția de 100% provine din dimensiunea ID locație B-101.
Creați alerte
Lookout for Metrics vă permite să trimiteți alerte folosind o varietate de canale. Puteți configura pragul scorului de severitate a anomaliilor la care trebuie declanșate alertele.
În cazul nostru de utilizare, configurăm alertele pentru a fi trimise către un Serviciul de notificare simplă Amazon canal (Amazon SNS), care la rândul său trimite un SMS. Următoarele capturi de ecran arată detaliile de configurare.
De asemenea, puteți utiliza o alertă pentru a declanșa automatizări folosind AWS Lambdas funcții pentru a conduce operațiuni bazate pe API pe AWS IoT Core.
Concluzie
În această postare, v-am arătat cât de ușor de utilizat Lookout for Metrics și Kinesis Data Firehose pentru a elimina greutățile nediferențiate implicate în gestionarea ciclului de viață de la capăt la capăt al construirii aplicațiilor de detectare a anomaliilor bazate pe ML. Această soluție vă poate ajuta să vă accelerați capacitatea de a găsi anomalii în valorile cheie ale afacerii și vă permite să vă concentrați eforturile pe creșterea și îmbunătățirea afacerii dvs.
Vă încurajăm să aflați mai multe vizitând Ghidul pentru dezvoltatori Amazon Lookout for Metrics și încercați soluția end-to-end activată de aceste servicii cu un set de date relevant pentru KPI-urile dvs. de afaceri.
Despre autor
Dhiraj Thakur este arhitect de soluții cu Amazon Web Services. El lucrează cu clienții și partenerii AWS pentru a oferi îndrumări cu privire la adoptarea cloud, migrarea și strategia întreprinderii. Este pasionat de tehnologie și îi place să construiască și să experimenteze în spațiul de analiză și AI/ML.
- AI
- ai art
- ai art generator
- ai robot
- Amazon Lookout pentru metrici
- inteligență artificială
- certificare de inteligență artificială
- inteligența artificială în domeniul bancar
- robot cu inteligență artificială
- roboți cu inteligență artificială
- software de inteligență artificială
- Învățare automată AWS
- blockchain
- conferință blockchain ai
- coingenius
- inteligența artificială conversațională
- criptoconferință ai
- dall-e
- învățare profundă
- google ai
- masina de învățare
- Plato
- platoul ai
- Informații despre date Platon
- Jocul lui Platon
- PlatoData
- platogaming
- scara ai
- sintaxă
- zephyrnet