Applicare l’apprendimento automatico ai sensori IoT

Applicare l’apprendimento automatico ai sensori IoT

  • Norbert Krupa
    Norbert has over 10 years’ experience in the data space working in different industries and various roles; from business intelligence to database administration, consulting as well as architecting high volume, distributed systems.

Se hai già guardato la nostra demo sull'analisi dello streaming dei dati IoT (Internet of Things) in tempo reale, probabilmente ti stai chiedendo in che modo abbiamo addestrato il nostro modello di classificazione per renderlo in grado di prevedere l'attività degli utenti. Per prima cosa spieghiamo il contesto della demo, poi il modo in cui classifichiamo i dati e infine la scelta del modello appropriato.

Contesto

L'obiettivo della demo sull'IoT è di dimostrare le funzionalità di streaming in tempo reale e di apprendimento automatico offerte da Talend. Talend riceve in tempo reale dai telefoni cellulari i dati del sensore dell'accelerometro, li trasferisce in una coda di messaggi ed esegue l'apprendimento automatico per classificare i dati ai fini dell'analisi. Tutto questo avviene senza ricorrere ad alcuna codifica manuale.

Per quanto riguarda l'elaborazione, utilizzando Talend viene creato un endpoint REST al quale è possibile inviare i dati del sensore, che vengono analizzati e inseriti in una coda di messaggi (Kafka). Una volta che i dati si trovano nella coda di messaggi, un job Big Data Streaming di Talend legge i messaggi della coda utilizzando una finestra scorrevole, passa i dati attraverso il modello di apprendimento automatico e li prepara per la visualizzazione.

I dati visualizzati

I dati elaborati provengono da un sensore interno all'acceleratore di un dispositivo mobile. Più precisamente, viene elaborata l'accelerazione lineare degli assi X, Y e Z. Basta eseguire un'analisi rapida a partire dal grafico dei dati del sensore per visualizzare questo:

L'accelerazione relativa a ciascun asse viene rappresentata graficamente in m/s2. Possiamo dedurre visivamente che vi sono tre fasi di attività, ovvero bassa, alta e media. Per tradurre tutto ciò in un modello di apprendimento automatico, il modello prescelto dovrà saper classificare i dati del sensore in bassi, medi o alti. Nell'apprendimento automatico, con classificazione si intende l'individuazione di una categoria alla quale appartengono le osservazioni. Per capire come scegliere il modello di classificazione da Spark MLib, iniziamo esaminando alcuni modelli comuni: il classificatore naïve di Bayes, la regressione logistica e il modello di foresta casuale.

La scelta di un modello

Il modello di classificazione naïve di Bayes viene generalmente utilizzato più per la classificazione dei testi pertanto, dato che qui abbiamo a che fare con numeri decimali, non farebbe al caso nostro. Il modello di regressione logistica non è in grado di gestire una classificazione multiclasse, quella che ci occorre per classificare l'attività bassa, media e alta. Infine, il modello di foresta casuale ci consente di eseguire una classificazione rispetto a ogni asse. Questo modello risulta efficace anche con set di dati più ampi ed è in grado di gestire migliaia di variabili di input.

Il modello di foresta casuale consiste nello scegliere un insieme di addestramento ed eseguire un campionamento casuale per creare sottoinsiemi di dati o "alberi" casuali. Dopo avere creato numerosi alberi, il modello genera una "foresta" casuale. Il vantaggio di avere molti alberi sta nella possibilità di ottenere previsioni più accurate della classificazione dei dati. Ad esempio, se sette alberi su dieci all'interno della foresta suggeriscono che un particolare evento rilevato dal sensore è "cammino", la classificazione prevista è "cammino".

La piattaforma Talend Cloud Real-Time Big Data è dotata di componenti incorporati per l'apprendimento automatico. Il primo passaggio per utilizzare il modello di foresta casuale è l'esecuzione dell'addestramento servendosi di classificazioni "fatte a mano", ovvero prendere i dati dalla nostra analisi rapida e aggiungere un'etichetta di attività. Questo insieme di addestramento sarà utilizzato da un codificatore di modello per produrre appunto un modello in base al quale classificare l'attività durante lo streaming. L'etichetta nell'insieme di addestramento sarà associata all'attività umana, nello specifico "riposo", "cammino" e "corsa". L'insieme di addestramento apparirà così:

L'insieme di addestramento specifico utilizzato nella generazione di questo modello aveva circa 150 eventi per ogni attività. Considerando il modello generato e confrontando le etichette classificate a mano con i risultati, abbiamo ottenuto un'accuratezza del 97%, il valore da attendersi.

Per valutare l'accuratezza del modello di apprendimento automatico utilizziamo la convalida incrociata con metodo k-fold ed eseguiamo dieci esercizi di addestramento individuale. Ogni esercizio considera una partizione dell'insieme di addestramento che viene poi utilizzata per la convalida. Questa tecnica ha prodotto un'accuratezza del 95% con il modello che avevamo scelto. In un prossimo blog analizzeremo questa tecnica di validazione e spiegheremo come crearla utilizzando Talend Studio.

L'ultimo passaggio consiste nell'utilizzare il modello presentato nella parte della demo relativa allo streaming per classificare i dati. Prima di essere classificati, i dati possono anche essere acquisiti e archiviati per analisi future. I dati classificati vengono quindi preparati per la visualizzazione.

Guarda il video: Dashboard per le analisi - Demo di Talend IoT.

Conclusione

L'aspetto più interessante di questo esercizio è il fatto che non è richiesta alcuna codifica manuale. Tutte le operazione, dalla creazione del servizio REST per acquisire i dati al job Spark Streaming che implementa un modello di apprendimento automatico, sono state progettate utilizzando un ambiente utente grafico. Se non hai ancora guardato la demo, ti invitiamo a farlo per scoprire quanto è semplice utilizzare Talend per i tuoi progetti di big data.

Partecipa alla discussione

0 Comments

Scrivi una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *