Pycharm logo

PyCharm

The Python IDE for data science and web development

Data Science

État de la Science des Données 2024 : 6 tendances clés

Read this post in other languages:

L’IA générative et les LLM ont fait la une cette année, mais ont-ils eu un véritable impact sur les tendances en matière de science des données et de machine learning ? Quelles sont les nouvelles tendances de la science des données qui valent la peine d’être suivies ? Tous les ans, JetBrains et la Python Software Foundation mènent une enquête auprès des développeurs Python afin de collecter des informations qui aident à répondre à ce type de questions.

Les résultats de la dernière édition de cette enquête, issus de réponses obtenues entre novembre 2023 et février 2024, incluaient une nouvelle section dédiée à la science des données. Cela nous a permis d’obtenir une meilleure vue d’ensemble des tendances de la science des données au cours de l’année dernière et notamment de constater à quel point Python restait important dans ce domaine. 

Utilisation de Python par année

Alors que 48 % des développeurs Python travaillent sur l’exploration et le traitement des données, le pourcentage des répondants utilisant Python pour l’analyse de données a baissé, passant de 51 % en 2022 à 44 % en 2023. L’utilisation de Python pour le machine learning et quant à elle passée de 36 % en 2022 à 34 % en 2023. Dans le même temps, 27 % des répondants ont déclaré utiliser Python pour l’ingénierie des données, tandis que 8 % l’utilisent pour le MLOps, deux catégories qui ont fait leur apparition dans l’édition 2023 de l’enquête. 

Examinons plus en détail les tendances révélées par l’enquête pour les contextualiser et mieux comprendre ce qu’elles signifient. Poursuivez votre lecture pour en savoir plus sur les derniers développements dans les domaines de la science des données et du machine learning pour vous bien vous préparer à 2025.

Traitement des données : pandas reste le premier choix, mais Polars gagne du terrain

Le traitement des données est un aspect essentiel de la science des données. pandas est un projet qui a déjà 15 ans, mais il demeure l’outil de traitement des données le plus prisé. 77 % des répondants qui travaillent sur l’exploration et le traitement des données déclarent l’utiliser. En tant que projet mature, son API est stable et de nombreux exemples de code peuvent être trouvés sur Internet, il n’est donc pas surprenant qu’il soit le premier choix. En tant que projet sponsorisé par NumFOCUS, pandas a démontré qu’il était durable et son modèle de gouvernance a gagné la confiance des utilisateurs. C’est un excellent choix pour les débutants qui ne maîtrisent pas encore le traitement des données, car il s’agit d’un projet stable qui n’est pas sujet à des changements rapides.

De son côté, Polars, qui se présente comme le DataFrames du futur, a été au centre de l’attention l’an dernier et cette année grâce à ses atouts en termes de vitesse et de traitement parallèle. En 2023, une entreprise dirigée par le créateur de Polars, Ritchie Vink, a été créée afin d’accompagner la progression de ce projet et de permettre à Polars de conserver un rythme de développement rapide. La version 1.0 de Polars a été publiée en juillet 2024. Par la suite, Polars a étendu sa compatibilité avec d’autres outils de science des données populaires comme Hugging Face et NVIDIA RAPIDS. Il fournit également un backend léger pour générer des graphiques, tout comme pandas.

Il peut donc être intéressant pour les professionnels de la science des données de passer à Polars. En gagnant en maturité, il pourrait devenir un outil essentiel dans le workflow de science des données et être utilisé pour traiter davantage de données plus rapidement. Dans l’enquête de 2023, 10 % des répondants disaient utiliser Polars comme outil de traitement des données, il est donc probable que le nombre d’utilisateurs augmente encore à l’avenir.

Outils d'exploration et de traitement des données

Que vous soyez un professionnel confirmé ou que vous commenciez à travailler sur votre premier jeu de données, il est essentiel de disposer d’un outil efficace qui rende votre travail à la fois plus productif et agréable. Avec PyCharm vous pouvez inspecter vos données sous forme de tables interactives, que vous pouvez faire défiler, trier, filtrer, convertir en graphiques ou utiliser pour générer des cartes thermiques. De plus, vous pouvez obtenir des résultats d’analyse pour chaque colonne et bénéficier de l’assistance par IA pour expliquer les DataFrames ou créer des visualisations. Cette fonctionnalité de PyCharm est disponible non seulement pour les dataframes pandas et Polars, mais aussi pour les jeux de données Hugging Face, NumPy, PyTorch et TensorFlow.

Une table interactive dans PyCharm 2024.2.2 Pro fournit des outils pour inspecter les DataFrames pandas et Polars
Une table interactive dans PyCharm 2024.2.2 Pro fournit des outils permettant d’inspecter les DataFrames pandas et Polars

La popularité de Polars a mené à la création d’un nouveau projet appelé Narwhals. Indépendant de pandas et Polars, Narwhals vise à unifier les API de ces deux outils (et de nombreux autres). Comme il s’agit d’un projet très récent (débuté en février 2024), il n’apparaît pas encore sur notre liste des outils de traitement des données les plus populaires, mais nous pensons qu’il devrait y figurer dans quelques années.

Spark (16 %) et Dask (7 %), qui permettent de traiter de gros volumes de données grâce à leurs processus de traitement parallèle. La mise en place de ces outils requiert des capacités d’ingénierie un peu plus avancées, mais dans la mesure où la quantité de données dont dépendent les projets dépasse de plus en plus ce qu’un programme Python traditionnel peut gérer, ils seront amenés à prendre de l’importance et leur taux d’utilisation pourrait augmenter.

Visualisation des données : HoloViz Panel va-t-il supplanter Plotly Dash et Streamlit au cours de l’année prochaine ?

L’un des principaux rôles des data scientists est de créer des rapports et d’expliquer leurs découvertes et conclusions au regard des enjeux et des problématiques stratégiques de l’entreprise. Plusieurs outils de visualisation de tableaux de bord interactifs ont été développés pour travailler avec Python. D’après les résultats de notre enquête, le plus populaire d’entre eux est Plotly Dash.

Bibliothèques pour créer des tableaux de bord

Au sein de la communauté de la science des données, Plotly est surtout connu pour ggplot2, une bibliothèque de visualisation très populaire parmi les utilisateurs du langage R. Mais avec la croissance de l’utilisation de Python pour la science des données, Plotly a également fourni une bibliothèque Python qui offre une expérience similaire à celle de ggplot2 en Python. Ces dernières années, Dash, choisir un framework Python pour créer des applications web réactives développées par Plotly est devenu une évidence pour toutes les personnes qui ont l’habitude d’utiliser Plotly et doivent créer un tableau de bord interactif. Cependant, l’API de Dash requiert une connaissance de base des éléments utilisés dans le code HTML pour la conception de la mise en page d’une application. Pour les utilisateurs qui ont peu ou pas d’expérience du frontend, cela peut constituer un obstacle à une utilisation efficace de Dash.

Streamlit, qui est maintenant associé à Snowflake, arrive second dans la catégorie « meilleur tableau de bord de visualisation ». Cet outil est plus récent que Plotly, mais il monte en puissance depuis quelques années, car il est facile à utiliser et inclut un outil de ligne de commande. Bien que Streamlit ne soit pas aussi personnalisable que Plotly, ses présentations de tableaux de bord sont assez faciles à créer et il prend en charge les applications multipages, ce qui permet de concevoir des applications plus complexes.

Cependant, dans les résultats de 2024, ces chiffres pourraient légèrement changer. De nouveaux outils émergents pourraient rattraper, voire surpasser ces applications en termes de popularité. L’un d’entre eux est HoloViz Panel. Il s’agit de l’une des bibliothèques de l’écosystème HoloViz, qui est sponsorisée par NumFocus et gagne du terrain au sein de la communauté PyData. Panel permet aux utilisateurs de générer des rapports au format HTML et fonctionne également très bien avec les notebooks Jupyter. Il fournit des modèles pour aider les nouveaux utilisateurs à bien démarrer, ainsi que de nombreuses options de personnalisation pour les utilisateurs experts qui souhaitent affiner leurs tableaux de bord.

Modèles de ML : la prédominance de scikit-learn se confirme, tandis que PyTorch est le plus populaire pour le deep learning

L’IA générative et les LLM ayant beaucoup fait parler d’eux au cours des dernières années, on pourrait s’attendre à ce que les frameworks et les bibliothèques de deep learning aient complètement pris le dessus, mais cela n’est pas tout à fait le cas. Il reste encore beaucoup d’informations qui peuvent être extraites des données au moyen des méthodes statistiques traditionnelles offertes par scikit-learn, une bibliothèque de machine learning reconnue et principalement gérée par des chercheurs. Sponsorisée par NumFocus depuis 2020, elle demeure la bibliothèque la plus importante pour le machine learning et la science des données. SciPy, une autre bibliothèque Python offrant la prise en charge des calculs scientifiques, figure aussi parmi des bibliothèques les plus utilisées pour la science des données.

Frameworks pour l'entraînement des modèles de ML et la prédiction

Pour autant, on ne peut pas ignorer l’impact du deep learning et l’augmentation de l’utilisation des frameworks de deep learning. PyTorch, une bibliothèque de machine learning créée par Meta, est désormais sous la gouvernance de la Linux Foundation. Sur la base de ce changement, on peut s’attendre à ce que PyTorch reste une bibliothèque majeure de l’écosystème open source et que sa communauté maintiendra un niveau actif d’implication. C’est le framework de deep learning le plus utilisé et il est particulièrement apprécié par les utilisateurs de Python, notamment par ceux qui sont familiers avec NumPy, car les « tenseurs », qui sont les structures de données de base de PyTorch, sont très similaires aux tableaux NumPy. 

Inspectez les tenseurs PyTorch dans PyCharm 2024.2.2 Pro comme vous le faites pour les tableaux NumPy
Vous pouvez inspecter les tenseurs PyTorch dans PyCharm 2024.2.2 Pro tout comme vous le faites pour les tableaux NumPy

Contrairement à TensorFlow, qui utilise un graphe de calcul statique, PyTorch utilise un graphe dynamique, ce qui facilite grandement le profilage en Python. De plus, PyTorch fournit une API de profilage, ce qui en fait un excellent choix pour la recherche et l’expérimentation. Toutefois, si votre projet de deep learning requiert un déploiement évolutif et doit prendre en charge plusieurs langages de programmation, il peut être préférable d’opter pour TensorFlow, qui est compatible avec de nombreux langages, parmi lesquels C++, JavaScript, Python, C#, Ruby et Swift. Keras est un outil qui rend TensorFlow plus accessible et qui est aussi populaire pour les frameworks de deep learning.

Hugging Face Transformers est un autre framework incontournable pour le deep learning. Hugging Face est un hub qui fournit de nombreux modèles de deep learning très avancés et pré-entraînés qui sont très appréciés par les communautés de la science des données et du machine learning et que vous pouvez télécharger et entraîner davantage vous-même. Transformers est une bibliothèque maintenue par Hugging Face et sa communauté pour un machine learning de pointe avec PyTorch, TensorFlow et JAX. Hugging Face Transformers devrait attirer davantage d’utilisateurs en 2024 en raison de la popularité des LLM. 

PyCharm permet d’identifier et de gérer les modèles Hugging Face dans une fenêtre d’outils dédiée. Il vous aide également à choisir le bon modèle pour votre cas d’utilisation à partir d’un grand nombre de modèles Hugging Face directement dans l’IDE. 

Scikit-LLM est une nouvelle bibliothèque à laquelle s’intéresser car elle permet de d’exploiter des modèles d’Open AI comme ChatGPT et de les intégrer avec scikit-learn. Cela s’avère très pratique lorsqu’on doit analyser du texte et vous pouvez effectuer l’analyse à partir de modèles de scikit-learn avec toute la puissance de LLM modernes.

MLOps : le futur des projets de science des données

Le MLOps (opérations de machine learning) constitue un aspect essentiel mais souvent négligé des projets de science des données. Dans le workflow des projets de science des données, les data scientists doivent gérer les données, ré-entraîner le modèle et contrôler les versions pour toutes les données et les modèles utilisés. Parfois, lorsqu’une application de machine learning est déployée en production, il est aussi nécessaire d’observer et de surveiller ses performances et son utilisation.

Des outils de MLOps conçus pour les projets de science des données ont fait leur apparition au cours des dernières années. L’un des problèmes qui préoccupe les data scientists et les ingénieurs de données est le versioning des données, un élément crucial lorsque votre pipeline reçoit constamment des données. 

Outils pour le versioning des données

Les data scientists et les ingénieurs des données doivent également pouvoir suivre leurs expérimentations. Étant donné que le modèle de machine learning sera ré-entraîné avec de nouvelles données et que les hyperparamètres seront affinés, il est important de pouvoir garder une trace du modèle d’entraînement et des résultats des expérimentations. Actuellement, l’outil le plus populaire pour cela est TensorBoard. Toutefois, cela pourrait changer bientôt. TensorBoard.dev a été déprécié, les utilisateurs doivent donc maintenant déployer leurs propres installations TensorBoard localement ou partager les résultats en utilisant l’intégration de TensorBoard avec Google Colab. Par conséquent, l’utilisation de TensorBoard risque de diminuer au profit d’autres outils tels que MLflow et PyTorch.

Outils de suivi des expérimentations

La mise en production de l’environnement de développement est une autre étape de MLOps nécessaire pour garantir le bon déroulement des projets de données. L’utilisation de conteneurs Docker, une pratique courante de développement chez les ingénieurs logiciels, semble avoir également été adoptée par la communauté des data scientists. Elle permet d’assurer que les environnements de développement et de production restent cohérents, ce qui est important pour les projets de science des données impliquant des modèles de machine learning qui doivent être déployés en tant qu’applications. Nous pouvons voir que Docker est plébiscité par les utilisateurs de Python qui ont besoin de déployer des services sur le cloud.

Comment développez-vous pour le cloud ?

Cette année, les conteneurs Docker devancent légèrement Anaconda dans la catégorie « Installation et mise à niveau de Python ».

Installation et mise à niveau de Python 2023
Résultats de l’enquête 2023
Installation et mise à niveau de Python 2022
Résultats de l’enquête 2022

Big data : quelle quantité de données est suffisante ?

L’une des principales idées reçues concernant le big data est que nous aurons besoin de plus de données pour entraîner des modèles plus performants et complexes afin d’améliorer les prédictions. Pourtant, cela n’est pas le cas. Les modèles pouvant être surajustés, plus ne veut pas forcément dire mieux en matière de machine learning. Différents outils et approches peuvent être requis en fonction du cas d’utilisation, du modèle et de la quantité de données traitées simultanément.

Solutions de big data

Le défi lié à la gestion de grandes quantités de données en Python provient du fait que la plupart des bibliothèques Python reposent sur le stockage des données en mémoire. On pourrait déployer des ressources de cloud computing avec de grandes quantités de mémoire, mais même cette approche a ses limites et peut parfois se révéler lente et coûteuse.

Pour traiter de grandes quantités de données difficiles à stocker en mémoire, une solution commune consiste à utiliser des ressources informatiques distribuées. Les tâches et les données sont réparties dans un cluster pour être exécutées et traitées en parallèle. Cette approche rend les opérations de science des données et de machine learning évolutives, et le moteur le plus utilisé pour cela est Apache Spark. Spark peut être utilisé avec la bibliothèque d’API Python PySpark.

Outils big data 2023

Concernant Spark 2.0, il est recommandé aux utilisateurs de l’API RDD de Spark de passer à Spark SQL, qui offre de meilleures performances. Spark SQL facilite également le traitement des données pour les data scientists, car il permet d’exécuter des requêtes SQL. PySpark devrait rester le choix le plus populaire pour 2024.

Databricks est un autre outil populaire pour la gestion des données dans les clusters. Si vous utilisez Databricks pour travailler sur vos données dans des clusters, vous profiter de l’intégration puissante de Databricks et PyCharm qui permet d’écrire du code pour vos pipelines et vos tâches dans PyCharm, puis de le déployer, de le tester et de l’exécuter en temps réel sur votre cluster Databricks sans configuration supplémentaire.

Communautés : les événements mettent de plus en plus en avant la science des données

La plupart des personnes qui commencent à utiliser Python le font pour des activités de science des données et de plus en plus de bibliothèques Python sont donc consacrées aux cas d’utilisation dans ce domaine. Par ailleurs, les événements Python comme PyCon et EuroPython commencent à proposer davantage de présentations, d’échanges et d’ateliers dédiés à la science des données, et les événements portant spécifiquement sur ce domaine tels que PyData et SciPy sont toujours autant appréciés.

Pour conclure

De plus en plus de nouveaux outils open source sont disponibles en réponse au dynamisme croissant de la science des données et du machine learning et à la popularité de l’IA et des LLM. L’univers de la science des données continue à évoluer rapidement et nous avons hâte de voir quelles seront les prochaines tendances majeures.

Améliorez votre expérience de la science des données avec PyCharm

La science des données moderne requiert des compétences pour une large gamme de tâches, parmi lesquelles le traitement des données et la visualisation, le code, le déploiement de modèles et la gestion de grands jeux de données. En tant qu’environnement de développement intégré (IDE), PyCharm vous aide à développer ces compétences. Il fournit une assistance intelligente au codage, un débogage de haut niveau, le contrôle de version, la gestion intégrée des bases de données et une intégration fluide avec Docker. Pour la science des données, PyCharm prend en charge les notebooks Jupyter, ainsi que les bibliothèques scientifiques et de machine learning clés, et il s’intègre avec des outils tels que la bibliothèque de modèles Hugging Face, Anaconda et Databricks.

Commencez à utiliser PyCharm pour vos projets de science des données et profitez de ses dernières améliorations, telles que l’inspection des DataFrames pandas et Polars et l’inspection des tenseurs PyTorch couche par couche pour l’exploration des données et la création de modèles de deep learning.

Auteur de l”article original en anglais :

Cheuk Ting Ho

Cheuk Ting Ho

image description