Entraînement et évaluation d’une méthode de régression DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI LOG770 - SYSTÈMES INTELLIGENTS ÉTÉ 2012 Entraînement et évaluation d’une méthode de régression Enseignant : Christian Desrosiers Chargée de laboratoire : Faten M’hiri
Méthode de régression Un peu de théorie
Méthode de régression Ce que la régression n’est pas: Classification : prédire la classe d’un exemple à partir de ses attributs: ex : classe = pomme Interpolation/Extrapolation : analyser la relation entre des attributs et une sortie continue. La relation est non-bruitée. Ajouter tableau comparatif pour + d’info
Méthode de régression(2) La régression : sortie continue, présence de bruit. Sachant un vecteur d’attributs x et une valeur continue y, on cherche la relation f telle que: y = f(x) + ԑ ԑ : représente le bruit Ex: valeur$ = f([marque, année, options]) + ԑ
Méthode de régression(3) Défis de la méthode de régression: La fonction f est inconnue: Choisir un modèle g(x;θ) qui serait similaire à f (à l’aide des n données d’apprentissage {xi,yi} avec i = 1,..,n) La présence de bruit ԑ
Méthode de régression (4) Données d’apprentissage: Trouver un modèle g(x;θ) tel que : Erreur MSE = 1/n Σi (g(xi;θ) − yi)2 soit minimale x y x1 y1 x2 y2 … xn yn
Méthode de régression(5): Régression polynomiale Problème: Le modèle illustrant la relation entre un attribut x et la sortie y est un polynôme de degré p: On cherche les wj étant donné un ensemble d’apprentissage {xi,yi} avec i = 1,..,n Paramètres du modèle Ici x représente un seul attribut et non pas un ensemble d’attribut.
Méthode de régression(6): Régression polynomiale(2) Solution: On cherche les poids wi du modèle avec Solution minimisant l’erreur MSE: (w est un vecteur colonne) w = (XTX)-1XTy
Laboratoire 2 Énoncé
Chargement des données x1 y1 x2 y2 …. …x100 y100 x y x1 y1 x2 y2 .. x100 y100
1. Implémentation du système Deux fonctions principales: Fonction w = entrainerModele(X, p) avec Entrée: X = {(xi,yi)}i=1..n ensemble de données d’entraînement p : ordre du polynôme Sortie: avec Matlab et JAMA proposent des fonctions pour calculer les produits et inverses de matrices w = (XTX)-1XTy
1. Implémentation du système (2) Fonction E = evaluerModele(w,X) avec Entrée: X = {(xi,yi)}i=1..n ensemble de données de test w : vecteur des poids obtenu lors de l'apprentissage Sortie: L’erreur MSE pour w et X: 1/n Σi (g(xi;θ) − yi)2
2. Influence du nombre de données d’entraînement Données d’entraînement : |Xtrain| = 80 exemples Données de tests : |Xtest| = 20 exemples Ordre de régression: fixée à p=3 Mettre les 10 premiers exemples de Xtrain dans Xsel Pseudo inverse: matlab = pinv Java = Pour calcul des erreur : MSE Afficher les courbes : matlab = plot Autres = récupérer les val de E et utiliser excel pour afficher les courbes
2. Influence du nombre de données d’entraînement (2) Entrainez le modèle sur Xsel : w = entrainerModele(Xsel, p) Évaluez l’erreur MSE empirique Eemp du modèle appris w sur les exemples de Xsel : Eemp = evaluerModele(w, Xsel) Évaluez l’erreur MSE de généralisation Egen du même modèle w sur les exemples de Xtest: Eemp = evaluerModele(w, Xtest) Répétez les étapes : 5, 6 et 7 pour |Xtest| = 15, 20, 25,…,80
2. Influence du nombre de données d’entraînement (3) Afficher les courbes Eemp et Egen en fonction du nombre d’exemples: Implémentation en Matlab : Utiliser la fonction plot Autre solution : utiliser un fichier Excel pour générer les graphiques
3. Influence de l’ordre de régression Séparation des données: |Xtrain|= 60, |Xvalid| = 20, et |Xtest| = 20. Répéter pour p = 0, 1, 2, …, 20: Entraînement avec Xtrain : w = entrainerModele(Xtrain, p) Calculer l'erreur empirique surXtrain : Eemp = evaluerModele(w, Xtrain) Calculer l'erreur de généralisation sur Xvalid : Egen = evaluerModele(w, Xvalid) Tracer Eemp et Egen en fonction de p
3. Influence de l’ordre de régression Trouvez l'ordre de régression p* pour lequel Egen est minimale Entraînez le modèle pour ce p*: w = entrainerModele(Xtrain, p*) Calculez l'erreur de généralisation sur l’ensemble Xtest : Egen = evaluerModele(w, Xtest)
Remise du travail À remettre: Code source Rapport (voir l’énoncé et le gabarit) Date de remise: Le 8 Juin 2012 à 8h am Correction interactive : Durant la séance du 8 juin
Langage d’implémentation MATLAB Java : utilisez la librairie JAMA (http://math.nist.gov/javanumerics/jama/) C++ Python