Module MQIA – année 2010–2011
Estimation de densités de probabilité et clustering
Pour générer des données de clustering en 2D, vous utiliserez par exemple : xapp = [];
mu = [1 1; 1 -1; -1 1; -1 -1];
sigma = [0.2 0.4 0.4 0.05];
n = 30;
for i=1:length(sigma)
xtmp = randn(n,2)*sigma(i)+ones(n,1)*mu(i,:);
xapp = [xapp ; xtmp];
endfor
Exercice 1 : Algorithme des k-means
En reprenant le TD précédent, implémenter l’algorithme des k-moyennes qui prend en argument un nombrek de clusters à isoler et une base de donnéesX et qui retourne la classe Y des échantillons de la baseX.
Cet algorithme est itératif, vous utiliserez dans un premier temps un critère d’arrêt simpliste basé sur le nombre d’itérations. Après avoir vérifier rapidement que votre implémentation est fonctionnelle, vous définirez un critère basé sur la stabilisation de la solution.
Rappel de l’algorithme :
1. Initialiser aléatoirement lesk prototypes 2. Répéter jusqu’à (Critère d’arrêt satisfait)
(a) Partitionner les exemples en les affectant aux prototypes dont ils sont le plus proche, (b) Redéfinir les prototypes (i.e. centres de gravité des partitions)
– Vous utiliserez cette méthode dans les questions suivantes Exercice 2 : Mélange de gaussiennes, EM et clustering
Implémentation de l’algorithme EM basé sur un mélange de gaussiennes (décrit dans l’énoncé du TD).
Les paramètres de la fonction sont : k, le nombre de clusters et X la base de données. La fonction retourne la classe de chacun des échantillons dans un vecteurY
On rappelle qu’une distribution de probabilité gaussienne de dimension dsuit la loi suivante :
p(x) = 1
(2π)d/2(det(Σ))1/2 exp
−1
2(x−µ)Σ−1(x−µ)T
, Σ = 1 N
N
X
i=1
(xi−µ)T(xi−µ)∈Rd×d
1. Initialisation.Afin de partir de valeurs raisonnables pour les(µi,Σi), nous proposons d’affecter aléatoirement une classe à chacun des échantillons et d’identifier les(µi,Σi).
2. Expectation.Déterminer la classe des échantillons de X
3. Maximisation. Calculer les nouveaux paramètres des gaussiennes (phase d’optimisation du modèle)
Module MQIA – page 2 – Dans un premier temps, vous utiliserez des données artificielles gaussiennes en deux dimensions.
Vous ferez tourner l’apprentissage à plusieurs reprise pour juger la stabilité de la méthode et vous comparerez les résultats avec l’algorithme des k-means.
– Afin d’évaluer la qualité des résultats, vous utiliserez les méthodes generateGrid et plotIsocontours disponibles sur le site web de l’UE.
– Vous utiliserez ensuite le jeu de données Iris .
Exercice 3 : Vraisemblance et évaluation de k en clustering
Dans la fonction précédente, vous ajouterez une variable scoreà retourner. Cette variable contiendra la log-vraisemblance du modèle :
V logθ =
n
X
i=1
lnp(xi/θ), avec : p(xi/θ) =
k
X
j=1
1
kp(xi/θj)
1. Vous effectuerez une série d’expériences dans une double bouclefor : vous ferez varierket pour chaquek vous effectuereznexpexpérience afin de contre balancer l’initialisation aléatoire.
2. Pour chaque série d’expérience, vous garderez la meilleure vraisemblance.
3. Après avoir justifié le fait de ne garder que la plus forte vraisemblance, vous tracerez la courbe des meilleures vraisemblances en fonction de k.
Exercice 4 : Mélange de gaussiennes et EM vs PMC en apprentissage supervisé
Dans un problème de classification supervisée comme vous en avez traité dans les semaines passées, l’idée est d’estimer la densité de probabilité de chacune des classes de points. Une fois les modèles construits, il suffit pour chaque nouveau point de trouver la classe la plus probable.
1. Pour chaque classe j, vous estimerez les paramètres Θj = {k,{θ1, . . . , θk}}j en maximisant la vraisemblance : V logθ =PnCj
i=1 lnp(xi∈Cj/θ)
2. Pour chaque point x, vous estimerez la probabilité d’appartenance à un modèlej, c’est à dire la probabilité d’appartenance à une classe j.
3. Vous comparerez les taux de bonne classification sur des problèmes jouets et sur des problèmes réels (données du site web de l’uv).