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ématique 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 faite 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.

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ées en Machine Learning (Machine Learning Engineer, Data Scientist à dominante Machine Learning, etc.), faites du Python ! Tous les frameworks 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 quant au langage précisé dans les descriptions. Vous aurez une bonne idée de la demande à 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 faite 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, elles ont en général leur propre syntaxe de récupération. C'est le cas pour la majorité des boîtes.
Il existe des hubs de jeux de données publics qui peuvent parfois être utiles, a minima 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 de consolider cet accès et la 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’œil ouvert pour tout nouveau canal de récupération de données qui peut aider à résoudre votre problème, quitte à ajouter de nouveaux capteurs par exemple, 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 !

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.
À nouveau, la guerre fait rage. Torch, Theano, Caffe, mais surtout Tensorflow et Scikit-Learn sont les librairies les plus utilisées 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.

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.

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é par le temps, si vous voulez tester rapidement la viabilité d’un projet ou encore si vous n’avez pas besoin de performances énormes, 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és dans le cloud, permettent directement de travailler sans code sur tous les aspects évoqués plus haut, notamment la partie modélisation et la mesure de performance.

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.