Appliquer l’apprentissage automatique à vos capteurs IoT

Appliquer l’apprentissage automatique à vos capteurs 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.

Si vous avez déjà regardé notre démo sur l’Analyse du streaming de données IoT (« Internet des objets ») en temps réel, vous vous demandez sûrement comment nous avons entraîné notre modèle à prédire l’activité de l’utilisateur. Mais parlons d’abord du contexte de la démo, de la façon dont nous classons les données, puis du choix du modèle qui convient.

Le contexte

L’objectif de la démo IoT est de démontrer les capacités de Talend en matière de streaming en temps réel et d’apprentissage automatique. Cela signifie que Talend reçoit les données de l’accéléromètre à partir de téléphones mobiles en temps réel, pousse les données dans une file d’attente de messages, et effectue un apprentissage automatique pour classer les données à des fins analyse. Ai-je précisé que tout cela s’effectuait sans codage manuel ?

Pour ce qui est du traitement, un endpoint REST est créé via Talend afin d’y envoyer les données du capteur. Les données du capteur sont analysées et envoyées dans une file d’attente de messages (Kafka). Une fois les données dans la file d’attente de messages, une tâche Talend Big Data Streaming lit les messages à partir de la file d’attente via une fenêtre glissante, envoie les données dans un modèle d’apprentissage automatique, puis prépare ces données pour l’affichage.

Afficher les données

Les données qui sont traitées proviennent de l’accéléromètre d’un appareil mobile. Nous traitons plus spécifiquement l’accélération linéaire des axes X, Y et Z. Après une rapide et grossière analyse d’un graphique présentant les données du capteur, nous pouvons observer que :

L’accélération pour chaque axe est représentée dans le graphique en m/s2. Nous pouvons déduire trois phases d’activité à partir de cette représentation visuelle : faible, élevée et moyenne, respectivement. Pour traduire ces informations en un modèle d’apprentissage automatique, nous souhaiterions que le modèle choisi soit capable de classer les données du capteur dans la catégorie faible, moyenne ou élevée. Dans le cas de l’apprentissage automatique, la classification désigne l’identification d’une catégorie à laquelle appartiennent les observations. Pour commencer l’exercice de sélection d’un modèle de classification à partir de Spark MLib, nous examinons des modèles populaires : Classification naïve bayésienne, Régression logistique et Modèle de forêts aléatoires.

Choisir un modèle

Le modèle de classification naïve bayésienne est plus généralement employé pour la classification de textes, et puisque nous avons affaire à des nombres décimaux, il ne convient pas vraiment. Le modèle de régression logistique, quant à lui, ne prendra pas en charge la classification multi-classes dont nous avons besoin pour l’activité faible, moyenne et élevée. Enfin, le modèle de forêts aléatoires nous permet de classer en fonction de chaque axe. Le modèle de forêts aléatoires est également efficace pour des ensembles de données plus importants et peut prendre en charge des milliers de variables d’entrée.

Le modèle de forêts aléatoires prend la base d’entraînement et effectue des échantillonnages aléatoires pour créer des sous-ensembles de données, ou des « arbres » aléatoires. Après avoir créé un grand nombre d’arbres, il génère une « forêt » aléatoire. Le fait d’avoir beaucoup d’arbres est avantageux, car la prévision de classification des données sera plus précise. Par exemple, si sept des dix arbres de la forêt suggèrent qu’un événement particulier du capteur est la marche, la classification devrait être la marche.

Talend Real-Time Big Data Platform est proposée avec des composants d’apprentissage automatique intégrés. Pour se familiariser avec le modèle de forêts aléatoires, le mieux est de s’entraîner avec des classifications manuelles. Cela signifie que nous prenons les données de notre analyse rapide et grossière et que nous y ajoutons une description d’activité. Cette base d’entraînement sera utilisée par un encodeur de modèle pour produire un modèle qui sera à son tour utilisé pour classer l’activité pendant le streaming. La description dans la base d’entraînement sera associée à une activité humaine, à savoir Repos, Marche, Course. Apparence de la base d’entraînement :

La base d’entraînement spécifiquement utilisée pour générer ce modèle comptait environ 150 événements pour chaque activité. En prenant le modèle généré et en comparant les descriptions classées manuellement avec les résultats, on a obtenu une précision de 97 %, ce qui correspond aux attentes.

Pour évaluer la précision du modèle d’apprentissage automatique, on emploie la technique de validation croisée par division en K échantillons et on exécute 10 exercices d’entraînement individuels. Chaque exercice prend une partie de la base d’entraînement, qui est ensuite utilisée comme données de validation. Cette technique a donné une précision de 95 % avec le modèle que nous avons sélectionné. Dans un prochain blog, nous étudierons cette technique de validation et expliquerons comment la développer avec Talend Studio.

La dernière étape consiste à utiliser le modèle pour classer nos données dans la partie streaming de la démo. Avant d’être classées, les données peuvent également être capturées et stockées pour constituer une archive en vue d’une analyse ultérieure. Les données classées sont ensuite préparées pour l’affichage.

Voir la vidéo : Tableau de bord analytique — Démo Talend IoT

Conclusion

Ce qu’il y a de plus remarquable dans cet exercice, c’est qu’aucun codage manuel n’est nécessaire. Tout a été conçu avec un environnement utilisateur graphique, de la création d’un service REST pour acquérir les données, jusqu’à la tâche Spark Streaming appliquant un modèle d’apprentissage automatique. Si vous n’avez pas encore vu la démo, contactez-nous et nous vous montrerons avec quelle facilité vous pouvez utiliser Talend pour votre prochain projet de Big Data.

Participer aux discussions

0 Comments

Laisser un commentaire

Your email address will not be published. Required fields are marked *