Apprentissage et reconnaissance (GIF-4101 / GIF-7005)
D´
epartement de g´
enie ´
electrique et de g´
enie informatique
Automne 2016
Devoir 2
Instructions : – GIF-4101 : Le devoir est r´
ealis´
e en ´
equipe de deux `
a trois ´
etudiants.
– GIF-7005 : Le devoir est r´
ealis´
e individuellement.
– Utilisez Python et scikit-learn autant que possible.
– Remise : rapport et code source d´
epos´
es dans l’ENA
– Date limite : au plus tard le mercredi 9 novembre, `
a 9h30
Pond´
eration : Ce devoir compte pour 5% de la note finale.
1. Algorithme Esp´
erance-Maximisation (5pt)
La vraisemblance p(x|p)d’une variable xsuivant une loi de Bernoulli multivari´
ee `
aDdimen-
sions ind´
ependantes, o`
uxi∼ BD(p), est d´
ecrite par l’´
equation suivante :
p(x|p) =
D
Y
i=1
pxi
i(1 pi)(1xi),
o`
ux= [x1x2· · · xD]Test un vecteur de variables al´
eatoires bool´
eennes xi∈ {0,1}, et p=
[p1p2· · · pD]Test la param´
etrisation de la loi de probabilit´
e.
Supposons que l’on veut calculer l’impl´
ementation de l’algorithme Esp´
erance-Maximisation
pour une densit´
e-m´
elange avec Kcomposantes, chacune suivant (x|Gj)∼ BD(pj), une loi de
Bernoulli `
aDdimensions ind´
ependantes d´
efinie comme suit :
p(x|P) =
K
X
j=1
p(x|Gj)P(Gj),
avec P={p1,p2,...,pK}.
(a) Donnez le d´
eveloppement de la fonction Q|Φl)utilis´
ee `
a l’´
etape M.
(b) Donnez le d´
eveloppement de la fonction de mise `
a jour des valeurs pj,i de l’´
etape M.
(c) Donnez le pseudo-code de l’impl´
ementation de l’algorithme EM pour une densit´
e-m´
elange
de composantes suivant une loi de Bernoulli multivari´
ee. Prenez bien soin de sp´
ecifier toutes
les ´
equations n´
ecessaires pour calculer les variables de l’algorithme.
(d) Faite une impl´
ementation de cet algorithme en Python, en offrant l’interface des algorithmes
de scikit-learn. Pour ce faire, impl´
ementer au minimum les fonctions fit,predict et
score. Pour la fonction score, retourner l’esp´
erance de vraisemblance sur le jeu Xfourni
en entr´
ee (calculez Q|Φl)pour Φ=Φl). Fournissez le code de votre impl´
ementation lors
du d´
epˆ
ot de votre devoir dans l’ENA.
Remarque : Limitez les valeurs de πi0et pj,i 0, en les forc¸ant `
a avoir une valeur
minimale (typiquement = 106), afin d’´
eviter les erreurs de calcul num´
erique.
1
2. Clustering de donn´
ees de textes (5pt)
Soit le jeu de donn´
ees CSDMC2010 SPAM corpus 1, dont nous avons extrait un jeu de donn´
ees
avec 1000 caract´
eristiques binaires, indiquant la pr´
esence ou non d’un mot particulier. Ce jeu
binaris´
e est disponible sur le site Web du cours `
a l’adresse suivante.
http://vision.gel.ulaval.ca/˜cgagne/enseignement/apprentissage/
A2016/donnees/csdmc-spam-binary.zip
L’archive zip comporte trois fichiers :
data : les donn´
ees du jeu, chaque ligne repr´
esentant une instance et chaque colonne une
caract´
eristique ;
target : les ´
etiquettes de classe des donn´
ees, 0indiquant que l’instance est un pourriel, 1
indiquant que c’est un message l´
egitime ;
feature : la liste des 1000 mots d’int´
erˆ
et, dans le mˆ
eme ordre que les colonnes du fichier
data.
(a) En utilisant l’algorithme K-means, faites le clustering de ces donn´
ees selon K= 5 clusters.
Analysez les r´
esultats pour chaque cluster en rapportant les cinq mots les plus fr´
equents dans
chacun de ceux-ci. Faites une analyse br`
eve de ces r´
esultats.
(b) Toujours en utilisant l’algorithme K-means, faites varier le nombre de clusters utilis´
es entre
K= 2,4,...,50 et comparez les r´
esultats en utilisant les mesures de l’indice de Rand ajust´
e2,
le score bas´
e sur l’information mutuelle 3et la mesure V 4. Pour d´
eterminer l’´
etiquette pr´
edite,
assignez au cluster l’´
etiquette (pourriel ou message l´
egitime) la plus fr´
equente parmi les
donn´
ees appartenant au cluster. Tracez les r´
esultats dans une figure comparant la valeur des
mesures de performance selon le nombre de clusters. Indiquez quel serait d’apr`
es vous le bon
nombre de clusters `
a utiliser.
(c) R´
ep´
etez la question 2(b) pr´
ec´
edente, avec K= 2,4,...,10, en utilisant cette fois l’impl´
e-
mentation de l’algorithme EM pour une loi de Bernoulli multivari´
ee que vous avez fait pour
la question 1(d). Comparez ces r´
esultats `
a ceux obtenus avec K-means pour 100 variables et
1000 variables.
Pour ´
evaluer les performances du clustering de EM, il faut assigner `
a chaque donn´
ee une
probabilit´
e a posteriori de classement P(Ci|xt)selon :
P(Ci|xt) = PjP(Ci|Gj)P(Gj|xt)
PiPjP(Ci|Gj)P(Gj|xt), P (Ci|Gj) = Ptrt
iP(Gj|xt)
PiPtrt
iP(Gj|xt).
Le classement se fait en assignant la donn´
ee `
a la classe dont la probabilit´
e de classement est
la plus ´
elev´
ee :
yt
i=1si i= argmaxlP(Cl|xt)
0autrement .
Pour ces exp´
erimentations avec EM, utilisez seulement les 100 premi`
eres variables du jeu
de donn´
ees, qui correspondent aux 100 mots les plus fr´
equents du corpus. Il s’av`
ere que la
gestion des 1000 variables du jeu CSDMC2010 est difficile pour l’algorithme EM avec une
loi de multiples Bernoulli ind´
ependantes. Pouvez-vous expliquer pourquoi ?
1. Disponible `
ahttp://csmining.org/index.php/spam-email-datasets-.html.
2. Fonction metrics.adjusted rand score dans scikit-learn.
3. Fonction metrics.adjusted mutual info score.
4. Fonction metrics.v measure score.
2
(d) Si l’on compare les traitements algorithmiques faits par K-means et l’algorithme EM pour
une loi de Bernoulli multivari´
ee, donnez les principales ressemblances et les principales
diff´
erences que l’on peut noter.
3. S´
election de variables (5pt)
Supposons que l’on veut s´
electionner les variables d’int´
erˆ
et pour le jeu de donn´
ees CSDMC2010
SPAM corpus de la question pr´
ec´
edente, comprenant 1000 variables binaires, indiquant la pr´
esence
ou non d’un mot particulier. Pour le besoin de la question, faites une partition stratifi´
ee du jeu de
donn´
ees en deux partitions distinctes, soit une partition d’entraˆ
ınement et une partition de test,
chacune comprenant 50 % des donn´
ees, et utilisez-la pour les manipulations demand´
ees dans les
questions suivantes.
(a) Effectuez une s´
election univari´
ee en conservant les 10 meilleures variables parmi les 1000,
selon le test 5du χ2et le crit`
ere d’information mutuelle 6. Effectuez cette s´
election sur la
partition d’entraˆ
ınement. Rapportez les variables s´
electionn´
ees les deux crit`
eres de s´
election
utilis´
es. Rapportez ´
egalement la performance de classement sur la partition de test, en utilisant
un SVM lin´
eaire 7comme mod`
ele de classement g´
en´
er´
e sur la partition d’entraˆ
ınement. Com-
parez les r´
esultats avec ceux obtenus avec la mˆ
eme configuration, mais utilisant l’ensemble
des 1000 variables.
(b) R´
ep´
etez les exp´
erimentations de la sous-question pr´
ec´
edente avec la s´
election s´
equentielle
arri`
ere impl´
ement´
ee dans la fonction feature selection.RFE de scikit-learn. Faites
les exp´
erimentations en utilisant un SVM lin´
eaire comme mod`
ele de base, en faisant un
r´
eentraˆ
ınement `
a chaque it´
eration de l’algorithme (step=1).
(c) Impl´
ementez un algorithme de s´
election avant s´
equentielle qui ajoute les variables une `
a la
fois, en d´
emarrant d’un ensemble vide de variables, tel que pr´
esent´
e en classe. Portez attention
au fait que la s´
election de variables se base sur un nouvel entraˆ
ınement d’un mod`
ele de classe-
ment pour chaque sous-ensemble candidat, contrairement `
a l’algorithme impl´
ement´
e dans la
fonction feature selection.RFE, qui se base sur les cœfficients fournis par le mod`
ele
de classement. Votre classe doit au minimum poss´
eder les fonctions fit,get support et
transform. Fournissez le code de votre impl´
ementation lors du d´
epˆ
ot de votre devoir dans
l’ENA.
(d) Appliquez l’algorithme de s´
election s´
equentielle avant impl´
ement´
e`
a la sous-question pr´
ec´
e-
dente (c) sur le jeu de donn´
ees CSDMC2010 SPAM corpus selon ce qui a ´
et´
e demand´
e`
a la
sous-question (a). Utiliser un SVM lin´
eaire g´
en´
er´
e sur l’ensemble d’entraˆ
ınement. Comparez
les r´
esultats avec ceux obtenus avec les approches test´
ees aux sous-questions (a) et (b).
(e) Expliquez pourquoi un algorithme de s´
election arri`
ere s´
equentielle est souvent pr´
ef´
er´
e`
a un
algorithme de s´
election avant s´
equentielle pour des donn´
ees comportant des d´
ependances
non lin´
eaires complexes entre les variables. Expliquez ´
egalement pourquoi l’algorithme de
s´
election s´
equentielle arri`
ere peut difficilement proc´
eder `
a un nouvel entraˆ
ınement pour chaque
sous-ensemble candidat de variables pour des cas o`
u il y a un grand nombre de variables (D
grand) et un nombre relativement faible de variables `
a s´
electionner (KD), comme c’est
le cas pour une s´
election de 10 variables parmi 1000.
5. Fonction feature selection.chi2.
6. Fonction feature selection.mutual info classif.
7. Classe svm.LinearSVC.
3
4. Analyse en composantes principales et analyse discriminante lin´
eaire (5pt)
Soit les trois jeux de donn´
ees suivants.
Iris de Fisher : jeu de 150 donn´
ees pour l’identification d’iris, avec donn´
ees en 4dimensions
et 3classes. Le jeu est disponible avec la fonction datasets.load iris de scikit-learn.
Digits : jeu de 1797 caract`
eres (chiffres) num´
eris´
es en images de 8×8pixels en ton de gris
(repr´
esent´
es comme des entiers 0et 16), donc organis´
e en 64 dimensions et 10 classes. Le jeu
est disponible avec la fonction datasets.load digits de scikit-learn.
Olivetti : jeu de 400 images de visages, soit dix images de 40 sujets diff´
erents, prises dans
diff´
erentes conditions. Chaque image comporte 64 ×64 pixels (4096 dimensions) en ton de
gris (256 tons), convertis en nombres r´
eels dans [0,1]. Le jeu est disponible avec la fonction
datasets.fetch olivetti faces, qui t´
el´
echargera les donn´
ees lors du premier appel
`
a la fonction.
En un premier temps, appliquez une analyse en composantes principales `
a chacun de ces jeux de
donn´
ees.
(a) Pour chaque jeu de donn´
ees, donnez le nombre de composantes permettant de capturer 60 %
de la variance.
(b) Donnez les dimensions qui influencent le plus la direction du vecteur correspondant `
a la
variance principale.
(c) Tracez les donn´
ees en deux dimensions, en utilisant les deux premi`
eres composantes princi-
pales.
En un deuxi`
eme temps, appliquez une analyse discriminante lin´
eaire `
a ces donn´
ees.
(d) Tracez les donn´
ees projet´
ees selon l’analyse discriminante lin´
eaire en deux dimensions, en
utilisant les deux premiers axes de l’hyperplan si les donn´
ees comportent plus de trois classes
(deux composantes principales de la matrice S1
WSB).
(e) D´
eterminez le taux de classement avec un classifieur `
a la plus proche moyenne appliqu´
e`
a la
projection des donn´
ees obtenues par l’analyse discriminante lin´
eaire. Comparez vos r´
esultats
avec une projection de dimensionnalit´
e identique, obtenue par une analyse en composantes
principales.
11/10/2016 (modifi´
e : 12/10/2016 et 7/11/2016)
CG & AD
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !