La science des données s’adresse à tous ceux qui sont fascinés par le déchiffrage de situations complexes et la découverte d’informations précieuses au sein d’un chaos apparent.
Imaginez la recherche d’une aiguille dans une botte de foin, sauf qu’ici, les spécialistes de la donnée n’ont pas besoin de se salir les mains. Grâce à des outils pointus, des visualisations colorées et l’examen minutieux de grandes quantités de chiffres, ils explorent d’immenses volumes de données pour extraire des informations stratégiques à forte valeur ajoutée.
Un data scientist doit maîtriser une palette d’outils comprenant au moins un élément de chacune des catégories suivantes : bases de données relationnelles, bases de données NoSQL, frameworks de traitement de gros volumes de données, outils de visualisation, outils de web scraping, langages de programmation, environnements de développement intégrés (IDE) et outils d’apprentissage profond.
Bases de données relationnelles
Une base de données relationnelle organise les informations en tableaux, chacun comportant des attributs. Ces tableaux peuvent être liés entre eux, définissant des relations et des contraintes, créant ainsi un modèle de données. Le langage SQL (Structured Query Language) est couramment utilisé pour interagir avec ces bases de données.
Les applications qui gèrent la structure et les données des bases de données relationnelles sont désignées par l’acronyme SGBDR (Systèmes de Gestion de Bases de Données Relationnelles). Nombreuses sont ces applications, et les plus pertinentes se sont récemment orientées vers le domaine de la science des données, intégrant des fonctionnalités pour manipuler d’importants dépôts de données et pour mettre en œuvre des techniques d’analyse de données et d’apprentissage automatique.
SQL Server
Le SGBDR de Microsoft, en constante évolution depuis plus de deux décennies, a progressivement enrichi ses fonctionnalités pour les entreprises. À partir de sa version 2016, SQL Server propose un éventail de services, notamment la prise en charge du code R intégré. La version 2017 va plus loin en renommant ses services R en services de langage machine et en ajoutant la compatibilité avec le langage Python (plus de détails sur ces deux langages ci-dessous).
Grâce à ces ajouts significatifs, SQL Server devient une option intéressante pour les data scientists qui n’ont pas forcément une expérience du Transact-SQL, le langage de requête natif de Microsoft SQL Server.
SQL Server est un produit payant. Vous pouvez acheter des licences pour l’installer sur un serveur Windows (le prix variant en fonction du nombre d’utilisateurs simultanés) ou l’utiliser via le cloud Microsoft Azure, sous forme d’abonnement. Il est facile d’apprendre à utiliser Microsoft SQL Server.
MySQL
Du côté des logiciels open source, MySQL est le SGBDR le plus populaire. Bien qu’il soit actuellement détenu par Oracle, il reste gratuit et open source, conformément aux termes de la licence publique générale GNU. De nombreuses applications Web utilisent MySQL comme base de données, grâce à sa conformité à la norme SQL.
Ses procédures d’installation simples, sa large communauté de développeurs, une documentation complète et des outils tiers, comme phpMyAdmin, qui simplifient la gestion quotidienne, contribuent également à sa popularité. Bien que MySQL ne possède pas de fonctions natives pour l’analyse de données, son ouverture permet une intégration facile avec la plupart des outils de visualisation, de reporting et de décisionnel.
PostgreSQL
Une autre option de SGBDR open source est PostgreSQL. Moins populaire que MySQL, PostgreSQL se distingue par sa flexibilité et son extensibilité, ainsi que par sa prise en charge des requêtes complexes, allant au-delà des instructions de base comme SELECT, WHERE et GROUP BY.
Ces fonctionnalités le rendent de plus en plus apprécié des data scientists. Sa compatibilité multi-environnements est également un atout, permettant son utilisation dans des environnements cloud, sur site, ou dans des configurations hybrides.
PostgreSQL est capable de combiner le traitement analytique en ligne (OLAP) avec le traitement transactionnel en ligne (OLTP), un mode appelé traitement transactionnel/analytique hybride (HTAP). L’ajout de PostGIS pour les données géographiques et de JSON-B pour les documents le rend également adapté au big data. PostgreSQL peut même gérer des données non structurées, ce qui le place à la frontière entre les bases de données SQL et NoSQL.
Bases de données NoSQL
Également appelées bases de données non relationnelles, ces bases de données offrent un accès plus rapide à des structures de données non tabulaires. On y trouve par exemple des graphiques, des documents, des colonnes larges ou des paires clé-valeur. Les bases de données NoSQL peuvent privilégier d’autres avantages comme la disponibilité, le partitionnement et la vitesse d’accès, parfois au détriment de la cohérence des données.
En l’absence de langage SQL dans ces bases de données, l’interrogation nécessite l’utilisation de langages de bas niveau. Aucun langage n’a acquis la même popularité que SQL dans ce domaine. De plus, il n’existe pas de spécification standard pour NoSQL. Ironiquement, certaines bases de données NoSQL commencent à prendre en charge les scripts SQL.
MongoDB
MongoDB est un système de base de données NoSQL populaire, qui stocke les données sous forme de documents JSON. L’accent est mis sur l’évolutivité et la flexibilité du stockage des données de manière non structurée. Il n’y a pas de liste de champs prédéfinis à respecter, et la structure des données peut évoluer, ce qui, dans une base de données relationnelle, augmenterait le risque d’affecter les applications en cours d’exécution.
La technologie de MongoDB permet l’indexation, les requêtes ad hoc et l’agrégation, offrant une base solide pour l’analyse des données. La nature distribuée de la base de données garantit une haute disponibilité, une mise à l’échelle et une distribution géographique sans outils sophistiqués.
Redis
Redis est une autre option open source pour les bases de données NoSQL. Il s’agit d’une structure de données en mémoire qui, en plus de fournir des services de base de données, sert de cache et de courtier de messages.
Il prend en charge une grande variété de structures de données, comme les hachages, les index géospatiaux, les listes et les ensembles triés. Il est bien adapté à la science des données grâce à ses performances dans les tâches gourmandes en données, telles que le calcul d’intersections d’ensembles, le tri de longues listes ou la génération de classements complexes. Les performances exceptionnelles de Redis sont dues à son fonctionnement en mémoire. Il peut être configuré pour conserver les données de manière sélective.
Frameworks pour Big Data
Imaginez que vous deviez analyser les données générées par les utilisateurs de Facebook pendant un mois, incluant les photos, vidéos, messages… Sachant que plus de 500 téraoctets de données sont ajoutés chaque jour au réseau social, vous pouvez imaginer le volume que représente un mois entier de données.
Pour traiter efficacement cette immense quantité de données, vous avez besoin d’un framework approprié, capable de calculer des statistiques sur une architecture distribuée. Deux frameworks dominent le marché : Hadoop et Spark.
Hadoop
En tant que framework pour big data, Hadoop prend en charge la complexité liée à la récupération, au traitement et au stockage d’énormes volumes de données. Hadoop fonctionne dans un environnement distribué, composé de grappes d’ordinateurs traitant des algorithmes simples. Un algorithme d’orchestration, appelé MapReduce, divise les grandes tâches en petites parties, puis distribue ces petites tâches entre les clusters disponibles.
Hadoop est recommandé pour les dépôts de données d’entreprise qui exigent un accès rapide et une haute disponibilité, le tout à moindre coût. Cependant, la maintenance du framework requiert un administrateur Linux ayant une solide connaissance de Hadoop.
Spark
Hadoop n’est pas le seul framework disponible pour manipuler des gros volumes de données. Un autre acteur majeur est Spark. Le moteur Spark a été conçu pour surpasser Hadoop en termes de vitesse d’analyse et de facilité d’utilisation. Les comparaisons montrent que Spark est jusqu’à 10 fois plus rapide qu’Hadoop lors d’une utilisation sur disque, et 100 fois plus rapide en mémoire. De plus, il nécessite moins de machines pour traiter la même quantité de données.
Outre la vitesse, Spark se distingue par sa prise en charge du traitement des flux, également appelé traitement en temps réel, impliquant un flux continu d’entrée et de sortie de données.
Outils de visualisation
Une blague courante chez les data scientists est de dire que si vous « torturez » les données assez longtemps, elles finiront par révéler ce que vous cherchez. Dans ce contexte, « torturer » signifie manipuler les données en les transformant et les filtrant pour mieux les visualiser. C’est là qu’interviennent les outils de visualisation de données. Ces outils prennent des données prétraitées provenant de sources diverses et en révèlent les vérités sous des formes graphiques compréhensibles.
Il existe des centaines d’outils dans cette catégorie. Le plus utilisé, que cela plaise ou non, reste Microsoft Excel et ses outils graphiques. Les graphiques Excel sont accessibles à tous les utilisateurs, mais leurs fonctionnalités sont limitées. C’est la même chose pour d’autres tableurs comme Google Sheets et Libre Office. Nous allons nous concentrer ici sur des outils plus spécifiques, conçus pour la business intelligence (BI) et l’analyse de données.
Power BI
Microsoft a récemment lancé son application de visualisation Power BI. Elle est capable de prendre des données provenant de diverses sources comme des fichiers texte, des bases de données, des tableurs ou de nombreux services de données en ligne (Facebook et Twitter par exemple), et de générer des tableaux de bord interactifs, avec des graphiques, des tableaux, des cartes et d’autres éléments visuels. Ces éléments sont interactifs : vous pouvez sélectionner une série de données dans un graphique pour l’utiliser comme filtre pour les autres éléments du tableau de bord.
Power BI combine une application de bureau Windows (incluse dans la suite Office 365), une application Web et un service en ligne pour publier les tableaux de bord et les partager avec les utilisateurs. Ce service permet de créer et de gérer des autorisations afin de limiter l’accès aux tableaux à certaines personnes.
Tableau
Tableau est une autre solution pour créer des tableaux de bord interactifs à partir de plusieurs sources de données. Il propose également une version de bureau, une version Web et un service en ligne pour partager vos tableaux de bord. L’interface est conçue pour fonctionner « avec votre façon de penser » (selon le slogan de Tableau), et il est facile à utiliser, même pour les personnes sans compétences techniques, grâce à de nombreux tutoriels et vidéos en ligne.
Parmi les points forts de Tableau figurent ses connecteurs de données illimités, les données en direct ou en mémoire et une conception optimisée pour les appareils mobiles.
QlikView
QlikView offre une interface utilisateur simple et claire pour aider les analystes à découvrir de nouvelles informations à partir des données existantes grâce à des éléments visuels facilement compréhensibles.
Cet outil est considéré comme l’une des plateformes de business intelligence les plus flexibles. La fonctionnalité de recherche associative vous permet de vous concentrer sur les données les plus importantes, vous faisant gagner du temps lors de la recherche.
Avec QlikView, vous pouvez collaborer avec des partenaires en temps réel et réaliser des analyses comparatives. Toutes les données peuvent être combinées dans une seule application, et des fonctions de sécurité limitent l’accès aux données.
Outils de web scraping
Au tout début d’Internet, des robots d’exploration du Web ont commencé à collecter des informations en naviguant sur le réseau. Avec l’évolution de la technologie, l’exploration Web est devenue le web scraping, toujours dans le même but : extraire automatiquement des informations de sites Web. Le web scraping utilise des processus automatisés, ou bots, qui parcourent les pages Web en extrayant des données pour les exporter dans différents formats ou les insérer dans des bases de données pour une analyse plus approfondie.
Voici les caractéristiques de trois des outils de web scraping les plus populaires actuellement disponibles.
Octoparse
Octoparse Web Scraper propose des fonctionnalités intéressantes, notamment des outils intégrés pour extraire des informations de sites Web qui ne facilitent pas la tâche des robots. Il s’agit d’une application de bureau qui ne nécessite pas de programmation, avec une interface conviviale qui permet de visualiser le processus d’extraction grâce à un concepteur de flux de travail graphique.
Octoparse propose également un service basé sur le cloud pour accélérer l’extraction de données. Les utilisateurs peuvent bénéficier d’un gain de vitesse de 4x à 10x en utilisant le service cloud plutôt que l’application de bureau. La version de bureau d’Octoparse est gratuite, mais le service cloud est disponible via des formules payantes.
Content Grabber
Si vous recherchez un outil de web scraping riche en fonctionnalités, vous devriez vous intéresser à Content Grabber. Contrairement à Octoparse, il est nécessaire d’avoir des compétences avancées en programmation pour l’utiliser. En échange, vous bénéficiez de l’édition de scripts, des interfaces de débogage et d’autres fonctionnalités avancées. Avec Content Grabber, vous pouvez utiliser les langages .Net pour écrire des expressions régulières, au lieu de générer des expressions avec un outil intégré.
L’outil propose une API (Application Programming Interface) que vous pouvez utiliser pour ajouter des fonctionnalités de scraping à vos applications de bureau et Web. L’utilisation de cette API requiert l’accès au service Windows Content Grabber.
ParseHub
ParseHub peut gérer de nombreux types de contenu, comme les forums, les commentaires imbriqués, les calendriers et les cartes. Il peut également traiter les pages avec authentification, Javascript, Ajax, etc. ParseHub peut être utilisé comme une application Web ou de bureau, compatible avec Windows, macOS X et Linux.
Comme Content Grabber, une connaissance en programmation est recommandée pour profiter pleinement de ParseHub. Une version gratuite est disponible, avec une limitation à 5 projets et 200 pages par exécution.
Langages de programmation
De même que SQL est conçu pour les bases de données relationnelles, d’autres langages sont créés spécifiquement pour la science des données. Ces langages permettent de traiter l’analyse massive de données, comme les statistiques et l’apprentissage automatique.
SQL est également considéré comme une compétence importante pour les développeurs en science des données, car de nombreuses organisations ont encore des données stockées dans des bases de données relationnelles. Les langages les plus utilisés en science des données sont R et Python.
Python
Python est un langage de programmation de haut niveau, interprété et polyvalent, bien adapté au développement rapide d’applications. Sa syntaxe simple et facile à apprendre permet une prise en main rapide et une réduction des coûts de maintenance des programmes. De nombreux facteurs en font un langage de choix pour la science des données, parmi lesquels : le potentiel de script, la clarté du code, la portabilité et les performances.
Ce langage est un bon point de départ pour les data scientists qui souhaitent expérimenter avant d’aborder le travail plus complexe de traitement de données et développer des applications complètes.
R
Le langage R est principalement utilisé pour le traitement de données statistiques et la représentation graphique. Bien qu’il ne soit pas destiné à développer des applications complètes comme Python, R est devenu populaire pour l’exploration et l’analyse de données.
Grâce à une bibliothèque en constante expansion de packages gratuits, R est capable d’effectuer toutes sortes de traitements de données, comme la modélisation linéaire/non linéaire, la classification, les tests statistiques, etc.
Ce n’est pas un langage facile à apprendre, mais une fois que vous êtes familier avec son fonctionnement, vous effectuez des calculs statistiques comme un expert.
IDE
Si vous envisagez de vous consacrer à la science des données, vous devrez choisir avec soin un environnement de développement intégré (IDE), car vous allez y passer beaucoup de temps.
Un IDE idéal doit rassembler tous les outils nécessaires à votre travail de codeur : un éditeur de texte avec coloration syntaxique et auto-complétion, un débogueur performant, un explorateur d’objets et un accès facile aux outils externes. Il doit être compatible avec le langage de votre choix ; il est donc préférable de choisir votre IDE après avoir choisi le langage que vous utiliserez.
Spyder
Cet IDE est principalement destiné aux scientifiques et aux analystes qui ont aussi besoin de coder. Il fournit également des outils d’exploration/visualisation de données et d’exécution interactive, comme un package scientifique. L’éditeur de Spyder prend en charge plusieurs langages et ajoute un explorateur de classes, un fractionnement de fenêtre, un saut à la définition, la saisie semi-automatique de code et un outil d’analyse de code.
Le débogueur vous aide à suivre le déroulement du code de manière interactive, et un profileur vous aide à trouver et à éliminer les inefficacités.
PyCharm
Si vous programmez en Python, votre IDE de choix sera probablement PyCharm. Il propose un éditeur de code intelligent avec recherche, complétion de code, détection et correction des erreurs. En un seul clic, vous pouvez passer de l’éditeur de code à une fenêtre liée au contexte, comme le test, la méthode parente, l’implémentation ou la déclaration. PyCharm est compatible avec Anaconda et de nombreux packages scientifiques comme NumPy et Matplotlib.
Il intègre les principaux systèmes de contrôle de version, un testeur, un profileur et un débogueur. Pour compléter le tout, il s’intègre aussi avec Docker et Vagrant pour permettre le développement et la conteneurisation multiplateformes.
RStudio
Pour les data scientists qui préfèrent R, l’IDE de choix est RStudio, en raison de ses nombreuses fonctionnalités. Il peut être installé sur un ordinateur de bureau sous Windows, macOS ou Linux, ou être utilisé depuis un navigateur Web. Les deux versions proposent des avantages comme la coloration syntaxique, l’indentation intelligente et la complétion de code. Un visualiseur de données intégré est très pratique pour parcourir des données tabulaires.
Le mode de débogage permet de visualiser comment les données sont mises à jour de manière dynamique lors de l’exécution d’un programme. Pour le contrôle de version, RStudio intègre la prise en charge de SVN et Git. La possibilité de créer des graphiques interactifs, avec Shiny et la bibliothèque ggplot, est un avantage notable.
Votre boîte à outils personnelle
Vous devriez maintenant avoir une vision complète des outils essentiels pour exceller en science des données. Nous espérons vous avoir donné suffisamment d’informations pour vous aider à choisir les options les plus adaptées à chaque catégorie d’outils. La suite ne dépend que de vous. La science des données est un domaine en plein essor, offrant de nombreuses opportunités pour développer une carrière. Si vous souhaitez vous lancer dans ce domaine, il est important de suivre l’évolution des tendances et des technologies, car elles progressent presque chaque jour.