BigML, le machine learning pour tous
Introduction
Nous allons maintenant apprendre à utiliser un outil de machine learning ne nécessitant l’usage d’aucune ligne de code et qui pourra donc :
-
vous aider à vous familiariser rapidement avec certaines pratiques décrites dans cet ouvrage, avant d’essayer de les implémenter en R,
-
permettre à un lecteur pressé ou à un manager d’acquérir un savoir-faire réel complémentaire au simple survol des chapitres des techniques de ce livre,
-
vous aider à identifier les modèles et les paramètres qui semblent fonctionner sur un dataset, avant de les introduire dans vos codes R. C’est d’ailleurs comme cela que nous utilisons cet outil, en l’appliquant sur une petite partie des données à notre disposition, pour nous faire une idée rapide (en une demi-heure) de ce que les données en question peuvent inférer sans transformation notable.
Créé en 2011 par Francisco J. Martin, BigML est une plateforme de machine learning en mode cloud. Elle permet de réaliser les grandes étapes d’exploration et de transformation des données, mais permet surtout la création rapide de modèles et de prédictions sans connaissance particulière en data sciences. En quelques clics, il est possible de construire et d’évaluer plusieurs modèles d’apprentissage...
Pour qui ?
Le nombre de profils disponibles et formés aux outils de machine learning ne suffit pas aujourd’hui à couvrir la demande des entreprises au niveau national comme international. Pour les entreprises, ces profils à fort potentiel font l’objet d’une grande concurrence et les ressources pour monter une équipe en data science sont souvent difficiles à obtenir.
A priori, on pourrait penser qu’une plateforme de machine learning est forcément un outil destiné à des "initiés", mais l’un des points forts de BigML est justement de s’adresser au plus grand nombre en proposant de démocratiser les pratiques du machine learning via un outil simple à prendre en main.
L’outil limite le nombre de concepts à appréhender et accélère l’apprentissage de l’utilisateur. L’outil s’adresse, de ce fait, à un public plus large que les seuls data scientists, tel que :
-
les chefs de projet et les business managers souhaitant démarrer un projet data dans leur service (marketing, ventes, finance, recherche) de manière autonome, sans avoir à recourir au service informatique de l’entreprise,
-
les développeurs, en particulier au travers de l’API de BigML, qui permet un déploiement rapide des modèles en entreprise,
-
les étudiants et enseignants...
Présentation de la démarche
Nous n’allons pas détailler toutes les options disponibles dans l’outil BigML, mais au contraire mettre en avant la facilité de mise en œuvre d’un processus de machine learning standard au travers de l’utilisation de ses fonctions de base. Il existe diverses autres plateformes de machine learning qui intègrent l’usage de R, comme ©Dataiku, souvent plus complètes, mais plus difficiles à maîtriser. Nous avons choisi de vous présenter BigML pour sa rapidité de prise en mains et évidemment pour sa capacité à documenter le process manuel que vous aurez utilisé (ce qui vous permettra de le reproduire dans votre contexte R).
À travers cet exercice, voyons comment passer d’une source de données à une prédiction sur BigML. Ce processus comporte plusieurs étapes :
-
La sélection d’une source de données
-
La création d’un jeu de données (dataset)
-
La division en jeux d’entraînement et de test (split)
-
La création d’un modèle
-
Son évaluation
Commençons sans plus attendre. Après la création de votre compte personnel sur le site https://bigml.com, connectez-vous et accédez à la plateforme.
Manipulation des sources de données
Dès le premier contact avec l’outil, vous serez en terrain connu.
L’onglet Sources
L’outil se présente comme un tableau de bord. L’onglet d’accueil liste les Sources de données disponibles. Un nouvel espace de travail est proposé à l’utilisateur (appelé BigML Intro Project) et permet d’accéder à plusieurs sources de données de démonstration. Un nouvel utilisateur peut donc immédiatement explorer les fonctionnalités à sa disposition. Pour cette partie de l’ouvrage, nous utiliserons le fichier .csv "Diabetes Diagnosis" comportant des données biologiques et physiologiques de plusieurs femmes issues de la population des Indiens Pima (aux États-Unis). Ces données font partie d’une étude sur le diabète et ont été publiées par le National Institute of Diabetes and Digestive and Kidney Diseases.
Pour chaque source sont indiqués les éléments suivants :
-
Son extension : BigML gère en entrée les formats de fichiers .csv, .json, .txt, .xls (.numbers pour ©Apple). Il peut aussi accueillir des formats compressés comme les fichiers .zip, .gz ou .bz2. Disposer d’un outil capable de traiter divers formats en un seul lieu est bien commode.
-
Son nom, le nombre de variables...
Création de projets
BigML offre la possibilité de disposer d’une vue par projet pour vous permettre d’organiser et de segmenter vos espaces de travail. Il est possible de démarrer un nouveau dashboard par client ou problématique métier. Cela permet aussi de repartir de zéro lorsque vous perdez le contrôle de la gestion de votre espace de travail.
Chemin des projets
Notre conseil au sujet des noms de fichiers et des versions : pour maîtriser vos processus de machine learning, il vous faut être vigilant à la nomenclature et aux versions de vos fichiers (qu’ils soient importés, générés ou exportés). Vous allez rapidement utiliser de nombreuses sources à partir desquelles plusieurs datasets seront configurés. Il s’en suivra la multiplication du nombre de datasets et différents essais de modèles. Rapidement, vos dashboards se rempliront et vous ne serez plus en capacité de distinguer vos réussites de vos échecs. Dans ces conditions, il est difficile d’espérer obtenir des processus reproductibles : “tenez les comptes” et n’hésitez pas à rédiger une note explicative au sujet de votre organisation, surtout si vous travaillez à plusieurs.
Manipulation de datasets
L’onglet Datasets liste l’ensemble des datasets générés à partir de vos sources, ainsi que les différents types de modèles de machine learning réalisés sur les datasets.
Liste des datasets
Lorsque l’on visualise un dataset, les données sont présentées sous une forme descriptive avec un aperçu des distributions et de leurs principaux indicateurs (médiane, écart-type, coefficient d’aplatissement…). Pour chaque variable, on trouve : son nom, son type, l’effectif total, le nombre d’erreurs ou de données manquantes, et une représentation visuelle de celle-ci. Le point le plus important à cette étape du processus est de vérifier que l’outil a bien identifié la variable à prédire (ici Diabetes). On parle aussi de variable "cible" (le pictogramme qui le symbolise est une mire).
Visualisation d’un dataset
Division du jeu de données
Le premier pictogramme (à droite du nom de votre dataset en forme d’histogramme) ouvre le menu de transformation et d’échantillonnage.
Cliquez sur ce lien pour accéder aux paramètres du split de votre jeu de données. Le chemin > 1-Click sans paramétrage se trouve à l’écran précédent (dans la vue principale Dataset). Par défaut, le split est dans les proportions 80/20 et s’avère aléatoire.
Emplacement de la fonction split
Dans cette partie paramètres du split, on indique la répartition entre jeu d’entraînement et de test. En d’autres termes, vous fabriquez votre modèle sur 80 % des données issues de votre dataset et vous évaluez la performance de celui-ci grâce aux 20 % restants.
Vous pouvez ajouter un seed pour fixer le comportement de votre générateur d’aléa ou faire le choix d’une division linéaire de votre dataframe (utilisée habituellement quand on a l’assurance d’avoir un jeu déjà "randomisé").
Nous vous incitons à vous poser d’ores et déjà la question de la nomenclature choisie pour les fichiers qui vont être alors générés (référez-vous à ce que nous en disions quelques lignes plus...
Création d’un modèle de machine learning
Nos données se prêtent bien à l’utilisation d’un arbre de décision. Notez que dans BigML les arbres de décision ont été nommés Models et les forêts aléatoires Ensembles (à ne pas confondre avec les modèles dits "ensembles" qui peuvent correspondre à plusieurs types de modèles). Les modèles nouvellement créés s’affichent dans l’onglet correspondant à leur nature. Comme notre modèle fait partie de la catégorie des modèles supervisés, il sera placé dans l’onglet Supervised du dashboard.
1-Click Arbre de décision
BigML a maintenant généré un premier modèle en décidant lui-même des paramètres (pour démontrer l’efficience de l’outil, nous avons fait le choix de passer par le chemin rapide).
1. Paramétrages des modèles
Bien évidemment, vous pouvez paramétrer en détail tous vos modèles. Dans cet arbre de décision, on pourrait, par exemple, travailler sur le nombre de nœuds, les instances conservées, le type de tirages.
Le bouton permettant l’accès à l’espace de paramétrages de votre futur modèle se trouve au sein de la vue de votre dataset...
Évaluation du modèle
Maintenant que nous avons réalisé notre premier modèle, nous souhaitons l’évaluer sur notre dataset de test. Pour cela, BigML va utiliser le modèle nouvellement construit pour s’en servir de modèle de prédiction sur les 20 % de données de test.
Fonction d’évaluation du modèle
BigML vous demande de vérifier le modèle à utiliser (colonne de gauche) et le jeu de données sur lequel l’appliquer (colonne de droite). À cette étape, il est utile de renommer son évaluation pour lui donner un nom plus personnel et qui nous permette par la suite de distinguer nos différents essais.
Pour lancer l’évaluation, cliquez sur le bouton Evaluate en bas à droite.
Écran de paramétrage de l’évaluation
Après avoir comparé les résultats de sa prédiction avec la réalité du jeu de test, BigML nous fournit une matrice de confusion et plusieurs indicateurs typiques des data sciences, comme le taux d’accuracy ou la précision.
Évaluation du modèle
Attention à bien choisir la classe déterminée comme "positive" en haut de la matrice de confusion. Suivant que vous demandiez à évaluer (donc à prédire correctement) le nombre de femmes ayant un diabète...
Partage de ses modèles
Avec l’option Secret link dans l’onglet Privacy de votre modèle, vous pouvez partager vos modèles via un lien privé ou une balise iframe (utile pour insérer ses résultats sur un site web ou un blog). Les utilisateurs externes pourront alors consulter et manipuler l’ensemble du dashboard relatif à la vue de votre modèle : les représentations du modèle, le classement des variables, les inputs pour manipuler les taux de confiance, etc.). L’option NON-CLONABLE permet quant à elle de rendre ou pas vos modèles exploitables par d’autres utilisateurs.
Partage des modèles
Réalisation d’une première prédiction
Pour terminer cet exercice, nous effectuerons une prédiction en utilisant notre modèle sur de nouvelles données non encore utilisées dans notre processus (ces données proviennent en fait d’une extraction effectuée en amont à partir du dataset d’origine, que nous avons réservée pour simuler l’établissement d’une prédiction sur de nouvelles données).
Nous appliquons donc maintenant notre arbre de décision sur des données en simulant la réalité quotidienne de l’exploitation d’un tel modèle (c’est-à-dire sur des instances qui ne possèdent aucune valeur dans la colonne Diabetes).
Cliquez sur Batch prediction pour appliquer votre modèle sur un ensemble d’instances.
Chemin Batch prediction
Vous ne trouvez pas votre dataset ? Êtes-vous sûr d’avoir importé la source et converti celle-ci en dataframe dans BigML ?
Paramétrage de la prédiction
Quand les noms des variables du modèle et du jeu de données à prédire diffèrent, il faut veiller à renseigner leurs correspondances via l’interface BigML.
Terminez en cliquant sur le bouton Predict.
Correspondance des variables
BigML affiche maintenant un aperçu du nouveau dataset. On constate...
Utilisation du modèle dans R
Les modèles qui sont les plus intéressants à prototyper avec BigML, dans l’optique de les utiliser en R, sont les réseaux neuronaux. En effet, avec le package caret, nous avons vu qu’il ne faut que quelques lignes de code pour créer et exécuter un modèle R sur des données tabulaires similaires à celles que BigML manipule (référez-vous au chapitre Deep learning avec TensorFlow et Keras, section Mise au point d’un modèle de référence en utilisant caret).
Il est donc inutile de récupérer des informations sur les modèles BigML les plus simples. À l’inverse, la mise au point des paramètres principaux d’un réseau neuronal est délicate. Il est très intéressant d’effectuer quelques essais sur BigML avec des nombres de couches différents, des nombres de neurones différents, diverses fonctions d’activation, divers taux d’apprentissage (learning rate)…
L’idée est simple :
-
effectuer divers essais sur BigML,
-
reproduire le workflow BigML qui a le mieux fonctionné sur votre environnement TensorFlow2/Keras comme point de départ de la suite de votre étude.
Vous êtes aidé en cela par BigML qui vous donne la possibilité d’exporter le script complet des actions...