Quelles sont les bibliothèques Python pour le machine learning ?

Une bibliothèque est un ensemble de fonctions et de routines que l’on peut réutiliser facilement. Python est un langage de programmation open source qui possède de nombreuses librairies. En tant que débutant en machine learning, il peut être compliqué de s’y retrouver. C’est pourquoi nous vous proposons dans cet article notre sélection de librairies utiles pour devenir un pro du machine learning. 

Manipulation de données

Numpy

Son nom signifie Numerical Python. C’est une librairie incontournable en Python. Sa spécificité ? Elle permet de faire du calcul numérique et permet la gestion des tableaux de données et matrices. Elle possède la plupart des fonctions usuelles telles que l’exponentielle, le logarithme ou encore arctan. De plus, elle est optimisée pour les calculs et va permettre de paralléliser les opérations, c’est-à-dire utiliser tous les processeurs de l’ordinateur pour aller plus vite dans les calculs. Pour des formats de type données, comme un CSV par exemple, numpy ne va pas permettre d’étiqueter les données. Grâce à cette librairie, vous pouvez intégrer directement du code en C, C++ ou Fortran. 

Scipy

Une alternative à Numpy est Scipy qui est une librairie aussi basée sur Numpy. 

Pandas

La librairie Pandas est basée sur Numpy et permet de manipuler facilement des données structurées : 

  • Créer des nouvelles colonnes
  • Gérer les données manquantes
  • Filtrer des données
  • Agréger des informations selon des colonnes
  • Calculer des métriques telles que la moyenne, la médiane ou des sommes. 

Elle est basée sur 2 types d’objets : les séries, très similaires aux listes en termes de fonctionnement et les data frames qui sont donc des tableaux à plusieurs colonnes. On peut aussi inclure un type d’objet appelé Panels qui permet de manipuler des objets en 3 ou 4 dimensions. 

De plus, elle facilite la lecture de données provenant de différentes sources : CSV, SQL ou encore texte. Bref, c’est l’outil incontournable pour manipuler des données sur Python. Cette librairie permet aussi d’avoir une meilleure vue d’ensemble sur les données. 

Visualisation

Matplotlib

Lorsqu’on fait du machine learning, et plus généralement de la data, il est nécessaire de savoir représenter les données. Cela est notamment un premier niveau d’information et cela permet aussi de faire un premier filtre entre les données utiles et celles qui ne le sont pas. 

Pour ceux qui auraient déjà utilisé Matlab verront que les capacités de visualisation de Matplotlib sont très similaires. Cependant, le caractère open source de Python, et donc de Matplotlib, fait que de nombreux data scientists vont se tourner vers Python. 

Seaborn

Un autre outil de visualisations de données est Seaborn, qui est adaptée à Pandas et qui vient souvent en complément de Matplotlib. De plus, elle est réputée pour être plus fonctionnelle car ses visualisations par défaut sont plus esthétiques. Autre avantage : il est possible de construire via Seaborn des tableaux de bord, ce qui serait très compliqué à faire via Matplotlib

Le nom de Bokeh en tant que librairie de visualisation revient aussi régulièrement. 

Machine learning et Deep Learning 

Scikit-learn

Rentrons maintenant dans les bibliothèques permettant de faire des modèles de machine learning. Pour tous les modèles les plus classiques, c’est le package qu’il faut connaître. Lors de votre phase d’apprentissage vous le croiserez presque sûrement ! 

Il possède de nombreux modèles avec des paramètres classiques mais aussi de nombreuses variantes qui permettent d’avoir une multitude de possibilités ! De plus, cette librairie possède de nombreuses métriques qui vous permettront d’évaluer la qualité de vos modèles. Elle permet de gérer de bout en bout la création d’un algorithme de machine learning : 

  • Formatage des modèles
  • Découpage des datasets
  • Paramétrer des datasets 
  • Entraîner des modèles
  • Tester des modèles
  • Évaluer des modèles 

Pour vos premiers modèles de machine learning, c’est LA librairie à utiliser. Pour des modèles de base nécessitant une prédiction, une classification ou du clustering, il n’y a pas meilleure librairie. On peut aussi y créer des modèles de réseaux de neurones, bien que cela ne soit pas la librairie la plus reconnue à ce sujet. Et pour des modèles plus complexes, elle conviendra souvent. De plus, scikit-learn est construite sur Scipy et permet donc d’opérer sur des données basées sur cette librairie. 

Parmi les modèles existants, vous trouverez : 

  • K-plus proches voisins
  • K-means
  • Régression linéaire avec de nombreuses variantes
  • Régression logistique
  • Arbre de décision de random forest
  • SVM (support vector machine)

Keras

Si vous souhaitez implémenter des modèles de Deep Learning, une librairie comme Keras est très pertinente puisqu’elle a été conçue à cette fin. Développée par un ingénieur de Google, François Chollet, cette librairie facilite énormément la création de réseaux de neurones. Bien que je vous conseille, pour apprendre et bien comprendre d’implémenter vous-mêmes vos premiers réseaux de neurones, une fois cette phase d’apprentissage passée, une libraire comme Keras vous permettra un développement plus efficace plutôt que de tout refaire. Cette librairie a été conçue pour permettre aux développeurs un développement plus rapide. 

Cette librairie peut s’exécuter sur des CPU (Central Processing Unit - ce qu’on appelle communément les processeurs) et des GPU (Graphics Processing Unit) qui vont accélérer les calculs.

De plus, vous pouvez réutiliser des modèles déjà faits par d’autres personnes pour les réutiliser à votre sauce sur les sujets sur lesquels vous voulez travailler. Autre point : il est facile d’utiliser cette librairie, donc pour vos premiers modèles non guidés par des TP ou autres exercices, nous vous conseillons de commencer par Keras car cette librairie est facile et intuitive à utiliser. 

Tensorflow

C’est une alternative à Keras, créée aussi par Google, mais cette fois Google.Brain. Elle permet de travailler sur des réseaux de neurones et est notamment très bien intégrée avec tout l’écosystème de Google Cloud. Cette librairie est aussi disponible pour effectuer directement des calculs dans des applications ou sur le navigateur d’un ordinateur. ll est parfois reproché à cette librairie d’être un peu compliqué à prendre en main. Mais cela est compensé par sa grande flexibilité. 

Tout comme Keras, cette librairie est utilisée par les CPU, les GPU mais aussi, et c’est là qu’elle a les meilleures performances, sur les TPU (Tensor Processing Unit) développés par Google pour ce type spécifique de tâche. 

De plus, la communauté autour de cet outil est très active et il devient de plus en plus facile de lancer “en production” de telles applications et de les lancer à grande échelle. 

Pytorch

Voici une seconde alternative à Keras : PyTorch. Cette librairie permet donc aussi de lancer à grande échelle des modèles de machine learning. Elle est disponible dans les différents grands Cloud : AWS (Amazon), Google Cloud, Azure (Microsoft) ou encore Alibaba Cloud.

Pour les données textuelles et faire ce que l’on appelle du NLP (natural language processing), cette librairie est tout à fait adaptée.  

Citons deux dernières alternatives pour créer des modèles de deep learning : Theano et Microsoft Cognitive Toolkit. 

Cas d’usages connexes

Networkx

Pour manipuler des réseaux, appelés aussi graphes, Networkx est la bonne librairie Python. Elle vous permet de manipuler des réseaux complexes, de faire des calculs dessus et de les représenter. Vous souhaitez par exemple représenter le réseau ferroviaire français sur un graphe ? Alors Networkx est la bonne librairie Python pour le faire. 

NLTK

Travailler sur des données textuelles ? C’est ce que permet NLTK ! Cette librairie est spécialisée sur le text mining et permet d’extraire et de manipuler des textes sur Python. Si vous avez une application sémantique, NLTK vous servira sûrement à un moment ou à un autre. 

OpenCV

OpenCV signifie Open Source Computer Vision. Elle a été créée pour les applications de Computer Vision et accélérer leur déploiement. Elle prend en entrée de nombreuses entrées visuelles telles que des images et des vidéos. Elle permet par exemple de faire ce qu’on appelle de l’OCR (Optical character recognition) permettant de résoudre les problèmes de reconnaissance de caractère sur une image ou par exemple un PDF. Les tableaux reconnus par OpenCV peuvent ensuite être directement transformés en objets numpy pour les retraiter facilement en Python. De plus, cette librairie s’intègre bien avec Matplotlib. 

Nous vous avons présenté la liste des librairies utiles en Python pour le machine learning. Cependant, cette liste pourrait être complétée. Des libraires utiles pour la collecte de données telles que Requests, Scrapy ou Beautifulsoup auraient par exemple pu avoir leur place dans cet article mais nous avons préféré nous concentrer sur les outils coeurs nécessaires au machine learning : 

  • Lire des données
  • Traiter des données
  • Visualiser des données
  • Créer des modèles mathématiques basés sur de la donnée

Plus d'articles du même genre ◆◆

Inscris-toi à notre newsletter

Je veux connaître l'actualité de l'école ◆◆

Nous avons bien reçu vos informations !
Vous voilà inscrit à notre newsletter !
Oops! Something went wrong while submitting the form.

Let's meet ◆◆

Tu veux en savoir plus sur ALBERT SCHOOL ? L'équipe est dispo pour répondre à toutes tes questions.