@@ -13,9 +13,17 @@ Le répertoire est constitué des éléments suivants :
* Un script python read_cifar.py qui contient les fonctions servant à lire les données de "data" ainsi qu'une fonction split_dataset qui permet de diviser les données aléatoirement en un jeu d'entraînement et un jeu de test, selon un coefficient "split" compris entre 0 et 1 qui permet de déterminer la taille du jeu de test. En lançant le script, on teste la fonction split_dataset en vérifiant que les jeux d'entraînement et de test ont bien la bonne taille.
* Un script python knn.py qui permet de tester la méthode des K-plus proches voisins sur le jeu de données. En lançant le script, on peut obtenir le taux de réussite (compris entre 0 et 1) de l'algorithme des K-plus proches voisins, avec des valeurs de split et de K qu'on peut faire varier (lignes 60 et 61). Pour obtenir le graphe de l'évolution du taux de réussite de l'algorithme selon le nombre de voisins, il suffit d'enlever les # devant les dernières lignes du script (lignes 69 à 77).
* Un script python knn.py qui permet de tester la méthode des K-plus proches voisins sur le jeu de données. En lançant le script, on peut obtenir le taux de réussite (compris entre 0 et 1) de l'algorithme des K-plus proches voisins, avec des valeurs de split et de K qu'on peut faire varier (lignes 60 et 61). Pour obtenir le graphe de l'évolution du taux de réussite de l'algorithme selon le nombre de voisins, il suffit d'enlever les # devant les dernières lignes du script, dont le screenshot est dans le dossier "results".
* Un script python mlp.py qui permet de tester la méthode du réseau de neurones sur le jeu de données.
* Un script python mlp.py qui permet de tester la méthode du réseau de neurones sur le jeu de données. En lançant le script, on teste la fonction run_mlp_training sur un jeu d'entraînement (90% entraînement et 10% test) avec 100 boucles et on calcule ensuite le taux de réussite de l'algorithme sur le jeu de test. L'algorithme renvoie les taux de réussite sucessifs de l'entraînement à chaque boucle, ainsi que le taux de réussite de l'algorithme sur le jeu de test. On peut enlever les # en fin de script pour obtenir le tracé de l'évolution du taux de réussite selon le nombre de boucles efféctuées (screen dans le dossier "results").
* Un dossier "results" qui contient certains résultats significatifs de l'étude. On y retrouve le fichier knn.png qui est un screenshot du graphique représentant l'évolution du taux de réussite de l'algorithme des plus proches voisins selon le nombre de voisins K choisi (K variant de 1 à 20). Le fichier mlp.png est un screenshot du graphique représentant l'évolution du taux de réussite de l'algorithme de rétropropagation selon le nombre de boucles effectuées (100 boucles).
## Commentaire sur les résultats
### KNN
Les résultats obtenus pour l'algorithme des K-plus proches voisins ne sont pas vraiment concluants : le taux de réussite de l'algorithme oscille autour de 0.1, avec une légère variation selon le nombre K (entre 0.98 et 1.05). Dans le jeu de données entraîné, qui comporte 10 classes, cela revient à trier les images au hasard parmi les classes (0.1 de chances de tomber sur la bonne classe). Pour cet algorithme, la forme de la courbe que l'on s'attend à observer comporte un maximum (croissante puis décroissante). Avant le maximum, le taux de réussite est bas car il y a "underfitting", et après le maximmum il y a "overfitting". Trouver le maximum permet de déterminer pour quelle valeur de K l'algorithme fonctionne le mieux.
### NN
Pour l'algorithme de rétropropagation, on devrait observer une augmentation du taux de réussite au fur et à mesure de ses itérations. Cependant, les résultats oscillent entre 0.099 et 1.001, ce qui revient sur ce jeu de données à une répartition des images dans des classes au hasard (10 classes, 1 chance sur 10 d'avoir la bonne classe).
* Un dossier "results" qui contient certains résultats significatifs de l'étude. Tout d'abord, on y retrouve le fichier knn.png qui est un screenshot du graphique représentant l'évolution du taux de réussite de l'algorithme des plus proches voisins selon le nombre de voisins K choisi (K variant de 1 à 20).