Combinez plusieurs langages de science des données tels que SAS, Python, R et SQL Grâce à WPS Analytics

Blog

Megaphone

Publié

03 mai 2018

Catégorie

Science des données

Partager

Par : Borja Comendeiro, Senior Data Scientist chez World Programming, Royaume Uni

C'est un débat qui revient souvent : quel langage de programmation un expert en science des données doit-il apprendre. Le langage SAS, R, Python, SQL, Julia et autres ont chacun leurs fans et leurs détracteurs. Le meilleur langage est celui qui vous aide à maximiser votre productivité et à atteindre vos objectifs.

On trouve toutes sortes d'utilisations et de connaissances en matière de langage de programmation dans les entreprises. Les différentes branches d'une même organisation peuvent avoir chacune un langage préféré, et au sein d'une même branche, ont peut trouver des raisons poussant à utiliser un langage plutôt qu'un autre selon les tâches.

Chaque langage a ses points forts :

Structured Query Language (SQL)
SQL est le langage le plus utilisé pour l'interaction avec les bases de données. A la fois simple et puissant, c'est souvent le point de départ pour l'apprentissage de l'analyse des données. Pour des tâches telles que l'extraction des données, le tri et le résumé, c'est un outil tout à fait acceptable. En revanche, pour des tâches faisant appel à des sources de données hétérogènes, comportant plusieurs étapes ou des programmes procéduraux, il devient vite difficile à manier et peu pratique.

Langage SAS
Le langage SAS simplifie l'exécution de tâches simples de traitement des données tout comme de travaux d'analyse avancés. Il permet également de traiter d'importants volumes de données avec peu de ressources informatiques et de lignes de code. Le langage SAS associe une préparation des données adaptable et des méthodes statistiques robustes. Il n'est généralement pas nécessaire que les données tiennent dans la mémoire. Les fournisseurs commerciaux de compilateurs de langage SAS offrent un support de qualité pour les données essentielles des bibliothèques statistiques et les environnements d'analyse des données.

Langage R
Le langage R offre des fonctionnalités de visualisation ad hoc puissantes, et permet aux utilisateurs d'effectuer des analyses statistiques de pointe et très spécialisées. R s'appuie sur une communauté importante de contributeurs Open Source, qui aident à étendre la gamme de packages statistiques en permanence ; il peut cependant être difficile de s'y retrouver parmi les nombreuses bibliothèques disponibles. En général, le langage R nécessite que les données tiennent en mémoire, ce qui limite la capacité de R à traiter de gros volumes de données. Les fonctionnalités de préparation des données du langage R sont un autre point faible.

Langage Python
Populaire auprès des étudiants, le langage Python est un langage de programmation plus généraliste que R ou SAS. Il existe des bibliothèques d'analyse de Big Data écrites en Python, telles que PySpark et ses API pour de nombreux composants des écosystèmes Hadoop, et des infrastructures d'apprentissage profond (Deep Learning) telles que Theano et Tensorflow.

Langage Julia
Arrivé plus récemment sur le marché des langages de traitement des données, le langage Julia est bien conçu, et peut être efficace à l'exécution. Il lui manque cependant la base d'utilisateurs et l'écosystème dont disposent les autres langages.

Autres langages
Les langages ci-dessus sont le plus utilisés en science des données. Il est possible d'effectuer des opérations d'analyse des données dans de nombreux langages, dont certains comportent des bibliothèques importantes d'analyse numérique et statistique, notamment Java, C, Fortran, Octave, SPSS et autres.

Dans l'idéal, les experts en science des données peuvent créer des programmes utilisant le meilleur outil pour chaque aspect d'une tâche de science des données. Imaginez que vous lisez des données à partir de votre base de données SQL, que vous effectuez une analyse de fréquence en deux lignes de code grâce à la procédure FREQUENCY du langage SAS, puis que vous tracez les résultats depuis R à l'aide de GGPLOT2. Ou bien, imaginez que vos analystes, grâce à leur maîtrise du langage SAS, peuvent générer des workflows de préparation des données dont un nouvel employé, doué en Python, sait tirer parti.

Dans une certaine mesure, il est possible de basculer entre R et Python à l'aide d'extensions telles que la bibliothèque rPy2 de Python et le package rPython de R.

Toutefois, basculer entre les outils nécessite souvent la sérialisation et la désérialisation des données d'un outil à l'autre, la concaténation des programmes dans les différents langages à l'aide d'un outil de gestion du workflow, ou la génération de scripts bash ou shell complexes, qu'il peut être difficile de tenir à jour. L'opération est si complexe et sujette à erreur qu'elle est rarement utilisée, sauf pour des gros programmes complexes à exécuter de bout en bout.

Dans ces cas, WPS Analytics s'avère être la plate-forme de science des données intégrée idéale. Il permet aux experts en science des données d'utiliser un seul et même programme de bout en bout, dans un même environnement de développement, pour travailler en langage SAS, R, Python, SQL et Java.

Imaginons maintenant que nous avons un gros ensemble de données rempli d'informations sur vos clients, où un des champs est en données texte non structurées. Avec WPS Analytics, il est possible de combiner en un seul programme :

  • SQL pour interagir avec la base de données ;
  • le langage SAS pour la préparation des données et la création de rapports ;
  • R pour l'exploitation des données texte ;
  • le langage SAS pour la modélisation ;
  • Python pour une modélisation supplémentaire.
Spatial analysis1

L'exemple de modélisation en langage SAS ci-dessus prédit la plus-value en fonction de l'âge, du type de relation, du niveau éducatif et du niveau de revenus, créant des modèles distincts en fonction du sexe.

Programme WPS Analytics. Un programme, plusieurs langages.

Spatial analysis2.fr fr

Supposons que la plupart de votre historique de clientèle soit dans une base de données relationnelle structurée. Il serait idéal de pouvoir lire directement les données et d'utiliser le langage natif de la base de données, d'invoquer des procédures stockées écrites auparavant, ou de coller une requête créée précédemment par votre ABD. Et si le reste des données était dans un cluster Hadoop ? Vous pouvez vous connecter à la base de données pour lire les données à l'aide du langage SAS, par exemple, dans la procédure SQL :

Spatial analysis3

Le langage SAS est idéal pour la préparation des données, avec de nombreuses fonctions telles que l'importation, la fusion, le filtrage, la transformation, l'imputation des valeurs manquantes et la validation. Par exemple, vous pouvez modifier la structure de l'ensemble de données avec la procédure TRANSPOSE du langage SAS :

Spatial analysis4Spatial analysis5.fr fr


Le langage SAS comporte moins de fonctionnalités utilisables directement pour les données non structurées. Les langages R et Python bénéficient tous les deux d'infrastructures riches pour réaliser des analyses de type Opinion Mining ou TF-IDF et convertir la sortie vers un format structuré pour la modélisation. La procédure R du langage SAS facilite le passage d'un ensemble de données à R, où la dérivation des variables d'opinion est plus facile :

Utiliser une entrée avec les utilisateurs et une partie du champ de texte :

clienttexte
client 1Très mauvais accueil en magasin, personnel malpoli, mauvais service : je n'y retournerai pas.
client 2Service correct, bien que lent, bonne expérience dans l'ensemble
client 3Très contente du service, toujours fiable, bon rapport qualité-prix.

La sortie fournit un score d'opinion, qu'il est possible d'utiliser dans d'autres modélisations ou dans des rapports.

clienttexteopinion
client 1Très mauvais accueil en magasin, personnel malpoli, mauvais service : je n'y retournerai pas.-0.963
client 2Service correct, bien que lent, bonne expérience dans l'ensemble0.158
client 3Très contente du service, toujours fiable, bon rapport qualité-prix.0.915
Spatial analysis8

Le langage Python comporte des packages de modélisation utiles tels que Scikit-learn et Keras, une API de haut niveau pour les infrastructures d'apprentissage profond Tensorflow et Theano. A l'aide de la procédure Python du langage SAS, vous pouvez profiter facilement de ces fonctionnalités de Python depuis un même programme.

Spatial analysis9

Utiliser cette approche dans le logiciel WPS de World Programming offre de nombreux avantages :

  • Le déploiement des programmes d'analyse des données est facilité : il suffit de programmer l'exécution ou d'invoquer un seul programme en ligne de commande.
  • Les systèmes et workflows d'analyse des données nécessitent peu de maintenance, puisqu'il n'y a qu'un seul fichier à suivre pour la gestion de la configuration et le contrôle des versions.
  • Il est possible de tirer parti de diverses capacités et connaissance de manière transparente en utilisant les bibliothèques intégrées dans chacun des outils les plus appropriés. Vous pouvez préserver et réutiliser de manière universelle vos acquis en matière de propriété intellectuelle.

Vous bénéficiez des meilleurs aspects de chacun des langages, et vous pouvez utiliser la technologie la plus appropriée pour chaque partie d'un processus d'analyse des données. Vous pouvez équilibrer les besoins de tous les aspects – Big Data, données structurées et non structurées, préparation des données, vitesse de traitement, apprentissage automatique, fonctionnalités d'IA, déploiement en production et coûts financiers – sans vous limiter à un seul jeu de technologies, et en profitant d'une infrastructure gérée et d'une interface utilisateur cohérentes.