TECH NEWS
La data science se met au service de la production alimentaire décentralisée avec Anaconda
Cette étude est réalisée avec l’aide d’un des écosystèmes de data science très populaire et qui a déjà conquis des millions d’utilisateurs, la distribution Anaconda.
August 9, 2017
Depuis Avril 2017, Myfood et Agile Partner se sont rapprochés dans le cadre d’une collaboration. Durant une mission de 4 mois, Angelo Pacifico a apporté un éclairage technique à une des questions que se posait la jeune start-up.
Myfood se décrit comme une entreprise innovante dans le domaine de la permaculture et des serres aquaponiques pour particuliers. C’est dans ce contexte stimulant que le projet s’est déroulé. Comme dans toute expérience scientifique, Agile Partner – à l’aide de ses outils de data science – a apporté des réponses concrètes à une problématique très précise.
Mickael Gandecki un des membres fondateurs de Myfood précise :
« Dans notre conception, nous avons voulu mettre en avant une approche intégrée, simple à prendre en main. Minimiser la maintenance au quotidien fût présent très tôt dans le cahier des charges. Cette contrainte forte nous a invité à revoir plusieurs fois nos choix techniques. Loin de vouloir à tout prix une expérience très ouverte et personnalisable, l’envie première de nos pionniers est de se sentir toujours guidée. C’est pour cela que l’aspect ‘intelligent’, en toute transparence, joue un rôle majeur aujourd’hui dans notre solution »
C’est cette idée de transparence qui a aussi présidé à cette collaboration. Cette étude est réalisée avec l’aide d’un des écosystèmes de data science très populaire et qui a déjà conquis des millions d’utilisateurs, la distribution Anaconda.
Analyse par Angelo Pacifico – Directeur chez Agile Partner
Carte d’identité
Nom : Anaconda
Genre : Distribution gratuite Python pour la datascience
Première version : 0.9, le 20 février 1991 – Dernière version en date : 4.4, le 31 Mai 2017
Anaconda est distribué et maintenu par Continuum Analytics.
L’écosystème Anaconda s’appuie, comme vous pouvez le voir dans le diagramme ci-dessous, sur la distribution gratuite sous licence BSD. La fondation de cette distribution utilise le langage Python ainsi qu’un gestionnaire de paquet et de version appelé Conda.
Conda permet d’installer de nombreux outils pour le développement avec python et on dénombre à ce jour, plus de 1000 paquets destinés au data science.
Anaconda est utilisé partout dans le monde pour les enseignements scientifiques et techniques mais aussi dans les offres des grands partenaires.
Nous citerons ici Microsoft qui l’intègre dans sa nouvelle mouture de SQL server 2017. Il devient possible de faire des traitements de datascience comme le Machine Learning, sans que les données aient à quitter le serveur qui les hébergent et tout en gardant le paradigme des procédures stockées bien connues des développeurs. Cette approche élégante préserve le caractère sensible que représentent les données pour ce genre de traitement.
Anaconda et le projet de data science avec Myfood
Dans ce contexte, Myfood souhaitait anticiper les besoins en actions de maintenance en observant finement la consommation de la pompe de relevage équipant les serres aquaponiques.
Pour atteindre cet objectif une expérience a été réalisée, s’articulant autour de la pompe de relevage et son boîtier de commande. Un circuit mettant en œuvre la pompe simulait le filtre protégeant la pompe avec l’aide d’une vanne de contrôle reproduisant l’encrassement du filtre. La charge consommant l’eau délivrée par la pompe a été simulé par une vanne ainsi que la hauteur de relevage.
La première partie du projet qui concernait l’acquisition des mesures a été réalisée avec l’aide d’Anaconda et de Jupyter Notebook. Le code a été écrit en langage Python et l’interface avec le système d’acquisition était disponible sous la forme d’une librairie écrite dans ce même langage. Le résultat est un fichier csv qui a été utilisé pour l’analyse des données.
Anaconda pour la visualisation et la compréhension des données
Anaconda permet de charger les données en mémoire grâce à la puissante librairie qu’est Pandas. Cette librairie permet de filtrer, de traiter les données avec des opérations avancées « feature engineering » comme la mise à l’échelle, le traitement des données manquantes et le filtrage des mesures entachées par du bruit.
Matplotlib offre un moyen riche de visualisation des données grâce aux matrices de graphiques permettant de comprendre visuellement les données et la corrélation entre les différentes variables du système analysé. La puissance de la visualisation offrant un moyen pragmatique de les découvrir tout en restant dans le cadre que sont les Jupyter Notebook. Ce cadre permet de manipuler les librairies Python de la même façon et offre la même expérience aux utilisateurs aux travers de différents projets. Nous qualifierons les Jupyter Notebook comme le nouveau web pour les data scientists en faisant le rapprochement avec le CERN et les débuts du web.
Anaconda pour la modélisation des données
Anaconda avec la librairie Scikit Learn offre tous les outils de machine learning permettant d’analyser et de découvrir des patterns dans les données. Pour ce projet les arbres de décision ont été utilisés pour prédire la valeur du débit de la pompe en fonction du courant mesuré ainsi que la charge du filtre. Scikit Learn permet aussi de construire un jeu de données pour l’apprentissage et le test. Cette librairie offre une implémentation permettant de faire une validation croisée sur les données d’apprentissage tout en faisant varier les hyper paramètres de l’apprentissage pour trouver le modèle optimal. Le score du modèle permet de mesurer ses capacités de prédiction et de le confronter aux données de test et de voir si le modèle over fit.
Tous les notebooks qui ont permis de réaliser ce projet sont sur Github qui supporte nativement leur visualisation et que vous pouvez retrouver en détail ici.
On vous le dit !
La distribution Anaconda est un écosystème riche pour la datascience. La distribution est gratuite et se décline sur toutes les plateformes clientes et serveurs. Elle offre un environnement agréable et cohérent au travers des librairies qu’elle intègre. Anaconda permet de rapprocher les équipes de data scientists, les équipes DevOps et les business analystes au travers d’une plateforme commune. C’est un passage incontournable pour les étudiants en datascience et pour de nombreux partenaires qui l’intègrent dans leur offre. La très sérieuse agence Darpa qui est le R&D de la défense américaine a investi dans la société Continuum Analytics pour continuer à développer des outils innovants pour la datascience s’appuyant sur le langage Python. Il suffit pour s’en convaincre de regarder les derniers projets en relation avec le big data ou les réseaux de neurones profonds comme ‘TensorFlow’ développé par Google et qui ont été intégré dans l’écosystème.
Dans le contexte de ce projet avec Myfood, Anaconda a permis d’aller rapidement à l’essentiel et de tester rapidement en mode laboratoire les hypothèses et de communiquer les résultats au client. Anaconda a servi de cadre pour la formation qui a été suivi tout au long du projet.