R vs Python pour la Data Science : lequel choisir ?

Si vous commencez à vous intéresser au vaste domaine du Big Data, vous avez certainement entendu parler des deux langages les plus utilisés en Data Science, R et Python. Si la différence entre ces deux langages de programmation est floue pour vous, alors vous êtes tombés au bon endroit … Je vous explique tout, tout de suite !

#1. Qu’est ce qu’un langage de programmation ?

Définition d’un langage de programmation

Un langage de programmation est un peu comme une langue naturelle (français, anglais, …). Il va nous permettre de communiquer avec un ordinateur et de lui ordonner d’effectuer un ensemble d’actions précises. Le programmeur va ainsi écrire une suite d’instructions dans un fichier, compréhensibles par l’ordinateur, créant ce qu’on appelle un programme informatique.

Il existe deux types de langages de programmation, les langages compilés et les langages interprétés. 

Langages compilés

Avec un langage compilé, le programmeur va écrire des instructions dans un fichier, qu’on appelle le code source. Il devra ensuite utiliser un compilateur, qui va compiler et donc traduire ledit fichier en un langage compréhensible par l’ordinateur, qu’on appelle le langage machine. Une fois le fichier compilé, on obtient un exécutable (type .exe pour Windows), qui permettra d’exécuter le programme informatique sur l’ordinateur. À chaque fois que le programmeur modifiera son code source, il devra re-compiler son programme informatique pour pouvoir l’utiliser. Des langages compilés populaires sont par exemple les langages C et C++.

Langages interprétés

Avec un langage interprété, chaque instruction (chaque ligne) est directement traduite et exécutée. On ne parle plus de compilateur ici, mais d’interpréteur, qui traduira directement les instructions à l’ordinateur, et le résultat des instructions sera généré automatiquement. Les langages de programmation R et Python, dont on va parler, sont des langages de programmation dit interprétés.

D’accord, mais quelle différence entre les deux ?

La différence majeure entre langage interprété et langage compilé et que le langage interprété est plus “portable” et peut facilement être transféré d’un ordinateur à un autre, si le bon interpréteur est présent dessus. Ce n’est pas le cas du langage compilé qui peut nécessiter des ajustements pour pouvoir fonctionner sur un autre ordinateur. En revanche, les langages compilés sont généralement plus rapides que les langages interprétés.

#2. Pourquoi un Data Scientist utilise-t-il R et Python ?

Nécéssité d’un langage adapté à l’analyse de données

Un Data Scientist utilise R et Python car ce sont des langages interprétés, ce qui est beaucoup plus adapté que les langages compilés pour faire de l’analyse de données. En effet, le langage interprété va permettre de visualiser directement le résultat de chaque étape de l’analyse. De plus, les analyses nécessitent beaucoup d’allers-retours et de modifications des instructions, ce qui rend le langage interprété définitivement plus adapté. De plus, R et Python ont un ensemble d’instructions (de fonctions) déjà toute faites et bien adaptées à l’analyse de données, d’où leur popularité en Data Science.

Ce sont des langages dit open-source

Ce sont des langages gratuits et open-source. Ils sont donc accessibles à qui veut les utiliser, sans restriction, ce qui les a rendu populaires.

La communauté est active

Du fait qu’ils soient open-source, cela a rapidement créé une grande communauté d’utilisateurs. Cela permet d’échanger des idées, mais aussi de trouver de l’aide, surtout lorsqu’on débute avec ces langages. Et qui dit grande communauté, dit flopée de tutoriaux pour apprendre à programmer : ça non plus, ça n’est pas négligeable.

#3. Pourquoi utiliser R en Data Science ? 

Rstudio, une interface user-friendly

Un environnement de développement intégré (IDE) a été développé pour faciliter l’analyse de données avec R. Cette interface permet d’avoir son code source, la console R pour lancer les analyses, ainsi qu’un explorateur de fichier et diverses autres fonctionnalités qui rendent l’analyse de données beaucoup plus facile et rapide.

Capture d’écran de l’IDE RStudio

Des packages spécifiques à la Data Science

Tout d’abord, R possède une pléthore de packages spécifiquement développés pour faire de la Data Science. Cela rend la Data Science plus simple à effectuer. Notamment, un excellent package nommé Caret (Classification And REgression Training) existe et est spécialisé en Machine Learning. Ce package permet de mener un projet de Machine Learning de A à Z, en commençant par créer le jeu d’entrainement et de test, en passant par l’exploration et la normalisation des données, jusqu’au tuning des hyper-paramètres et la comparaison des modèles pour déterminer celui qui donne les meilleurs résultats sur vos données. De plus, il est extrêmement bien documenté, en anglais bien sûr. De plus, la création de graphiques est simple et puissante grâce au package ggplot2 et la manipulation de données est optimisée grâce au package dplyr.

Création de rapports et d’applications web interactives pour présenter ses résultats

Il existe tout d’abord le package Rmarkdown, qui permet de créer des rapports sur l’ensemble de l’analyse menée, permettant de rendre son analyse reproductible et fiable. 

Exemple de rapport généré avec Rmarkdown. Source : http://www.statpower.net/Content/310/R%20Stuff/SampleMarkdown.html

De plus, le package Shiny permet de créer des applications web interactives de ses résultats et ce de manière simple. Cela rend vos rapports d’analyse très professionnels et modernes.

Exemple d’application web interactive Shiny. Source : https://shiny.rstudio.com/gallery/movie-explorer.html

Une documentation extrêmement bien faite

La documentation de R est très complète. Notamment, toute une série de “Cheat Sheet” (aide-mémoire, en français) a été créée pour les packages les plus populaires. Voici un exemple de Cheat Sheet pour le package Keras qui contient un ensemble de fonctions permettant de faire du Deep Learning en R. En une seule page, cette Cheat Sheet résume comment définir un modèle, le compiler, faire de la prédiction sur des données etc … Il existe ce genre d’aide-mémoire pour faire des graphiques, du machine learning et tout un tas d’autres choses. Vous pouvez aller voir les Cheat Sheets officielles en suivant ce lien.

Cheatsheet pour faire du Deep Learning avec R. Source : https://www.rstudio.com/resources/cheatsheets/

#4. Pourquoi utiliser Python en Data Science ?

Jupyter notebook, une interface user-friendly

Il s’agit d’un notebook qui permet de tester son code et ses analyses et de partager ses résultats. Python ne possède pas sa propre interface pour coder. Jupyter permet d’intégrer Python, mais aussi R et un tas d’autres langages.  Mais il est courant que Jupyter soit utilisé pour coder en Python (c’était son objectif premier, les autres langages ont été intégrés par la suite).

Exemple d’un Jupyter notebook. Source : http://nbviewer.jupyter.org/github/jdwittenauer/ipython-notebooks/blob/master/notebooks/ml/ML-Exercise1.ipynb

Des packages spécifiques à la Data Science

Tout comme R, Python possède des librairies spécifiques pour faciliter l’analyse de données. La librairie la plus populaire est Panda pour manipuler de grands jeux de données. Pour ce qui est du Machine Learning, la librairie la plus populaire est Scikit-Learn, qui permet de faire de la classification, de la régression, du clustering ou encore de la réduction de dimension, tout comme R avec le package CARET. La documentation est aussi très bien faite, en anglais encore une fois, mais elle est extrêmement complète et accessible même pour les débutants. Pour ce qui est des graphiques, deux librairies peuvent être utilisées. Matplotlib, qui est très puissante mais aussi très complexe. Et Bokeh qui se rapproche un peu de Shiny, et qui permet la création de graphiques interactifs pour le web.

Création de graphiques interactifs avec Bokeh. Source : https://demo.bokehplots.com/apps/crossfilter

Python est avant tout un langage de programmation informatique

Comme je le disais, R a été créé pour faire des statistiques et Python pour faire de la programmation informatique pure. Ainsi, Python est un langage plus stable que R, préféré pour une utilisation en production dans une entreprise. De plus, son utilisation est plus large que R : avec python vous pouvez créer un site Web, travailler avec des bases de données, faire des applications réseaux, faire du calcul scientifique, … la liste n’est pas exhaustive.

Python possède aussi ses Cheatsheets

Tout comme pour R, un ensemble de Cheat Sheet ont été crées pour Python, facilitant la prise en main des différentes librairies. Ici, je vous montre la Cheat Sheet de la librairie Scikit-Learn qui permet de faire du Machine Learning avec Python.

Cheatsheet Scikit-Learn. Source : https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Scikit_Learn_Cheat_Sheet_Python.pdf

#5. R et Python en Data Science : lequel choisir ?

A vous de trouver le langage avec lequel vous êtes le plus à l’aise

Les deux langages possèdent des fonctionnalités déjà toute faite et très efficaces pour faire du machine learning. Les deux sont adaptés pour travailler sur de grands jeux de données et pour manipuler et visualiser des données complexes. Pour être franche, c’est assez compliqué de les départager, cela dépend vraiment des personnes et de leur feeling avec un des deux langages.

Chaque langage a sa spécialité au départ

Pour faire simple, à la base, R a été développé pour faire des analyses statistiques. Python, lui, a été développé pour faire de la programmation informatique pure et dure. Mais avec l’arrivée du Big Data, tous les deux ont été modifiés et adaptés à la Data Science, ce qui fait que l’un et l’autre sont capables de gérer un projet entier de Data Science. Par mon expérience, j’aurais tendance à dire que Python est nécessaire lorsqu’on veut faire de la manipulation de données répétées et en production, ou quand on souhaite travailler avec des bases de données. En revanche, pour explorer des données et générer des graphiques, j’aurais tendance à me tourner plus vers R. C’est au Data Scientist en herbe de choisir avec quel langage il est le plus confortable, ou de décider d’utiliser les deux, selon les objectifs de son projet.

Ils n’ont pas la même popularité

Le site PYPL répertorie la popularité des différents langages de programmation dans le monde. Python se retrouve à la première place et R à la septième. Cela est dû au fait, comme je le disais, du champ d’application plus large de Python. Toujours est-il que R reste un langage de programmation très utilisé, notamment par les statisticiens mais aussi beaucoup par les Data Scientists en général.

Popularité des différents langages de programmation. Source : PYPL PopularitY of Programming Language – http://pypl.github.io/PYPL.html

Comment vous former à R ?

Si vous souhaitez apprendre le langage R, n’hésitez pas à aller jeter un coup d’œil à ma formation, pour laquelle j’offre 50 coupons de réductions pour le lancement du blog : Coupon de réduction pour le cours “Apprendre la Data Science avec R de A à Z” 🙂

Voilà pour les langages R et Python en Data Science ! J’espère vous avoir éclairé sur le sujet, mais si j’ai un conseil à vous donner, c’est de tester les deux et de voir lequel vous préférez. Pour ma part, je préfère R, mais un collègue Data Scientist préfère Python et pourtant nous faisons le même travail … À vous de choisir ! 😉 

Pour finir, si devenir Data Scientist vous intéresse, je vous laisse aller lire l’article  Comment devenir Data Scientist ? 

Amandine de DataScienceR

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *