Contenu du cours
L'objectif de ce cours est de présenter le cadre de l'apprentissage machine ainsi que les concepts fondamentaux qui y sont liés : les données et les hypothèses formulées, avant d'aborder différents algorithmes classiques d'apprentissage supervisé dans différents contextes.
Une première séance sera consacrée à la présentation de l'importance des données et des problématiques en apprentissage : apprendre un bon modèle capable de bien généraliser sur de nouvelles données. Cette étude là sera abordée sur le plan théorique et pratique (bornes et cross-validation) afin de poser les bases d'un protocol expérimental en abordant les notions de fonctions de pertes, de risque ou encore de mesures de performances. Nous présenterons ensuite quelques algorithmes classiques en Supervised Machine Learning (k-NN, SVM, Régression linéaire ou logistique, arbres de décisions et réseaux de neurones). Il conviendra également de comprendre comment tels modèles sont appris, ainsi quelques rappels en optimisation seront effectuées pour comprendre le fonctionnement des solveurs. Enfin, nous finirons cette étude algorithmes par la présentation de méthodes ensemblistes (bagging et boosting) avec quelques algorithmes emblématiques comme les random forest, adaboost ou plus généralement le gradient boosting.
Les séances de TD auront à coeur de mettre en application ces différents algorithmes à travers la mise en place de protocoles expérimentaux concis et précis pour la comparaison d'algorithmes. Nous étudierons également une méthode permettant d'établir une borne en généralisation pour un algorithme.
Cours
Vous y trouver les différents slides ainsi qu'un polycopié reprenant toutes les notions vues en cours mais de façon plus détaillées.
Exercices en ligne
Vous trouverz un lien vers des exercices, sous format QCM ou réponse à compléter, ci-dessous. Ces derniers. Ces derniers vous proposent de vérifier vos connaissances du cours et de mettre en application les différentes notions. Les questions recouvrent l'ensemble des notions abordées en cours.
Notebooks Python
Les différents notebook vous permettront de visualiser/illustrer les notions du cours sur des données simulées et des jeux de données disponibles dans scikit-learn. Vous serez amenés à construire un modèle et étudier leur comportement en élaborant vous même votre code sur la base d'exemples fournis ou simplement étudier l'influence de paramètres d'un modèle.
Exercices
Une fiche de TD est disponible afin de vous faire effectuer quelques exercices d'applications sur les algorithmes de Machine Learning présentés en classe.
Un deuxième fichier contient un travail vous proposant de construire une borne en généralisation pour l'algorithme du SVM.
Travaux Pratiques
Le lien ci-dessous vous permettra de télécharger des jeux de données que vous pourrez utiliser lors de votre séance pratique. Il s'agit uniquement de jeux de données permettant de faire de la classification binaire.
Vous pourrez ensuite télécharger les deux fichiers python que l'on trouve ci-dessous afin de vous permettre de travailler pendant la séance pratique
