IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: R ou Python pour la science des données ?

Votants
25. Vous ne pouvez pas participer à ce sondage.
  • Python

    15 60,00%
  • R

    7 28,00%
  • Pas d'avis

    3 12,00%
Sondage à choix multiple
Big Data Discussion :

Sondage : entre R et Python, lequel des deux langages est le plus conseillé pour la science des données ?


Sujet :

Big Data

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 307
    Points
    66 307
    Par défaut Sondage : entre R et Python, lequel des deux langages est le plus conseillé pour la science des données ?
    Sondage : entre R et Python, lequel des deux langages est le plus conseillé
    pour la science des données ?

    Dans la plupart des domaines de l’informatique, que ce soit celui du Big Data, l’apprentissage automatique ou encore l’intelligence artificielle (IA), il existe diverses préférences ou recommandations quant aux outils (technologies et langages de programmation) à utiliser pour rendre le travail plus ou moins facile. Dans le domaine de la science des données, on retrouve les langages de programmation Python et R qui sont utilisés pour l’analyse de données. Alors entre ces deux langages, lequel est le meilleur pour l’analyse de données ? Norm Matloff nous propose son avis sur la question.

    La science des données (en anglais data science) est une discipline qui s'appuie sur des outils mathématiques, de statistiques, d'informatique et de visualisation des données. Son développement s’est accentué au cours de ces 20 dernières années notamment avec l’essor du Big Data et l’apprentissage automatique, les entreprises produisant de plus en plus de données. Elle est en plein développement dans le secteur privé et le secteur public ainsi que dans le monde universitaire.

    Dans l’analyse de données, les experts en mégadonnées reconnaissent l’utilité et les potentiels qu’offrent les langages de programmation Python et R. Ce sont des langages de programmation open source avec une grande communauté. De nouveaux outils sont ajoutés en permanence à leur catalogue respectif. Le langage R est principalement utilisé pour l’analyse statistique, tandis que Python fournit une approche plus générale. De plus, les experts en mégadonnées utilisent R et Python pour le fait qu'il s'agisse de langages interprétés, ce qui est beaucoup plus adapté que les langages compilés pour faire de l’analyse de données.

    Expliqué autrement, un langage interprété va permettre de visualiser directement le résultat de chaque étape de l’analyse. Les analyses nécessitent beaucoup d’allers-retours et de modifications des instructions, ce qui rend un langage interprété définitivement plus adapté. Un autre aspect de la chose est que les langages R et Python ont un ensemble d’instructions (de fonctions) déjà toutes faites et bien adaptées à l’analyse de données, d’où leur popularité en science des données. Même si l’utilisation de R et de Python mène le plus souvent au même résultat, la question de savoir lequel d’entre eux est le plus adapté à la science des données n’est pas exclue et il existe plusieurs comparaisons et avis sur le sujet.

    Nom : z1.png
Affichages : 61318
Taille : 30,8 Ko

    Norm Matloff, professeur d'informatique et de statistique à l'université de Californie, a réalisé une petite comparaison des deux langages et a une attirance plus élevée pour R que pour le langage Python. Dans sa comparaison, il s’est penché sur des aspects tels que l’élégance des langages, la courbe d’apprentissage, les bibliothèques disponibles pour les deux langages, l’exactitude statistique, le calcul parallèle, l’interfaçage avec d’autres langages tels que le C et le C++, les structures de données, les apports dans les domaines comme celui de l’apprentissage automatique et les aides en ligne disponibles pour chacun des deux langages.

    Pour Matloff, certes, Python est bien plus élégant dans sa syntaxe que le langage R, mais sa courbe d’apprentissage est plus compliquée que celle de R, ce qui ne joue pas forcément en sa faveur. Pour même commencer à utiliser Python pour la science de données, dit-il, il faut apprendre beaucoup de choses qui ne sont pas en Python de base, par exemple, NumPy, Pandas et matplotlib. En revanche, les types de matrices et les graphiques de base sont intégrés à la base au langage R. Pour lui, le novice peut effectuer de simples analyses de données en quelques minutes. Les bibliothèques Python peuvent être difficiles à configurer, même pour les utilisateurs avertis, alors que la plupart des packages R fonctionnent immédiatement. Cependant, certains pensent que R ne propose pas de boucle efficace (for serait super lent en R).

    Comparant les bibliothèques Python et R disponibles pour l’analyse de données, il a écrit que les bibliothèques spécifiques sont plus nombreuses et facilement trouvables dans R à travers CRAN que Python par l'intermédiaire de PyPI (Python package index). Selon ses explications, ces deux langages possèdent de solides bibliothèques permettant d’écrire de puissants algorithmes de machine learning. À titre illustratif, R possède une pléthore de packages spécifiquement développés pour faire de la science des données. Cela rend la science des données plus simple à effectuer. Notamment, un excellent package nommé Caret (Classification And Regression Training) existe et est spécialisé en machine learning (apprentissage automatique). D'autres pensent toutefois qu'il n'y a pas d'interface commune pour la myriade de paquets R, qu'il faut donc apprendre une nouvelle syntaxe pour chaque algo (contrairement à scikit-learn).

    Ce package permet de mener un projet de machine learning de A à Z, en commençant par créer le jeu d'entraînement et de test, en passant par l’exploration et la normalisation des données, jusqu’au tuning des hyperparamètres et la comparaison des modèles pour déterminer celui qui donne les meilleurs résultats sur vos données. 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. Tout comme R, Python possède des bibliothèques spécifiques pour faciliter l’analyse de données. L’une des bibliothèques les plus populaires est la librairie 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 extrêmement complète et accessible même pour les débutants. Pour ce qui est des graphiques, deux bibliothèques 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.

    Au niveau des bibliothèques pour l’apprentissage automatique, Matloff donne un léger avantage aux bibliothèques de Python. Néanmoins, il estime que la puissance des bibliothèques Python provient de la définition de certaines opérations de lissage d'image qui pourraient facilement être implémentées dans l' encapsuleur Keras de R et pour ce faire, une version purement R de TensorFlow pourrait être développée. À part cela, il a également souligné que R est loin devant Python pour ce qui est de l’exactitude statistique. « Pour être franc, je trouve que les personnes écrivent des algorithmes de machine learning et qui défendent le plus souvent Python ont souvent une compréhension médiocre et parfois même un dédain pour les problèmes statistiques liés au blanchiment de capitaux », s’est-il justifié.

    Dans le cas du calcul parallèle, il arrive à la conclusion selon laquelle ni la version de base de R ni celle de Python ne prennent en charge le calcul multicœur, mais il attribue un léger avantage à R sur cet aspect. Les threads en Python sont intéressants pour les E/S, mais leur calcul parallèle est impossible en raison du fameux verrou d'interprète global. Le package de multitraitement de Python n'est pas une bonne solution de contournement, pas plus que le package “parallèle” de R. Les bibliothèques externes prenant en charge le calcul en grappes sont acceptables dans les deux langages. Actuellement, Python a de meilleures interfaces avec les GPU, a-t-il expliqué.

    Plus loin dans sa comparaison, Matloff estime que R est également en avance sur Python pour ce qui est de l’interfaçage C/C++ et de la métaprogrammation. Il a souligné que bien qu'il existe des outils comme Swig pour interfacer Python avec le C/C++, rien n'est aussi puissant à distance que Rcpp pour le moment. Le package Pybind11 est en cours de développement. En outre, avance-t-il, la nouvelle philosophie ALTREP pour le langage R offre un grand potentiel d'amélioration des performances et de la convivialité.

    En affirmant que R devance légèrement Python dans la métaprogrammation, il donne l’exemple selon laquelle bien que les fonctions soient des objets dans les deux langages, R prend cela plus au sérieux que Python. « Chaque fois que je travaille en Python, je suis ennuyé par le fait que je ne peux pas imprimer une fonction sur le terminal, ce que je fais souvent dans R, Python a juste un paradigme de POO. En R, vous avez le choix entre plusieurs options (S3, S4, R6, etc.), bien que certains puissent en débattre. C’est une bonne chose. Étant donné les fonctions magiques de métaprogrammation de R (code qui produit du code), les informaticiens devraient baver sur R », a-t-il fait savoir.

    Il aborde d’autres aspects comme l’unité linguistique et les structures de données liées dans lesquels il déclare que Python arrive en première position. D’après son explication, les structures de données informatiques classiques, par exemple les arbres binaires, sont faciles à implémenter en Python. Bien que cela puisse être fait dans R de différentes manières, ce n'est pas aussi bon. Ce n’est pas un gros problème pour la science des données, mais cela se pose dans certains contextes. Maintenant pour ce qui est de l’aide en ligne, il estime que la fonction help() de R est beaucoup plus informative que celle de Python. Et surtout, dit-il, la coutume qui consiste à écrire des vignettes dans des packages R fait de R un gagnant indirect dans cet aspect.

    Enfin, en abordant l’interopérabilité R/Python, selon lui, RStudio doit être félicité pour le développement du paquet réticulé qui servira de pont entre Python et R. « C'est un effort remarquable, qui fonctionne bien pour le calcul pur. Mais pour autant que je sache, cela ne résout pas les problèmes épineux qui se posent en Python, par exemple les environnements virtuels. À l'heure actuelle, je ne recommande pas l'écriture de code mixte Python/R », a-t-il conclu.

    Source : Norm Matloff

    Et vous ?

    Quel est votre avis sur le sujet ?
    Selon vous, entre R et Python, lequel est plus adapté pour la science des données ? Pourquoi ?
    Les raisons avancées par Norm Matloff sont-elles pertinentes ou pas selon vous ? Pourquoi ?

    Voir aussi

    Science des données : Julia, R ou Python ? Un petit aperçu des avantages et inconvénients du langage Julia

    Meilleurs langages en 2018 selon l'IEEE : Python conforte sa place de leader grâce à son ascension dans le machine learning et l'embarqué

    R plus prisé que SAS pour l'analyse de données, mais Python est le langage le plus populaire, selon le Data Science Job Report 2017

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2017
    Messages : 4
    Points : 20
    Points
    20
    Par défaut
    J'utilise Python (Numpy, Scipy, Pandas, ...etc) et je les trouve super bien.

  3. #3
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 137
    Points
    23 137
    Par défaut
    J'utilise JavaScript .

    Bon OK, avec des appels à R pour 2-3 trucs.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Afrique Du Sud

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2011
    Messages : 56
    Points : 108
    Points
    108
    Par défaut
    Python évidemment. Vu ce que on peu accomplir avec ce langage, R est loin derrière.

  5. #5
    Membre à l'essai Avatar de Jonathan muswil
    Homme Profil pro
    informatitien
    Inscrit en
    Juillet 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : informatitien

    Informations forums :
    Inscription : Juillet 2018
    Messages : 21
    Points : 13
    Points
    13
    Par défaut
    On dirait que python tiens bien donc suis pour

  6. #6
    Membre actif
    Avatar de gerard093
    Homme Profil pro
    data scientist, ingénieur data
    Inscrit en
    Mai 2012
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : data scientist, ingénieur data
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 74
    Points : 246
    Points
    246
    Billets dans le blog
    8
    Par défaut pas le même usage...
    Ces deux langages n'ont pas le même usage, ce qui limite l'intérêt des comparaisons.

    R a été développé dans un premier temps dans une optique financière (économétrie) puis s'est ouvert à d'autres domaines comme les bio statistiques. C'est une approche vectorielle des études, au même titre que d'autres langages comme matlab ou octave.

    Python est un langage plus généraliste. Avec Python, on a un langage de programmation complet d'où sa lenteur. Avec Python, on peut faire des applications web, de la cyber défense, gérer des scripts shell, des robots ... Python est scalaire. Plus lent d'exécution mais plus facile d'utilisation pour un pur informaticien.

    Les deux répondent aux besoins exprimés dans leur domaine.

  7. #7
    Membre éprouvé

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Points : 1 155
    Points
    1 155
    Billets dans le blog
    2
    Par défaut
    Je suis d'accord avec le précédent message sur le fait qu'on ne fait pas tout à fait la même chose avec Python et R.
    Si R est très performant concernant le nombre de modules statistiques même très spécifique et bien plus que Python.
    Python est bien plus solide en déploiement et production, mais aussi un choix a été fait par beaucoup de Framework autour du Deep Learing pour ce langage.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Data Architect
    Inscrit en
    Mars 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Data Architect
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2021
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Parfaitement d'accord avec les 2 commentaires précédents. Il ne faut surtout pas oublier que les 2 langages ont des publics très différents.

    Allez demander à un enseignant-chercheur ou à un thésard, déjà overbooké entre ses activités de recherche, d'administratif, de diffusion et d'enseignement de se coltiner l'apprentissage de Python en plus.
    R possède l'avantage d'être accessible à un néophyte avec une excellente courbe d'apprentissage et une multitude de packages qui n'améliorent pas forcément les performances mais simplifient la manipulation et l'analyse de données. Il ne faut pas oublier que pour certaines personnes, un langage de programmation doit rester un outil, et pas une fin en soi et c'est en cela que R devance de très loin Python.

    A l'inverse, R est une calamité pour toute personne habituée à programmer, le code est bien plus fiable et respecte davantage la typologie que l'on peut retrouver dans d'autres langages. C'est pour ça qu'à mon sens en tous cas, y'a pas de gagnant à la guéguerre R vs Python. Que chacun utilise le langage avec lequel il se sente le plus à l'aise, ça n'empêchera pas le monde de tourner que des scripts soient développés en R plutôt qu'en Python.

Discussions similaires

  1. Réponses: 18
    Dernier message: 17/09/2023, 19h01
  2. Python est plus utilisé pour la data science que pour le développement Web
    Par Michael Guilloux dans le forum Général Python
    Réponses: 3
    Dernier message: 14/02/2019, 15h10
  3. Réponses: 2
    Dernier message: 26/05/2017, 18h54
  4. [PC portable] Lequel des deux choisiriez-vous?
    Par lptht dans le forum Ordinateurs
    Réponses: 10
    Dernier message: 27/11/2015, 11h16
  5. Lequel des deux MCD choisir?
    Par Invité dans le forum Schéma
    Réponses: 2
    Dernier message: 11/04/2007, 01h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo