• 10 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 20/09/2019

Sélectionnez les outils de Data Science appropriés

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Chacune des étapes du travail du Data Scientist possède des outils spécifiques associés. Ce chapitre a pour vocation de vous présenter les choix les plus populaires pour chacun des domaines, et surtout des critères qui vous permettront de choisir selon votre propre problématiques et vos contraintes.

"R ou Python ?"

Vous en avez sans doute déjà entendu parler, mais la guerre fait rage entre ces deux langages pour déterminer lequel sera dominant sur le marché de la Data Science.

Pour résumer, R, créé en 1993, est le langage historique des statisticiens, métier qui représente l’ancêtre de la Data Science. La transition s’est ainsi faîte naturellement et vous trouverez votre bonheur dans ce langage en terme de fonctionnalités utiles au bon développement de votre projet et des interfaces pour (quasiment) tous les outils que nous évoquerons par la suite.

Python est aussi un “vieux” langage (1991). Il est devenu plus récemment le langage de référence pour tous les ingénieurs qui veulent effectuer rapidement des implémentations d’algorithmes mathématiques, entre autre de Machine Learning.

Quel est le langage le plus recherché sur Google ?
Quel est le langage le plus recherché sur Google ?

Une guerre sans pitié sévit sur internet depuis quelque temps pour déterminer lequel des deux langages il faut utiliser notamment pour l’efficacité mais aussi (et surtout) pour des raisons pratiques.

Avec l’expérience voilà ce que je peux vous dire pour vous aider à faire votre choix :

  • Si vous voulez vous orienter vers des professions qui sont fortement orientés en Machine Learning (Machine Learning Engineer, Data Scientist à dominante Machine Learning, etc.), faites du Python ! Tous les framework existants, les nouveaux algorithmes sont écrits en Python. La communauté est aussi beaucoup plus importante sur internet pour ces thématiques.

  • Si vous vous orientez vers un métier où les statistiques jouent un plus grand rôle (pour faire des analyses exploratoires, des corrélations, etc.) Il est plus judicieux de travailler sur R qui permet d’être très efficace sur ce terrain. Notamment pour un data analyst, R constitue un très bon environnement de travail.

  • Dernier conseil, si vous savez dans quel secteur et activité vous souhaitez travaillez, faites une recherche sur les demandes d’emploi dans ce métier et les préférences quand au langage qui sera précisé dans la description. Vous aurez une bonne idée de la demande quand à ce sujet.

Et pour les cours OpenClassrooms, quel langage est utilisé ?

Ce cours (et les autres du parcours Data Scientist) étant orienté principalement Machine Learning, on utilisera le langage Python. R intègre la plus grande partie des algorithmes que nous allons évoquer dans les prochains cours du parcours, et des wrappers quand ce n’est pas le cas (par exemple pour le deep learning) mais dans une optique métier à la fin du parcours, on favorisera l’utilisation de Python.

La récupération des données

La première étape est donc de récupérer les données. Vous vous en doutez, cela dépend fortement de votre problématique : une voiture autonome générera des données à partir de ses capteurs, une entreprise de trading récupérera les données sur des outils de marché financier, etc. Pas de recette toute faîte donc. Voici quelques pistes un peu générales que je peux vous donner à titre d'inspiration :

  • Pour récupérer des données texte depuis des pages internet, vous devrez utiliser un outil de scraping comme scrapy en python par exemple

  • Si vous avez accès à des données structurées comme SQL, ils ont en général leur propre syntaxe de récupération. C'est en général le cas pour la majorité des boîtes

  • Il existe des hub de jeu de données publics qui peuvent parfois être utiles ou pour s'entraîner - allez faire un tour sur ce site pour avoir une idée 

De manière générale, si vous travaillez dans une boîte très centrée sur les données, ce ne sera pas votre travail que de consolider cet accès et récupération des données, mais celui du data architect, qui vous créera un datalake comme point d'entrée unique.

En revanche, dans tous les cas, gardez l'oeil ouvert pour tout nouveau canal de récupération de données qui peuvent aider à résoudre votre problème, quitte à ajouter de nouveaux capteurs par exemples, ou être original sur le type de données générées comme présenté dans le chapitre précédent.

Le nettoyage et l'exploration des données

En Python, l’écosystème Scipy est universellement utilisé avec ses librairies :

  • pandas pour créer des tableaux (ou "Dataframe") à partir de vos données brutes,

  • numpy pour gérer des matrices,

  • matplotlib pour générer des graphiques,

  • iPython pour les feuilles de calculs,

    Bien sûr, il en existe encore d'autres !

Utilisation de la librairie Maplotlib pour générer un graphique
Utilisation de la librairie Maplotlib pour générer un graphique

Cette famille de librairies est très utilisée et sert en réalité de base à beaucoup de frameworks de Machine Learning que nous allons utiliser par la suite. Nous allons les employer pour les cours du parcours Data Scientist d'OpenClassrooms.

La phase de modélisation (et l'évaluation)

Ici on rentre dans le vif du sujet pour le Data Scientist, et pour ce cours, c’est à dire le Machine Learning et le travail de modélisation.

Ici à nouveau, la guerre fait rage. Torch, Theano, Caffe mais surtout Tensorflow et Scikit-Learn sont les librairies les plus utilisés pour la modélisation. Dans ce cours, le choix a été fait d’utiliser Scikit-learn car il est plus facile d’accès et implémente directement et de manière didactique les différents algorithmes d’apprentissage automatique que nous allons étudier.

Recherche de
Recherche de "TensorFlow" et Scikit-Learn sur Google

On dirait que Tensorflow semble plus populaire et possède une communauté plus active, pourquoi ne pas avoir utilisé ce framework dans les cours ?

En effet, Tensorflow est plus populaire, mais Scikit-Learn est beaucoup plus simple d’accès. Dans un objectif pédagogique, c’est le choix évident pour aborder nos différentes thématiques. Mon conseil est de se familiariser avec les deux. Scikit-Learn permet de rapidement tester les modèles de bases utilisés en Data Science. Tensorflow permet plus de flexibilité dans l’implémentation et permet d’aller plus loin, notamment grâce à Keras, pour la construction d’algorithmes de Deep Learning.

Le déploiement et la mise en production

La manière la plus simple d’effectuer une mise en production est d’exporter notre modèle final et de le rendre accessible sous forme d’API sur un serveur.

Cependant comme évoqué précédemment, cette partie peut rapidement s’avérer laborieuse lorsqu’on travaille dans un environnement réel. La quantité de données, la rapidité d’exécution des calculs, la tolérance aux pannes sont autant d’exigences qui nécessitent de s’appuyer sur des outils robustes et spécialisés.

L’image ci-dessous représente une partie de l’écosystème Hadoop avec les différentes librairies qui répondent chacune à une utilisation spécifique de mise en place d’architecture Big Data.

L'éco-système Hadoop est très fournit et répondra à tous vos besoins pour la mise en production
L'éco-système Hadoop est très fourni et répondra à tous vos besoins pour la mise en production

Et pour les cours OpenClassrooms, quelles sont les librairies utilisées ?

Ce cours est centré sur le travail de modélisation du Data Scientist, le Machine Learning, et non sur la mise en place d’une architecture en production. Pour plus d’informations sur ce sujet, je vous invite à consulter le parcours DataArchitect, qui s'occupe en détail de la plupart des questions concernant la création du data lake et de la mise en production sur des Big Data.

Passez par une API pour gagner en simplicité

Il existe une alternative si vous êtes pressés par le temps, si vous voulez tester rapidement la viabilité d’un projet ou encore si vous n’avez pas besoin de performances énorme, c'est de passer par une API. Les plus reconnues sont Google Cloud AI, Microsoft Azure Machine Learning et AWS Machine Learning. Ces logiciels, hébergé dans le cloud, permettent directement de travailler sans code sur tout les aspects évoqués plus haut, notamment la partie modélisation et la mesure de performance.

Aperçu de l'interface d'Azure Machine Learning
Aperçu de l'interface d'Azure Machine Learning

 Alors je peux suivre les cours d’OpenClassrooms sans utiliser de librairie de Machine Learning, simplement à l’aide d’une API ?

Bonne question ! La majorité du parcours Data Scientist se concentre sur le fonctionnement des algorithmes qui sont présentés, et non sur leur implémentation. Vous pourrez donc suivre les cours sans utiliser de framework code. Mais si vous souhaitez faire le parcours, vous devrez utiliser les outils spécialisés pour implémenter vous même les algorithmes !

En résumé

Pour chaque étape du travail du Data Scientist, il est important de se munir d’outils efficaces, mais surtout avec lesquels vous êtes à l’aise. Retenez aussi que le Machine Learning et la Data Science sont avant tout composés de concepts à appréhender correctement, indépendamment des outils de travail choisis.

Exemple de certificat de réussite
Exemple de certificat de réussite