Test du Deep Learning avec un cluster H2O, les notebooks H2O Flow et l'outil collaboratif H2O Steam ...

Test du Deep Learning avec un cluster H2O, les notebooks H2O Flow et l'outil collaboratif H2O Steam ...

Karim le 23 février 2017


J'ai reçu ce message m'indiquant que la nouvelle version de Dataiku Datascience Studio était sortie en version 4.1. Dataiku a été fondée en 2013 à Paris par quatre co-fondateurs : Florian Douetteau, le PDG actuel, est l'ancien directeur de la R&D de l'éditeur français de moteur de recherche Exalead, société d'où est également issu Clément Stenac, un des trois autres cofondateurs. Après s'être développée pendant deux ans sur ses fonds propres, Dataiku a levé trois millions d'euros auprès des fonds d'investissement Serena Capital et Alven Capital.Après son lancement en France, Dataiku s'implante à partir de 2015 aux États-Unis pour profiter de l'essor du marché américain de l'analyse des données. Sortie en février 2014, la première version visait à permettre aux entreprises de valoriser leurs données grâce aux méthodes prédictives. Les deux versions ultérieures promettent d'une part de faciliter le travail de préparation de données et de l'autre d’accélérer le déploiement sur des infrastructures Big Data. Dataiku DSS est proposé en version gratuite et open source ainsi qu'une autre payante proposant des connecteurs propriétaires vers des bases/entrepot de données ou des distributions Spark/Hadoop.




Je démarre donc Dataiku DSS sur une instance dans Cloudwatt =>




Je commence par importer un dataset réel d'Etalab sur la qualité des eaux de baignades =>




il est alors uploadé dans Dataiku :




et Dataiku me propose un apercu du dataset sur la base d'un schema de donnée autodetecté (mais que l'on peut parametré bien évidemment) :




Et je peux déjà configuré un graphe rapide sur la base de ce dataset :





Je peux déjà commencer une première prédiction pour générer un modèle réutilisable et par le biais de plusieurs phases de training des données : ici entre un modèle utilisant les forêts aléatoires (chaine de plusieurs arbres de décisions) et l'algorithme de regression logistique : application à une prédiction sur l'origine de l'eau (rivière, etc ...) :




et un algo des forêts aléatoires préconisés par Dataiku après entrainement des données :







Je vois en détail le résultat de la forêt aléatoire :





et avec biensûr une modification du dataset y incluant les prédictions (nouvelles colonnes) aussi bien pour la regression logistique que pour les forêts aléatoires :





C'était une rapide vue mais maintenant j'ajoute des plugins et notamment géographiques (pour pouvoir construire des cartes) :




et je nettoie le datasets en ne conservant que les colonnes qui m'intéresse (et notamment en générant une colonne géopint fédérant les lattitudes+longitudes) :




Ce qui permet déjà de visualiser dans un premier temps le taux de fréquentations des points de baignade sur le territoire national :



Je relance une prédiction sur la base de ce dataset modifié :





Le but ici est la prédiction des résultats d'entérocoques sur ces points de baignade (ici deux algorithmes utilisés qui sont la regression Ridge et les forêts aléatoires) :


 


Et je peux obtenir ces cartes (qui ici sont très proches des statistiques de fréquentation de ces poinst de baignades) :







Le tout est exportable sous forme de notebook iPython avec le code qui a servi à la construction de ce modèle de prédicition qui est prégénéré :


Je fais un focus sur iPyvolume qui permet de représenter en 3D des nuages de points à l'aide des notebook Jupyter notamment (la visualisation étant une des pricipales composantes du big data) :


Lancement d'un serveur notebook Jupyter dédié à la datascience sur une image docker officielle dans Cloudwatt :




et j'utilise iPyvolume pou tester la représentation 3D de plusieurs datasets :








Mais avec la bibliothèque python Vaex, on peut aller beaucoup plus loin pour visualiser des énormes volumes de données stockées dans un datalake (au sein d'un cluster hadoop par exemple) :


 

Exemple encore au sein du notebook Jupyter lancée dans un container docker au sein de cette instance cloudwatt : récupération d'un ensemble de données astronomiques au format hdf5 et visualisation avec vaex =>





Exemple également avec la visualisation des Taxis à Manhattan :


La plateforme open source d'intelligence artificielle H2O.ai (qui devrait bientôt figurer dans le marketplace Azure => http://docs.h2o.ai/h2o/latest-stable/h2o-docs/azure.html ) propose plusieurs outils

pour combiner à l'aide de plusieurs bibliothèques en Python et R du Machine Learning et du Deep Learning (tout en se couplant à Apache Spark et aux clusters Hadoop) :


 



En téléchargeant le jar exécutable de la plateforme H2O je peux lancer un cluster à deux noeuds au d'une grosse instance Ubuntu 16.10 64 Bits dans Cloudwatt :


Ce sont les IP privées que je convertis avec l'IP flottante attribuée dans cloudwatt ... On aboutit à ce type de structure :




Je n'ai pas de carte GPU dans cloudwatt (ca arrivera peut être un jour pour permettre à Tensorflow de produire de super temps de calcul) ...


J'en profile pour charger un gros dataset dans le cluster H2O relatif à un historique de charts musicaux et qui va me permettre de lancer un test

dans le notebook H2O Flow :


 

H2O Steam est une sorte d'outil collaboratif pour datascientists et business analysts afin de travailler autour d'un même projet :




Déploiement de celui-çi dans mon instance Ubuntu :


Celui-çi permet d'afficher l'état du cluster et des noeuds H2O et visualisable dans H2O Flow :




A l'aide de ces noeuds, je peux utiliser deux démos : la première étant de prédire si une chanson est sortie avant ou après 2004 sur la base d'un jeu de données chargé =>




Le second est de prédire des retards de vols d'avion toujours sur la base d'un jeu de données disponible :


 

J'ai exécuté les différentes phases proposées dans ces deux notebooks et cela débouche sur la génération de modèles d'apprentissage.





Application à la génération de projets dans H2O Steam :





Modèle prêt à être déployé dans H2O Steam :




Ce qui aboutit à la publication d'un service de prédiction par Steam prêt à être consommé par un business analyst :




Exemple ici avec la prédiction d'un retard de vol entre les aéroports de Los Angeles et de New York, le 10 du mois et le 3ème jour de la semaine en 2008 : réponse positive (probabilité = 1.0) =>


Même si on aurait pu le deviner vu le caractère extrèmement chargé de cette ligne aérienne




ou entre les aéroports de Buffalo et Atlantic city (ligne aérienne peu commune) :




On génére le même type de service pour le service de prédiction des titres musicaux afin de centraliser l'ensemble de service de prédiction/classification/traitement sur les données au sein d'H2O Steam. La plateforme H2O proposant également DeepWater pour se plugger aux noeuds dôtés de cartes GPU dans un cluster avec Spark et Hadoop via le gestionnaire de cluster Yarn ...







Report Page