« R ou Python ? ». Au moment de démarrer des projets de Data Science, j’ai souvent entendu cette question. Et pour cause : la plupart des scientifiques intervenant dans ce domaine utilise ces deux langages de programmation « open source » (en accès libre) pour mener à bien leurs projets d’études (Data Science Job Report 2017 – R plus prisé que SAS pour l’analyse de données, mais Python est le langage le plus populaire). Pas étonnant de trouver des milliers d’articles sur le Web vantant les avantages de ces langages. L’idée n’est pas de détailler les aspects techniques des deux, mais de raconter mon retour d’expérience suite à leur utilisation.
Bonne nouvelle !
Que ce soit R ou Python, ces outils comportent de nombreux packages ou modules prédéfinis (ensemble de fonctions permettant de solutionner un problème posé). Tous les deux offrent la possibilité de créer ses propres librairies et de les partager avec la communauté. Il est possible de réaliser de nombreuses opérations plus ou moins complexes sur des objets tels que les matrices, les data frames, les vecteurs, les fichiers, les graphes, etc. Leur prise en main est simplifiée pour ceux maîtrisant d’autres types de langages de programmation.
Ils implémentent aussi de nombreux algorithmes de Machine Learning (apprentissage automatique par l’ordinateur en se basant sur le comportement de milliers de données) qui répondent à tout type d’interrogation en rapport avec les statistiques. De la prédiction au classement automatique d’objets divers. Certains packages récupèrent des données de nombreux sites Web (Facebook, Twitter, Salesforce, etc.) via des API (Interfaces de programmation faisant communiquer deux services informatiques différents entre eux en exposant des données).
Lorsqu’une entreprise décide de se lancer dans un projet de Data Science, elle est confrontée au sempiternel choix du langage de programmation. Pour certains, cela devient même un débat philosophique ! Détendons-nous. L’approche doit être efficace et pragmatique. Il suffit de se poser quelques questions élémentaires afin de nous aiguiller dans notre réflexion. Je vous propose quelques-unes, qui sont bien sûr non exhaustives :
- A quelle problématique êtes-vous confronté ?
- De quel temps disposez-vous pour apprendre un de ces deux langages ?
- Quels sont les logiciels les plus utilisés dans votre entreprise ?
- Ces logiciels sont-ils compatibles avec R ou Python ?
- Est-ce que votre code a besoin d’être industrialisé ?
Imaginons un instant que vous intervenez dans le domaine de la recherche en biostatistiques. Vous souhaitez faire une analyse sur un échantillon de données sans que l’algorithme utilisé par la suite ne soit industrialisé. Vous disposez de quelques semaines pour apprendre un nouveau langage de programmation. Dans ce cas, R peut être une solution efficace.
De toutes les façons, la réponse aux interrogations précédentes vous permettra de dégager une tendance et de faire un choix judicieux.
Voilà pourquoi, même si la communauté de Data Scientists semble plébisciter Python, je n’ai toujours pas de préférence aujourd’hui. Je code dans les deux langages, au gré des contraintes des projets et bien souvent des demandes des clients. Il m’arrive parfois de réécrire des scripts R en Python. Principalement, à cause de la robustesse de certaines fonctions. Je pense par exemple à la librairie « RForcecom » (aspiration des données de Salesforce) qui atteint ses limites avec une volumétrie de plus de cent mille lignes !
Un conseil pour terminer : avant de créer votre propre package, penser à interroger Internet. Quelqu’un s’est sûrement déjà confronté à une situation similaire et pourra par conséquent fournir un accélérateur à votre projet !