13.07.2015 Views

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1. Séances notées 26mx=max(c<strong>la</strong>sses) # il faut ajouter +1for i in range(0,mx) :c+=[barycentre_c<strong>la</strong>sse (points,c<strong>la</strong>sses,i)]r<strong>et</strong>urn cIl faut noter également que <strong>la</strong> c<strong>la</strong>sse 0 reçoit un barycentre après <strong>la</strong> fonction tous_barycentres même si<strong>la</strong> fonction random_c<strong>la</strong>ss ne lui en donnait pas lorsqu’elle utilise l’instruction random.randint(1, n).Peu d’élèves ont utilisé le module numpy. Son usage avait pour but d’éviter une boucle sur les points :elle ne disparaît pas mais est prise en charge par les fonctions <strong>de</strong> calcul matriciel proposées par le modulenumpy. C<strong>et</strong>te boucle a persisté dans <strong>la</strong> gran<strong>de</strong> majorité <strong>de</strong>s solutions envisagées. La difficulté rési<strong>de</strong> dans<strong>la</strong> construction d’une ou <strong>de</strong>ux matrices qui mènent au calcul <strong>de</strong>s barycentre par quelques manipu<strong>la</strong>tionsmatricielles. La correction qui suit présente <strong>de</strong>ux implémentations dont les seules boucles portent sur lenombre <strong>de</strong> c<strong>la</strong>sses.8) La <strong>de</strong>rnière fonction <strong>de</strong> l’algorithme <strong>de</strong> c<strong>la</strong>ssification a connu trois gros défauts. Le premier est l’oubli <strong>de</strong><strong>la</strong> boucle qui perm<strong>et</strong> <strong>de</strong> répéter les opérations plus d’une fois. Le second défaut apparaît lorsque le résultat<strong>de</strong> <strong>la</strong> fonction association_barycentre n’est pas utilisé. Dans l’exemple suivant, le calcul <strong>de</strong>s barycentresa toujours lieu avec <strong>la</strong> liste l qui n’est jamais modifiée : le résultat a est toujours celui <strong>de</strong> l’algorithmeaprès <strong>la</strong> première itération qui est répétée ici 10 fois exactement <strong>de</strong> <strong>la</strong> même manière.<strong>de</strong>f nuees_dynamiques (points,nombre_c<strong>la</strong>sses):l = random_c<strong>la</strong>ss (points,nombre_c<strong>la</strong>sses)for j in range (0,10):c = tous_barycentres (points, l)a = association_barycentre (points,c)# il faut ajouter ici l = a pour corriger <strong>la</strong> fonctionr<strong>et</strong>urn aLa <strong>de</strong>rnière erreur suit <strong>la</strong> même logique : l’instruction l = a est bien présente mais son eff<strong>et</strong> est annulé parle fait <strong>de</strong> générer aléatoirement un numéro <strong>de</strong> c<strong>la</strong>sse à chaque itération.<strong>de</strong>f nuees_dynamiques (points,nombre_c<strong>la</strong>sses):for j in range (0,10):l = random_c<strong>la</strong>ss (points,nombre_c<strong>la</strong>sses)c = tous_barycentres (points, l)a = association_barycentre (points,c)l = ar<strong>et</strong>urn aEnfin, une erreur grossière est parfois survenue : l’exemple suivant change les données du problème àchaque itération. Le résultat a peu <strong>de</strong> chance <strong>de</strong> signifier quoi que ce soit.<strong>de</strong>f nuees_dynamiques (n,nb):for j in range (0,10):points = n_sous_nuage (n,nb)l = random_c<strong>la</strong>ss (points,nombre_c<strong>la</strong>sses)c = tous_barycentres (points, l)a = association_barycentre (points,c)l = ar<strong>et</strong>urn a9) La <strong>de</strong>rnière question fut plus ou moins bien implémentée, souvent très bien pour le cas particulier <strong>de</strong><strong>de</strong>ux c<strong>la</strong>sses. Le cas général où le nombre <strong>de</strong> c<strong>la</strong>sses est variable n’a pas été souvent traité. La correctioncomplète suit.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!