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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1. Séances notées 22<strong>de</strong>f n_sous_nuages (n, nb) :# r<strong>et</strong>ourne une liste <strong>de</strong> 2-uples3) Dessiner le nuage avec le module matplotlib pour vérifier que le résultat correspond à vos attentes. Onpourra s’appuyer sur l’extrait qui suit. (1 point)import matplotlib.pyplot as pltx = [ ... ]y = [ ... ]fig = plt.figure()ax = fig.add_subplot(111)ax.plot (x,y, ’o’)plt.savefig ("im1.png") # ou plt.show () pour afficher le graphe4) L’algorithme <strong>de</strong>s nuées dynamiques commence par affecter chaque point à une c<strong>la</strong>sse choisie au hasard.Pour c<strong>et</strong>te tâche, on pourra utiliser <strong>la</strong> fonction randint du module random. On veut créer une fonction quir<strong>et</strong>ourne une c<strong>la</strong>sse aléatoire pour chaque point du nuage. Elle doit prendre comme entrée le nombre <strong>de</strong>c<strong>la</strong>sses souhaité. (2 points)<strong>de</strong>f random_c<strong>la</strong>ss (points, n) :# r<strong>et</strong>ourne une liste d’entiers5) L’algorithme <strong>de</strong>s nuées dynamiques répète ensuite alternativement <strong>de</strong>ux étapes :Etape 1Etape 2On calcule le barycentre <strong>de</strong> chaque c<strong>la</strong>sse.On associe à chaque point <strong>la</strong> c<strong>la</strong>sse dont le barycentre est le plus proche(au sens <strong>de</strong> <strong>la</strong> distance euclidienne).On propose <strong>de</strong> commencer par écrire une fonction qui r<strong>et</strong>ourne pour un point donné le barycentre le plusproche. (2 points)<strong>de</strong>f proche_barycentre (point, barycentres) :# r<strong>et</strong>ourne un entier6) La fonction suivante r<strong>et</strong>ourne le barycentre le plus proche pour chaque point. (2 points)<strong>de</strong>f association_barycentre (points, barycentres) :# r<strong>et</strong>ourne une liste d’entiers7) On découpe <strong>la</strong> première étape <strong>de</strong> <strong>la</strong> même façon :1. Première fonction : calcule le barycentre d’une c<strong>la</strong>sse.2. Secon<strong>de</strong> fonction : calcule le barycentre <strong>de</strong> toutes les c<strong>la</strong>sses.Il faut implémenter ces <strong>de</strong>ux fonctions. (3 points sans utiliser numpy, 4 points avec numpy <strong>et</strong> une fonction).<strong>de</strong>f barycentre_c<strong>la</strong>sse (points, c<strong>la</strong>sses, numero_c<strong>la</strong>ss) : # r<strong>et</strong>ourne un 2-uple<strong>de</strong>f tous_barycentres (points, c<strong>la</strong>sses) : # r<strong>et</strong>ourne une liste <strong>de</strong> 2-uples8) L’algorithme commence par <strong>la</strong> création <strong>de</strong>s c<strong>la</strong>sses (fonction n_sous_nuages) <strong>et</strong> l’attribution d’une c<strong>la</strong>sseau hasard (fonction random_c<strong>la</strong>ss). Il faut ensuite répéter les fonctions tous_barycentres <strong>et</strong> association_barycentre.L’enchaînement <strong>de</strong> ces opérations est effectué par <strong>la</strong> fonction nuees_dynamiques. (2 points)<strong>de</strong>f nuees_dynamiques (points, nombre_c<strong>la</strong>sses) : # r<strong>et</strong>ourne une liste d’entiers

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

Saved successfully!

Ooh no, something went wrong!