TP Apprentissage M1 SD

Objectifs

Programmer les méthodes d’apprentissage vues en cours (estimation de gaussiennes, kppv, séparation linéaire, MLP), évaluer leurs performances sur des jeux de données test, comparer les méthodes, …

Evaluation

Rapport présentant l’implémentation algorithmique des méthodes, les résultats obtenus ainsi qu’une discussion des résultats.


Données de travail

On dispose pour 3 problèmes de classification à 5 classes {1,2,3,4,5} dans RxR de 100 échantillons par classe pour l’apprentissage (data_tp{1,2,3}_app.txt) et 100 échantillons par classe pour le test (data_tp{1,2,3}_dec.txt) des classifieurs (archive.zip).
On peut visualiser la répartition de ces échantillons (data_tp{1,2,3}_{app,dec}.gif).


Estimation de gaussiennes

  • Programmer un classifieur par distance euclidienne minimum. Le tester sur les 3 jeux de données. Evaluer ses performances (taux d’erreur en Top1 et Top2, matrice de confusion). Conclusion.
  • Programmer un classifieur par distance de Mahalanobis minimum. Le tester sur les 3 jeux de données. Evaluer ses performances (taux d’erreur en Top1 et Top2, matrice de confusion). Conclusion.
  • Comparer les performances des deux classifieurs notamment en dissociant l’analyse sur les 3 jeux de données. Conclusion.

K plus proches voisins

  • Programmer un 1ppv. Le tester sur les 3 jeux de données. Evaluer ses performances (taux d’erreur, matrice de confusion). Conclusion.
  • Programmer un 5ppv. Le tester sur les 3 jeux de données. Evaluer ses performances (taux d’erreur en Top1 et Top2, matrice de confusion). Conclusion.
  • On souhaite maintenant déterminer la meilleure valeur de k sur chacun des 3 jeux de données. Déterminer par validation croisée (4 fold) sur les données d’apprentissage cette valeur de k. Evaluer les performances (taux d’erreur).

Séparation linéaire

  • Programmer l’algorithme d’apprentissage du perceptron vu en cours sur les données tp3. On étudiera en particulier 2 façons de séparer les classes:
    • en cherchant un hyperplan qui sépare une classe d’une autre (soit pour 5 classes, 5*4/2 hyperplans à déterminer);
    • en cherchant un hyperplan qui sépare une classe de toutes les autres (soit pour 5 classes, 5 hyperplans à déterminer).
  • Afficher le résultat de ces 2 apprentissages sur la base d’apprentissage et sur la base de test. Evaluer ses performances (taux d’erreur, matrice de confusion). 
  • Appliquer cet algorithme sur les données tp1 et tp2. Que constatez-vous ? Modifier l’algorithme pour qu’il converge vers une solution. Afficher le résultat. Evaluer les performances (taux d’erreur, matrice de confusion) sur les données tp1 et tp2. Conclusion.

Perceptron multi-couches

  • Programmer l’algorithme d’apprentissage d’un MLP 2-3-5 sur les données tp3. Evaluer ses performances.
  • Etudier l’influence du nombre de neurones de la couche cachée sur les performances. Comparer votre algorithme sur les données tp1 et tp2.
  • Etendre l’algorithme d’apprentissage à 2 couches cachées. Comparer avec l’algorithme initial sur les données tp1, tp2 et tp3.

Synthèse

Comparer les performances obtenues (temps de calcul, taux d’erreur, matrice de confusion,…) par chacune des méthodes sur les 3 jeux de données. Conclusion.