Introduction

Le TP devra être rendu en deux parties: Une première contenant les sources de vos différents codes, et le fichier reponse.t2t au format txt2tags. Ce fichier contiendra une explication (en 2-3 lignes maximum) des réponses aux deux premières questions, ainsi que les valeurs des différents tests (voir plus loin).

Le TP est à rendre sur arche

Les fichiers nécessaires pour le TP sont disponibles ici

Test du χ^2

Le professeur a mené une expérience consistant à envoyer la commande ping à plusieurs machines, et à observer leur temps de réponse à l'aide du champ TTL du paquet. Le fichier TTL2 contient, pour chaque machine, le TTL du paquet reçu, ainsi qu'un indicateur de sa zone géographique. L'indicateur est à comprendre comme ceci:

Europe 0
Afrique 1
Amérique du Nord 2
Amérique du Sud 3
Asie 4
Océanie 5

Les données ont été filtrées pour contenir uniquement des paquets provenant de machines Linux et Windows (pas de Cisco).

Test de générateurs aléatoires

Vous trouverez dans les fichiers Randa,Randb,Randc trois générateurs pseudo aléatoires disposant tous trois d'une fonction nextDouble. Faites passer les tests suivants à ces trois générateurs

Méthode des k-voisins

Le fichier training contient 200 images de chiffres manuscrits, qui sont des 3 ou des 7. Chaque chiffre est représenté par une image de taille 28x28, donc par un tableau de 784 cases. Le fichier KNeighbour.java vous permet d'accéder à ce fichier comme deux tableaux. Le tableau images[i][j], qui contient la case numéro j de l'image numéro i, et le tableau labels[i] qui contient le label (3 ou 7) de l'image numéro i.

Une méthode statistique classique appelée k-plus-proches-voisins pour pouvoir savoir si un chiffre manuscrit est un 3 ou un 7 fonctionne de la manière suivante: partant d'une image de 28x28, on cherche les k images les plus proches dans le fichier training, et on cherche parmi ces k images s'il s'agit de 3 ou de 7, et on renvoie le chiffre qui apparait le plus souvent.

Pour calculer à quel point deux images x et y (correspondant à des tableaux de 784 cases) sont proches, on calcule la somme de (x[i]-y[i])^2 pour i allant de 0 à 783.

Note: le fichier image.py qui vous est fourni vous permet de visualiser les images. Si vous tapez ./image.py testing toto.pgm 5, la 5ème image (on commence à compter à 0) du fichier testing sera copiée dans le fichier toto.pgm et pourra être visualisée (par exemple avec la commande display toto.pgm ou dans votre navigateur de fichiers).

Note: les données proviennent de la base de données MNIST