Bienvenue !
Ce cours technique a été conçu pour tous les Data Scientists et Machine Learning Engineers en cours de formation qui souhaitent aiguiser davantage leurs compétences en apprentissage supervisé.
Si vous pensez que l'essor de l’IA générative a rendu l’apprentissage supervisé obsolète, alors détrompez-vous ! Comme le disait Andrew Ng, l’un des pionniers de l’IA moderne, lors de sa présentation à l'université de Stanford en 2023, l’apprentissage supervisé restera la forme la plus répandue d’utilisation d’IA en entreprise dans les prochaines années. Vous ne pouvez donc pas passer à côté. ;)
Rencontrez votre professeur
Bonjour ! Je suis Zakaria Bouayyad, Machine Learning Engineer et Formateur Data en Freelance. Après avoir obtenu mon diplôme de Grande École d’ingénieur chez Télécom SudParis en 2018, j’ai réalisé pendant quelques années plusieurs projets de Machine Learning au sein du cabinet Capgemini Invent dans les secteurs du Manufacturing et du Retail, puis au sein du groupe d’outillage haut de gamme Hilti. Je suis également mentor chez OpenClassrooms depuis 2021 sur les parcours Data Scientist, Data Analyst et Machine Learning Engineer.
Découvrez le fonctionnement du cours
Dans ce cours, vous allez approfondir les connaissances en apprentissage supervisé que vous avez acquises à travers le cours Initiez-vous au Machine Learning. En effet, nous partons du principe que vous avez déjà dans l’ensemble une bonne compréhension du cours d’initiation, même si nous faisons quelques rappels ponctuels de certains concepts au fil des chapitres.
Ce cours est décomposé en 3 parties :
Partie 1 : Nous y faisons un rappel des concepts de base de la régression et de la classification, avant de nous focaliser sur les deux volets incontournables de la préparation de données pour le ML : le feature engineering, et les différents découpages possibles de la donnée en jeu d’apprentissage et de test.
Partie 2 : Nous allons ajouter plusieurs cordes à notre arc quand il s’agit d’évaluer la performance de notre modèle de ML supervisé. En régression comme en classification, nous verrons l’importance d’avoir un benchmark, d’analyser dans le détail les erreurs de nos modèles, puis de donner quelques pistes d’optimisation des performances des modèles.
Partie 3 : Nous nous concentrons ici sur les compétences qui entrent en jeu une fois qu’on a sécurisé un modèle supervisé fiable. En effet, nous allons aborder comment rendre transparent le lien entre votre modèle et ses variables, ainsi que comment le déployer dans le Cloud de manière simple, pour que d’autres personnes puissent s’en servir. Enfin, nous allons comprendre comment maintenir un modèle en production en employant diverses stratégies.
Il est important de préciser certains points qui ne seront PAS abordés dans ce cours :
Nous n’allons pas rentrer dans le détail mathématique du fonctionnement des différents algorithmes utilisés. À certains moments, nous allons évoquer des spécificités importantes de certains algorithmes quand cela est pertinent, mais sans aller plus loin.
Nous n’allons pas aborder l’IA générative (les LLMs par exemple) dans ce cours.
Découvrez le projet fil rouge du cours
Pour illustrer tous les concepts et les méthodes que nous allons apprendre, nous avons préparé un jeu de données sur le thème de l’immobilier avec un projet guidé tout le long du cours.
En effet, l’objectif de ce projet est de construire une approche d’apprentissage supervisé qui permet d’estimer de manière fiable la valeur d’une transaction immobilière et d’identifier si cette transaction est en dessous de la moyenne du marché, donc si c’est une bonne affaire. Vous aurez créé un mini-équivalent de l’Argus pour l’achat des voitures !
Pour ce faire, vous allez vous servir des données préparées suivantes, que vous pouvez :
utiliser via GitHub si vous êtes à l’aise avec Git.
Démontrer l’importance de Polars comme alternative à Pandas prendrait beaucoup trop de temps, mais si je devais me contenter de vous donner seulement 2 raisons, je choisirais les arguments suivants :
Polars utilise exclusivement un langage de programmation nommé Rust qui accélère énormément les calculs. En fait, même quand vous exécutez des lignes de codes écrites en Python, ce qui mouline derrière est du Rust et non pas du Python. Ceci est fait exprès, car Python est un langage lent en comparaison au langage C ou encore à Rust ;
Polars est particulièrement performant pour gérer de grandes quantités de données, notamment lorsque l'on travaille avec des DataFrames contenant plusieurs millions de lignes et des centaines de colonnes. Cette efficacité est due à sa capacité à paralléliser automatiquement les calculs.
Si vous travaillez avec un jeu de données de quelques milliers de lignes, utiliser Polars serait un peu excessif. Toutefois, je vous conseille vivement de devenir ambidextre avec Pandas et Polars ! D’ailleurs, les créateurs de Polars savent que beaucoup de leurs utilisateurs sont des habitués de Pandas. Ils ont donc créé ce guide (en anglais) exprès pour vous aider à réaliser cette “migration”. ;)
Alors, prêt à me suivre dans l’aventure ? C’est parti !