Data Mining 1 Sans détours 2 Premiers tests 3 Classification de

publicité
Data Mining
TD Régression logistique
G Gasso
4eme année
— Mise en œuvre de la régression logistique
— Test sur des données jouet et données réelles
1
Sans détours
1. La fonction reglogclass.m permettant de calculer les paramètres d’un modèle de régression
logistique est fournie sur Moodle. Télécharger et comprenez les différentes étapes de ce programme.
2. Ecrire une fonction ypred = reglogval(X, theta) qui prend en entrée une matrice de données
X et le vecteur θ et qui retourne le vecteur des labels prédits.
2
Premiers tests
1. Utiliser le script fourni lors de la séance précédente pour générer n1 = 100 données pour C1 et
n2 = 150 pour C2 . Dans la suite on ne travaillera qu’avec les données X,Y générées.
— Tester la fonction reglogclass sur ces données. Tracer la frontière de décision donnée par
la méthode de la régression logistique. Calculer l’erreur de classification.
— Comparez les résultats obtenus avec ceux de la LDA.
3
3.1
Classification de chiffres manuscripts
Tour de chauffe
Sur Moodle se trouvent les données MNIST apprentissage et test contenant des chiffes 0 à 9.
Téléchargez ces données. Le label associé à un chiffre appartient à {0, · · · , 9, 10} (les chiffres 0 ont
comme label 10).
1. Choisir deux chiffres et récupérer les données X et les labels Y correspondants à ces chiffres
dans le jeu d’apprentissage pour former un problème de classification binaire. Faire de même
pour le jeu de test.
2. Réaliser une classification par la méthode de régression logistique sur les données ainsi formées
(Pensez aux fondamentaux de la fouille de données : normalisation des données ; on calcule le modèle sur
l’ensemble d’apprentissage ; on sélectionne les éventuels hyper-paramètres sur les données de validation ;
on teste le modèle final sur le jeu de test). Evaluer les erreurs de classification et de test.
3. Si votre machine tient la charge comparer la régression logistique à la LDA.
3.2
Analyse fine des erreurs de classification
Pour simplifier les notations, on va supposer que C1 est la classe des "positifs" (y = 1) et C2 la
classe des "négatifs" (y = 0). Pour analyser finement les erreurs on établit la matrice de confusion
suivante
DataMining
TD Régression logistique
XX
XXX
Réelle y
XXX
Prédite ŷ
C1 = P os
C2 = N eg
Total
XXX
ASI4
C1 = P os
C2 = N eg
TP
FN
N1
FP
TN
N2
avec
— TP : nombre de positifs classés positifs (bonnes prédictions)
— FP : nombre de négatifs classés positifs (erreurs)
— FN : nombre de positifs classés négatifs (erreurs)
— TN : nombre de négatifs classés négatifs (bonnes prédictions)
A partir de cette matrice on peut calculer différents critères de performances utiles pour analyser
les résultats de classification dont :
P
FP
— Taux de faux positifs : f pr = F PF+T
N = N2
P
TP
— Taux de vrais positifs : tpr = T PT+F
N = N1
Un bon classifieur est celui qui donnera un faible f pr et un fort tpr
1. Etablir la matrice de confusion sur les données test pour la régression logistique. En déduire
alors les performances de f pr et tpr. Selon vous comment peut-on calculer le taux d’erreur à
partir de la matrice de confusion ?
2. Répondre à la même question pour la méthode LDA et comparer les deux méthodes
4
Quelques noeuds aux cheveux
1. Appliquer la régression logistique sur les données clowns.mat. Séparer les données en deux
parties : apprentissage et test. Estimer l’erreur de classification pour les données d’apprentissage
et de test. On tracera la frontière de décision obtenue ainsi que les données des deux classes.
2. Comment améliorer les performances en classification ?
Téléchargement