outils machine learning

10 outils à maîtriser pour le machine learning

Le développement soudain du machine learning a entraîné dans son sillage l’émergence d’un grand nombre d’outils robustes et fonctionnels que vous devez maîtriser. J’ai regroupé les outils que j’utilise au quotidien dans la plupart de mes projets. Ces outils couvrent toutes les étapes du processus de construction d’un modèle de machine/deep learning : stockage et traitement des données, entraînement des modèles, gestion du code, mise en production.

10 outils à maîtriser pour le machine learning

Python vs R

Cessez de vouloir choisir entre Python et R! Je suis convaincu que la maitrise des 2 langages vous aidera dans votre travail. Surtout que les deux sont assez similaires et font partie des langages les plus faciles à apprendre.

Pour Python, les librairies dont je parle dans cet article suffisent à prouver que c’est un langage indispensable pour faire du machine learning.

Pour R, il reste le langage de référence pour les statisticiens, et tant que la data science reposera sur des stats les data scientists en auront besoin (donc pour pas mal de temps encore).

Pandas, NumPy, Matplotlib, SciPy, etc.

Lorsque l’on veut entraîner des modèles de machine/deep learning, on doit être capable de mettre en forme efficacement nos données, d’extraire des métriques sur ces modèles et d’évaluer et de visualiser correctement nos résultats. On a plus ou moins d’étapes en fonction du type de données :

Pour mener à bien toutes ces étapes il faut maitriser les bons outils et plusieurs librairies python sont là pour nous faciliter la tâche.

  • Pandas permet de gérer facilement les données sous forme de tableau,
  • NumPy inclut la majorité des fonctions mathématiques de bases, et est très utilisé pour le traitement de matrices, avec des images par exemples,
  • Matplotlib est la librairie de référence pour la visualisation et le tracé de courbes,
  • SciPy inclut de nombreuses fonctions mathématiques, d’algèbre linéaire notamment, et constitue une extension des fonctionnalités de Numpy.

Scikit-learn

Scikit-learn fait aussi partie des librairies qui rendent le machine learning plus facile.

En plus d’inclure de nombreuses fonctions de pré-traitement des données de tous types, Scikit-learn contient la grande majorité des modèles de machine learning que vous pourriez utiliser :

  • Classification:
    • Random forest et arbres de décisions
    • SVM
    • Classifieurs de Bayes
  • Clustering :
    • kmeans
    • DBScan
    • Méthodes spectrales
  • Régression :
    • Linéaire
    • Ridge, Lasso, etc.
    • Random forest regressor
  • Réduction de la dimension :
    • ACP
Scikit-learn algorithm cheat-sheet
Scikit-learn algorithm cheat-sheet

Tensorflow (ou PyTorch)

Tensorflow est le framework de référence lorsque vous travaillez sur des projets de deep learning. En tant que data scientist vous devez le maitriser.

Tensorflow avec la sur-couche Keras, permet de coder et d’entraîner un réseaux de neurones en quelques lignes. Tous les algorithmes de deep learning y sont implémentés et vous pouvez trouver un grand nombre de ressources gratuites pour vous aider à apprendre à utiliser le framework.

SQL

SQL is dead, long live SQL!

A l’heure du machine learning, le SQL est bousculé. Constamment remis en cause par de nouveaux outils. Concurrencé de toutes parts. Mais il est vivant.

Bon je l’avoue, pas pour très longtemps, la citation est juste là car je la trouve cool 🙂

En attendant sa mort programmée, SQL reste un des meilleurs outils de gestion de bases données et beaucoup d’entreprises reposent sur des bases SQL. Voilà pourquoi j’ai décidé de l’inclure dans cette liste.

GitHub / GitLab

git, github et gitlab, outils de machine learning

GitHub et GitLab sont pour moi les meilleurs outils git pour gérer son code efficacement, surtout lorsque vous travaillez sur des projets qui impliquent plusieurs développeurs.

Ces outils vous permettent de sécuriser vos codes en ayant une sauvegarde à un autre endroit qu’en local sur votre ordinateur. De plus vous pouvez gérer les versions de vos codes efficacement (autrement qu’en sauvegardant des fichiers blabla_1.py, blabla_2.py un peu partout). D’ailleurs, j’aime beaucoup le système de branches qui vous permet de comparer les différentes versions de vos codes et ne garder que la meilleure.

GitLab et GitHub peuvent aussi être utiles pour partager vos codes plus proprement, avec un readme qui explique le principe du projet et un fichier requirements.txt qui recense les librairies avec les bonnes versions à installer pour tester le code.

Ca peut prendre du temps à mettre en place, mais c’est nécessaire et ça vous fera gagner du temps plus tard.

En parlant de GitHub, vous pouvez suivre La revue IA pour accéder à tous nos codes!

Docker

docker, outils machine learning

Docker est un outil qui vous permet de créer du code de façon plus propre est reproductible. J’avoue qu’au départ j’étais un peu brouillon, j’avais pour habitude de coder sans me soucier de mon environnement de travail. « C’est juste pour tester » était ma phrase préférée(elle l’est encore un peu ahah).

Cette façon de faire engendre pas mal de problèmes de compatibilités entre versions des librairies et complique considérablement le travail en groupe. Docker vous permet de créer un environnement virtuel avec seulement les dépendances dont vous avez besoin pour tester un code. Je trouve l’utilisation de Docker plus naturelle qu’avec les venv python, même si elle nécessite la maîtrise d’un nouvel outil.

Docker est aussi utilisé pour l’automatisation de tâches et permet de sécuriser votre travail puisqu’il crée un environnement opaque.

Outils de déploiement

On demande de plus en plus aux data scientists d’être capables de mener un projet data du début à la fin. Le data scientist n’est plus qu’un simple développeur, il doit pouvoir sortir de son notebook Jupyter et mettre en production ses modèles.

Les outils les plus utilisés pour le déploiement de modèles sont Google cloud, AWS, et Azure. Maîtriser au moins l’un de ces outils vous aidera à aller plus loin dans votre travail et vous permettra de rendre vos codes fonctionnels.


Voilà pour cette liste (non-exhaustive) d’outils de machine learning qui peuvent améliorer votre façon de coder et d’organiser vos projets. N’hésitez pas à me dire ce que vous en pensez ou à me proposer votre liste d’outils indispensables.