TP Analyse de données
Transcription
TP Analyse de données
MAP 572 - Mise en oeuvre de méthodes numériques. François Alouges, Lucas Gerin Exploration de données : visualisation et clustering Pour n = 100 joueurs de tennis on dispose de p = 6 statistiques : pourcentage de 1er services réussis, de balles de break sauvées, etc. Le but est d'analyser ces données de façon automatique : les représenter graphiquement de façon pertinente, déterminer des corrélations entre variables, classer les joueurs en diérentes catégories. 1 Données Télécharger sur le moodle du cours le chier TennisChiffresTop100_2016.xls et l'importer dans matlab avec la commande Question 1. [DonneesBrutes, NomsJoueurs, tab] = xlsread('TennisChiffresTop100.xls') 2 2.1 Visualisation : Analyse en Composantes Principales Principe théorique On note Xi,j la j -ème statistique du joueur i. Les données sont donc formées de n points dans Rp , on souhaite les représenter dans R2 de la façon la plus pertinente possible. On dénit la matrice des données centrées réduites (X̃i,j )i≤n,j≤p par : Xi,j − mean(X•j ) std(X•j ) X1,j où mean(X•j ) est la moyenne du vecteur colonne X•j = . . . , et std(X•j ) en est l'écart-type. La Xn,j 1 T matrice n X̃ X̃ est la matrice p × p des corrélations, elle est symétrique positive, donc diagonalisable de valeurs propres réelles positives λ1 ≥ · · · ≥ λp ≥ 0. On peut par ailleurs la diagonaliser dans une base orthogonale u1 , . . . , up . Question 2. Calculer la matrice de corrélation (vous pouvez utiliser mean(X),std(X)). Quelles variables sont les plus corrélées ? X̃i,j = Le point de vue de l'ACP est de chercher le vecteur u = (u1 , . . . , up ) ∈ Rp tel que la projection du nuage de points sur u ait une inertie maximale. Le résultat théorique est le suivant (voir par exemple le Théorème 1.1 dans [1]) : Théorème 1 Soit X = (X1 , . . . , Xp ) une variable aléatoire λ1 est le vecteur qui maximise à valeurs dans Rp , le vecteur propre u1 = (u11 , . . . , u1p ) associé à u 7→ Var(< X, u >). De même, le vecteur propre 1 orthogonaux à u . u2 associé à λ2 est celui qui maximise Var(< X, u2 >) parmi les vecteurs 2.2 Mise en oeuvre Compte tenu du résultat théorique, projeter les données suivant les deux composantes principales. Autrement dit : Calculer u1 , u2 , Tracer les n points de coordonnées (ai , bi ) := (< Xi• , u1 >, < Xi• , u2 >). Vous aurez besoin des commandes suivantes : eig(A),plot,... Pour faire apparaître le nom des joueurs, la commande text(a,b,'texte') écrit la chaîne de caractères texte à la position (a,b). Question 3. 2.3 Disque des corrélations Pour un paramètre i ≤ p, on pose ri,1 = u1i p λ1 , ri,2 = u2i p λ2 . Tracer les p points de coordonnées (ri,1 , ri,2 ) ainsi que le cercle unité. Les points Ai = (ri,1 , ri,2 ) se trouvent à l'intérieur du cercle unité. Le dessin obtenu s'interprète de la façon suivante : les variables signicatives se trouvent au bord du cercle. Pour celles-ci, Question 4. ◦ A\ i OAj ≈ 0 ◦ A\ i OAj ≈ 180 ◦ A\ i OAj ≈ 90 ⇒ ⇒ ⇒ variables i, j positivement corrélées variables i, j négativement corrélées variables i, j décorrélées (pour une justication théorique, voir [1], Section 1.6). 3 Clustering : l'algorithme k -means Au vu des résultats de l'ACP, il apparaît que les données des n joueurs ne sont pas homogènes. On souhaite partitionner l'ensemble des n points en k sous-ensembles (ou cluster ), selon la proximité des projections (ai , bi ). Question 5. Vu le nuage de points obtenu après ACP, quel k choisir ? Question 6. Implémenter l'algorithme k -means : Paramètres : k : nombre de cluster (a1 , b1 ), . . . , (an , bn ) : points à partitionner (x1 , y1 ), . . . , (xk , yk ) : centres initiaux des cluster, choisis arbitrairement parmi les n points Itérer jusqu'à stabilisation : Pour chaque 1 ≤ i ≤ n Placer i dans le cluster dont le centre est le plus proche de (ai , bi ) : i → cluster r tel que ||(xr , yr ) − (ai , bi )|| est minimal. Mettre à jour le centre (xr , yr ). Question 7. Sur le graphique de l'ACP, représenter les points en diérentes couleurs selon le cluster. [Théorique] Justier que l'algorithme k -means termine. Trouver un exemple qui montre que la partition donnée par k -means peut dépendre des positions initiales (x1 , y1 ), . . . , (xk , yk ). Question 8. Références [1] A.Tsybakov. . Cours de l'École Polytechnique (2014). Apprentissage statistique