Curs 6. - Analiza, Prelucrarea și Curățarea Datelor IoT

Document Details

WellReceivedSphene5287

Uploaded by WellReceivedSphene5287

Tags

IoT data analysis Big Data processing Data cleaning Data analysis

Summary

This document provides an overview of IoT data analysis, processing, and cleaning techniques. It covers various tools and technologies, including Apache Kafka, Apache Spark, and Apache Flink. The document also discusses the use of these technologies in different domains such as IoT monitoring, fraud detection, and recommendation systems.

Full Transcript

Analiza, Prelucrarea și Curățarea Datelor IoT (1) - Cursul 6 - Curpins 1. Instrumente și tehnologii 2. Filtrare, Normalizare și Agregare în IoT 3. Identificarea și gestionarea datelor lipsă 4. Eliminarea anomaliilor și detectarea zgomotului 5. Validarea datelor 6. Mod...

Analiza, Prelucrarea și Curățarea Datelor IoT (1) - Cursul 6 - Curpins 1. Instrumente și tehnologii 2. Filtrare, Normalizare și Agregare în IoT 3. Identificarea și gestionarea datelor lipsă 4. Eliminarea anomaliilor și detectarea zgomotului 5. Validarea datelor 6. Modele ARIMA, LSTM Instrumente și tehnologii Apache Kafka - Asemenea unui seviciu de curierat - O platformă care ajută la transportul unor fluxuri masive de date de la un punct la altul - Kafka gestionează trasportul datelor și se asigură că ele ajung unde trebuie, intacte și la timp - Caracteristici: - Procesare real time - poate gestiona milioane de surse de date în timp real și își ajustează rutarea - Scalabilitate - Durabilitate - se asigură că datele sunt stocate într-o manieră sigură și că poate gestiona căderile de sistem. Kafka - componente - Producer - creează sau trimite mesaje - Broker - un broker primește mesaje de la producător și le păstrează în siguranță până când sunt necesare - Topic - acesta este modul în care sunt clasificate mesajele - Partition - o modalitate de a împărți un topic - spre ex pe bază de date/luni/ani …. - Consumer - extragere mesajele din mediul de stocare pentru a fi folosite sau „citite” - Zookeeper - supraveghează brokeri, asigurându-se că lucrează bine împreună și gestionându-i dacă unul eșuează Apache Spark - un motor de analiză de date open-source - destinat pentru procesarea datelor la scară largă - oferă o interfață pentru programarea clusterelor ce cuprinde mecanisme de analiză paralelă - Caracteristici - performanță ridicată - folosește un motor de procesare în memorie - permite procesarea datelor de pe disc atunci când memoria este insuficientă - procesare unificată - diferite tipuri de sarcini: batch, streaming, SQL, machine learning și procesarea grafurilor - API-uri prietenoase pentru limbaje populare precum Python, Java, Scala și R - compatibilitate cu ecosistemul Hadoop - stocare durabilă Apache Spark - componente - Spark Core - modulul de bază care gestionează procesarea distribuită, comunicarea cu clusterele și manipularea datelor - Spark SQL: - permite interogarea datelor folosind tehnici SQL. Suportă DataFrames și Datasets pentru operațiuni structurate pe date. - Spark Streaming: - procesarea datelor în flux (streaming) aproape în timp real - MLlib: - bibliotecă pentru machine learning, care include algoritmi pentru clasificare, regresie, clustering, reducerea dimensionalității, etc. - GraphX: - ibliotecă pentru procesarea și analiza grafurilor (de exemplu, pentru rețele sociale sau analize de relații Apache Kafka + Apache Spark - formează o soluție robustă pentru aplicații de procesare în flux (stream processing) - un standard în aplicațiile moderne de Big Data - integrarea Spark - Kafka - permite citirea și procesarea datelor din Kafka folosind Spark Streaming pentru procesarea datelor în timp real - exemplu: - Kafka ca sursă - Spark citește datele din topic-urile Kafka - Procesarea în Spark - datele sunt transformate, filtrate sau analizate - Kafka ca destinație - rezultatele scrise înapoi în Kafka sau într-un alt sistem (ex: HDFS, baze de date, sistem cloud) Apache Kafka + Apache Spark Exemple de utilizare: - Monitorizarea IoT - procesarea datelor de la senzori în timp real pentru alarme sau analize predictive - Detectarea fraudelor - monitorizarea tranzacțiilor pentru modele anormale folosind machine learning - Sistemele de recomandare - generarea de recomandări personalizate în timp real bazate pe comportamentul utilizatorilor Apache Flink - o platformă open-source pentru procesarea datelor distribuite și în timp real (stream processing) - permite analiza continuă și cu latență foarte mică, dar suportă și procesarea în regim batch - recunoscut pentru: - scalabilitate ridicată - toleranță la erori - flexibilitate în procesarea datelor Apache Flink - componente - JobManager - coordonează execuția sarcinilor în cluster - gestionează distribuirea sarcinilor, checkpoint-urile și resursele - TaskManager: - execută sarcinile alocate de JobManager pe nodurile din cluster - State Backend: - stochează starea aplicației (în memorie, pe disc sau în alte sisteme de stocare precum RocksDB). - Checkpointing: - creează puncte de salvare la intervale regulate pentru a asigura recuperarea după erori - Event Time vs. Processing Time: - Event Time - procesarea în funcție de timestamp-ul real al evenimentului - Processing Time - procesarea bazată pe timpul la care evenimentul este procesat Apache Flink vs Apache Spark - Procesare în flux - Apache Flink - optimizat pentru stream processing și tratează fluxurile de date ca infinite - Apache Spark - folosește un model de micro-batch, ceea ce înseamnă că procesează fluxurile de date în bucăți mici - Procesare batch - Apache Flink - convertește job-urile batch în fluxuri de date finite - Apache Spark - este considerat liderul în procesarea batch datorită performanței și maturității sale Apache Flink vs Apache Spark Situație Apache Flink Apache Spark Procesare în timp real cu latență scăzută + - Procesare batch complexă - + Stateful Processing (stări mari) + - Machine Learning integrat integrare externă MLlib Flexibilitate în arhitectură + + Procesarea fluxurilor întârziate (event-time) + - Simplitate pentru începători - + Filtrare, Normalizare și Agregare în IoT Filtrarea în IoT - procesul prin care se selectează informațiile relevante dintr-un flux mare de date și se elimină zgomotul sau datele neimportante - obiectivele filtrării: - reducerea volumului de date transmise sau procesate - excluderea datelor redundante, incomplete sau eronate - creșterea eficienței sistemului și a preciziei analizelor - implementare: - la nivel de senzor - datele sunt filtrate direct la sursă - la gateway IoT - gateway-ul interceptează fluxurile și aplică regulile de filtrare - la locul de procesare - filtrarea este aplicată după ce datele sunt colectate Tipuri de filtrare - Bazată pe praguri (Threshold-based Filtering) - exclude datele care nu respectă anumite valori minime/marime - exemplu: transmiterea doar a temperaturilor sub 0°C. - Filtrare temporală: - trimite date doar la intervale specifice de tim - exemplu: datele despre vânt sunt trimise o dată la fiecare 20 minute - Filtrare spațială: - selectează date relevante doar din anumite regiuni geografice - exemplu: senzori activi doar într-o anumită zonă - Filtrare bazată pe evenimente (Event-based Filtering) - datele sunt transmise doar în cazul apariției unui eveniment specific - exemplu: Transmiterea datelor despre vibrații când depășesc o anume limită Normalizarea în IoT - implică standardizarea datelor pentru a le face compatibile și comparabile, indiferent de sursa sau formatul lor inițial - obiective - crearea unei reprezentări consistente a datelor - facilitarea integrării și procesării datelor din surse diverse - asigurarea interoperabilității între diferite dispozitive IoT - unde se aplică normalizarea - la marginea rețelei (Edge) - pentru a reduce complexitatea înainte de transmiterea datelor - cloud - pentru pregătirea datelor pentru analize complexe sau machine learning Tehnici comune de normalizare - conversia unităților de măsură - exemplu: convertirea greutății din livre în kilograme. - scalarea valorilor - datele sunt scalate într-un interval standard, cum ar fi [0, 10]. - convertirea la formate comune - extragerea și rearanjarea datelor din formate neuniforme. Agregarea în IoT - procesul prin care datele brute sunt grupate, combinate sau sumarizate pentru a reduce volumul și a extrage informații utile - obiectivele agregării - reducerea încărcării rețelei prin transmiterea unui număr redus de pachete - crearea de rapoarte concise și semnificative - identificarea tendințelor sau modelelor în date Tipuri de agregare - temporală: - datele sunt grupate pe baza intervalelor de timp - exemplu: media temperaturilor din fiecare oră - spațială: - datele sunt combinate pe baza locației geografice - exemplu: media calității aerului într-o anumită zonă - statistică: - pe baza de funcții statistice precum sumă, medie, minim, maxim sau deviație standard - exemplu: numărul total de vehicule ce au trecut prin intersecție într-o zi - evenimentuală: - agregarea datelor bazate pe evenimente specifice - exemplu: numărul de alarme de gaz generate într-un interval. Implementarea agregării - Edge Aggregation - agregarea datelor are loc pe dispozitivele IoT sau gateway-uri, reducând volumul de date transmis - Cloud Aggregation - agregarea este efectuată în cloud pentru analize complexe pe seturi mari de date - Hierarchical Aggregation - se utilizează mai multe niveluri de agregare, de la senzori la gateway-uri, apoi la cloud Resampling în IoT - implică modificarea frecvenței datelor dintr-un flux pentru a se potrivi cerințelor specifice de procesare sau analiză. - poate însemna reducerea sau creșterea numărului de puncte de date într-un interval de timp - când este necesar: - diferențe în frecvențele de raportare - senzorii pot trimite date la frecvențe diferite, iar resampling-ul le aliniază pentru o analiză uniformă - reducerea volumului de date - pentru economisirea resurselor de stocare și rețea - pregătirea datelor pentru analiză - modelele de machine learning sau statisticile pot necesita date la o frecvență fixă Tipuri de resampling - Downsampling (reducerea frecvenței) - elimină puncte de date, păstrând doar o parte reprezentativă a acestora - exemplu: temperatura măsurată la fiecare secundă este redusă la o medie pe minut - Upsampling (creșterea frecvenței): - adaugă puncte de date interpolând între valorile existente - exemplu: datele colectate la fiecare 5 minute sunt interpolate pentru a simula colectarea la fiecare minut - Agregare temporală: - combină valorile dintr-un interval de timp într-o statistică unică - exemplu: media sau suma valorilor dintr-un flux - Interpolare: - estimează valorile lipsă între două puncte pe baza unui algoritm (linear, spline, etc.) Reconfigurarea fluxurilor de date în IoT - presupune modificarea structurii, direcției sau conținutului fluxurilor de date pentru a îndeplini cerințele specifice ale rețelelor, aplicațiilor sau utilizatorilor finali - motive: - integrarea datelor din surse multiple - optimizarea utilizării resurselor de rețea și stocare - adaptarea fluxurilor la schimbările din infrastructura IoT - gestionarea erorilor sau latențelor în fluxuri Tipuri de reconfigurare - Redistribuirea datelor - redirecționarea fluxurilor de date către diferite destinații - exemplu: datele de la un senzor sunt trimise atât la un server centralizat, cât și la o aplicație mobilă - Fusionarea fluxurilor - combinarea datelor din mai multe surse într-un flux unificat - exemplu: datele despre umiditate și temperatură sunt combinate într-un flux comun pentru analiza microclimatului - Separarea fluxurilor: - divizarea unui flux mare în mai multe fluxuri mai mici - exemplu: un flux de date este separat în componente individuale (temperatură, presiune, locație) - Reordonarea datelor: - fluxurile de date dezordonate sunt aliniate pe baza event-time sau al altor criterii - exemplu: evenimentele întârziate dintr-un flux sunt realiniate cronologic - Transformarea formatului: - conversia datelor între diferite formate ( JSON, XML) - exemplu: un flux JSON este transformat în CSV pentru o analiză ulterioară Identificarea și gestionarea datelor lipsă Cauzele frecvente ale datelor lipsă în IoT - Defecțiuni hardware - senzori sau dispozitive IoT care funcționează defectuos - Probleme de conectivitate - latență sau pierderi în rețelele wireless, în special în zonele cu semnal slab - Erori de transmisie - pierderea pachetelor de date în timpul transferului între dispozitive și servere - Deficiențe software - erori în codul aplicațiilor IoT sau în sistemele de stocare a datelor. - Factori externi - condiții meteorologice nefavorabile - interferențe electromagnetice - alte perturbări fizice. Identificarea datelor lipsă - Validarea datelor în timp real - compararea valorilor recepționate cu limitele acceptabile sau cu modelele de referință Ex: - Ex: dacă temperatura înregistrată brusc este zero într-un sistem de încălzire, aceasta poate indica o eroare. - Detectarea golurilor temporale - monitorizarea frecvenței cu care senzorii trimit date - dacă datele nu sunt primite la intervalele așteptate, se consideră că lipsesc - Analiza statistică - identificarea valorilor lipsă sau aberante (outliers) în seturile de date istorice - Monitorizarea erorilor de transmisie - verificarea rapoartelor de transmisie pentru pachetele pierdute. Gestionarea datelor lipsă - Imputarea datelor lipsă - Interpolare liniară - estimarea valorilor lipsă bazată pe datele anterioare și următoare - Metode bazate pe medii: - utilizarea mediei, medianei sau modului pentru a completa golurile - Modele predictive: - folosirea algoritmilor de machine learning (ex: regresie, rețele neuronale) pentru a prezice valorile lipsă. - Metode avansate: - utilizarea tehnicilor de imputare multiple sau bazate pe seria temporală (ex: ARIMA, Kalman filters). Gestionarea datelor lipsă - Procesare la margine (Edge Computing) - detectarea și completarea datelor lipsă direct la dispozitiv sau la gateway, pentru a preveni transmiterea incompletă - Măsuri de redundanță - instalarea de senzori suplimentari pentru a acoperi golurile de date generate de un senzor defect. - Stocarea tampon (Buffering) - stocarea locală temporară a datelor în caz de pierdere a conectivității și retransmiterea lor ulterior. Gestionarea datelor lipsă - Îmbunătățirea arhitecturii de rețea - utilizarea rețelelor reziliente, cum ar fi cele redundante sau meshed, pentru a reduce pierderile de conectivitate - Notificarea erorilor - configurarea alertelor automate pentru a informa operatorii în caz de date lipsă, pentru intervenție rapidă - Excluderea datelor lipsă - în aplicațiile unde datele lipsă nu afectează semnificativ rezultatul final, acestea pot fi ignorate Exemple - Sanătate - un wearable nu înregistrează pulsul pentru o perioadă scurtă - imputarea pentru continuitatea monitorizării. - Agricultură inteligentă - lipsa datelor despre umiditatea solului - folosind date istorice sau predictive - Industrie - senzor de vibrație defect - sistem predictiv pentru a estima comportamentul echipamentului și pentru a evita opririle neașteptate ARIMA - AutoRegressive Integrated Moving Average - este un model statistic utilizat pentru analiza și prognoza seriilor temporale - potrivit pentru datele care prezintă o structură dependentă în timp - ex: valorile financiare, datele meteorologice sau fluxurile de trafic - este definit prin trei parametri - (p, d, q) - p (AutoRegressive - AR) - scop: construiește tendință din valorile trecute și funcționează ca un model de regresie - reprezintă dependența dintre valoarea actuală și valorile anterioare - ex: într-o serie temporală de temperaturi, valoarea curentă poate depinde de valorile temperaturii din ultimele zile - d (Integrated - I) - numărul de diferențieri necesare pentru a face seria staționară (adică pentru a elimina tendințele) - o serie este staționară dacă media, variabilitatea și autocovarianța sunt constante în timp - q (Moving Average - MA) - numărul de termeni de medie mobilă - captează dependențele din datele reziduale (erorile) dintre valorile actuale și erorile anterioare - practical: - folositi statsmodels și sklearn în Python pe https://www.kaggle.com/datasets/gvyshnya/gold-future-prices/data pentru a prezice pretul aurului în anul 2025. Algoritmii ML utilizați pentru imputarea datelor lipsă - Modele avansate: - Random Forest - înlocuiește valorile lipsă prin estimări bazate pe mediana sau media predicțiilor realizate de mai mulți arbori de decizie. - Gradient Boosting - precizie mai mare pentru seturi complexe de date. - Modele de deep learning - Rețele neuronale - rețele neuronale dense sau convoluționale pot învăța relații complexe din datele IoT - Rețele neuronale recurente (RNN) sau LSTM - potrivit pentru seriile temporale, deoarece țin cont de dependențele temporale Random Forest - este un clasificator care conține un număr de arbori de decizie definiți pe diferite subseturi ale setului de date dat și folosește media pentru a îmbunătăți acuratețea predictivă a acelui set de date - numărul mai mare de arbori duce la o precizie mai mare source: https://www.javatpoint.com/ Gradient Boosting - o tehnică de machine learning bazată pe crearea unui ansamblu de modele slabe (weak learners), cum ar fi arborii de decizie, pentru a forma un model puternic. - se concentrează pe minimizarea erorii prin antrenarea fiecărui model suplimentar să corecteze greșelile modelului anterior - construiește modelele succesiv, fiecare model încercând să îmbunătățească performanța celui precedent Gradient Boosting - Modelul de bază (weak learner) - cel mai frecvent utilizat model este arborele de decizie - fiecare arbore este antrenat să corecteze reziduurile (erorile) din predicțiile arborilor anteriori - Antrenarea iterativă - la fiecare pas: - se calculează reziduurile (diferențele dintre predicțiile actuale și valorile reale) - se construiește un nou model care prezice aceste reziduuri - se adaugă acest model la ansamblu cu un anumit coeficient de ponderare (learning rate) - Funcția de pierdere (loss function) - minimizează o funcție de pierdere - ex.: eroarea medie pătratică (pentru regresie) sau log-loss (pentru clasificare) - optimizarea se face prin calculul gradientului funcției de pierdere - Learning rate (rata de învățare) - este un factor de scalare aplicat la contribuția fiecărui model la ansamblu - o rată de învățare mai mică face antrenarea mai lentă, dar poate îmbunătăți precizia Eliminarea anomaliilor și detectarea zgomotului Diferența dintre anomalii și zgomot - Anomalii (Outliers) - reprezintă valori rare sau neașteptate care se abat semnificativ de la tiparul general al datelor - pot fi legitime (un eveniment rar) sau rezultate ale erorilor de sistem - Zgomot (Noise) - date eronate sau fluctuații minore cauzate de factori necontrolabili - ex.: interferențe electromagnetice - nu adaugă informații semnificative și afectează modelele predictive Eliminarea zgomotului - Filtre digitale - filtru mediu mobil (Moving Average) - vizează fluctuațiile minore prin calcularea mediei valorilor pe o fereastră glisantă - Filtru median - înlocuiește fiecare valoare cu mediana valorilor dintr-o fereastră - Filtru Kalman - tehnică avansată care combină măsurători actuale și istorice pentru a estima starea reală - Transformata Wavelet - separă zgomotul de semnal prin descompunerea semnalului în frecvențe Eliminarea zgomotului - Algoritmi ML pentru eliminarea zgomotului - Rețele neuronale convoluționale (CNN) - învățarea automată pentru identificarea și eliminarea zgomotului specific - Rețele autoencoder - învață să reconstruiască semnalul fără zgomot. - Reducerea dimensionalității - PCA (Principal Component Analysis) sau t-SNE pentru a elimina componentele care contribuie la zgomot Detectarea și eliminarea anomaliilor - Metode statistice: - Analiza deviației standard - valorile care se află la mai mult de 𝑛 n deviații standard de la medie sunt marcate drept anomalii - Interquartile Range (IQR): - Datele care depășesc limitele sunt considerate anomalii Detectarea și eliminarea anomaliilor - Metode bazate pe învățare automată: - Clustering: - K-Means: Punctele care sunt departe de clusterele centrale pot fi anomalii - DBSCAN: Detectează punctele care nu aparțin niciunui cluster - Metode de regresie: - Regresia robustă: Valorile anormale sunt considerate reziduuri mari - Algoritmi specifici de detectare a anomaliilor: - Isolation Forest: Împarte spațiul de date în mod recursiv; anomaliile sunt izolate rapid. - One-Class SVM (Support Vector Machine): Construiește o hiperplană care separă punctele normale de anomalii. - Autoencoders: În rețelele neuronale, diferențele mari între datele de intrare și cele reconstruite indică anomalii. Detectarea și eliminarea anomaliilor - Metode bazate pe seriile temporale: - Analiza sezonieră - Compararea datelor actuale cu valorile istorice pentru detectarea abaterilor - Modelarea prin ARIMA sau LSTM - Modelele antrenează comportamentul normal și identifică abateri față de acesta Filtru mediu mobil (Moving Average) - unul dintre cele mai simple și eficiente filtre digitale utilizate pentru a elimina zgomotul din datele colectate de senzori în sistemele IoT - este popular datorită simplității și a capacității de a îmbunătăți semnalele fără a necesita calcule complexe - funcționează prin calcularea mediei valorilor unui semnal pe o fereastră de timp (sau de probe) care se deplasează prin date - valorile individuale sunt înlocuite cu media locală, ceea ce duce la o netezire a semnalului și la reducerea fluctuațiilor bruște cauzate de zgomot - Tipuri - Mediu mobil simplu (Simple Moving Average): Fereastra are o greutate uniformă, ceea ce înseamnă că toate valorile din fereastră contribuie egal la medie - Mediu mobil ponderat (Weighted Moving Average): Valorile recente au ponderi mai mari, ceea ce permite o adaptare mai rapidă la schimbări Filtrul median - înlocuiește fiecare valoare din semnal cu mediana valorilor dintr-o fereastră de dimensiune fixă care se deplasează pe date. - filtrul median selectează valoarea mediană, ceea ce îl face eficient împotriva valorilor extreme. - Aplicare: - Se definește o fereastră glisantă peste setul de date - Valorile din fereastră sunt sortate în ordine crescătoare - Valoarea mediană (elementul din mijloc al listei sortate) este selectată și atribuită setului de date prelucrat Filtrul Kalman - este un algoritm recursiv care folosește un model matematic al sistemului pentru - prezicerea stării viitoare a sistemului - actualizarea acestei predicții pe baza datelor observate - 2 etape: - pasul de predicție - utilizează un model matematic pentru a prezice starea sistemului și incertitudinea asociată - pasul de actualizare - integrează datele reale și ajustează predicția, reducând incertitudinea Transformata Wavelet - este o generalizare a transformatei Fourier care folosește funcții wavelet pentru a analiza datele - cum funcționează: - dezcompoziție - un semnal este dezcompus în mai multe niveluri de rezoluție (aproximații și detalii) folosind funcții wavelet - reprezentare multi-rezoluție - dezvoltă o ierarhie a componentelor datelor, analizând datele extreme - reconstrucție - componentele filtrate pot fi recombinate pentru a reconstrui datele originale (fără zgomot, de exemplu). LSTM - un tip de rețea neuronală recurentă (RNN) concepută pentru a învăța dependențe pe termen lung în date secvențiale - LSTM poate gestiona fluxuri de date complexe și neregulate, ceea ce este comun în aplicațiile IoT - se folosește în IoT pentru: - prelucrarea datelor - detectarea de tipare - predicție - detectarea anomaliilor LTSM în IoT - Colectarea datelor - dispozitivele IoT colectează date în mod continuu - datele sunt transmise către un server central sau către un sistem edge pentru procesare - Preprocesarea datelor - normalizare - ajustarea valorilor datelor pentru a fi în intervale similare - curățare- eliminarea valorilor lipsă sau eronate - definirea de serii temporale - gruparea datelor în ferestre de timp pentru procesarea lor - Intrarea în modelul LSTM - datele preprocesate sunt convertite într-o formă secvențială pentru a fi introduse în model - LSTM primește input sub formă de serii temporale (fiecare punct de date reprezintă starea de la un anumit moment) LTSM în IoT - Celulele LSTM - fiecare celulă LSTM este formată din componente care gestionează informațiile pe termen lung și scurt - Cell State - păstrează informațiile importante pe termen lung - Gates - controlează fluxul de informații: - Forget Gate - decide ce informații să fie uitate - Input Gate - determină ce informații noi să fie adăugate - Output Gate - selectează ce informații să fie utilizate pentru predicții - celulele LSTM își ajustează greutățile și învață relațiile dintre datele din trecut și cele viitoare - Ieșirea modelului - produce ieșiri bazate pe - predicții pentru viitor - (ex: consumul energetic din următoarele ore). - detectarea anomaliilor - (ex: comportamente anormale în datele dispozitivelor IoT) - Ieșirea - o valoare scalară (o predicție unică) sau o secvență de valori. FINISH

Use Quizgecko on...
Browser
Browser