top of page

Projet 4 - Algorithme des k plus proches voisins

L'objectif de ce projet est de combiner 2 programmes afin de pouvoir retrouver une espèce d'iris par rapport aux 3 plus proches voisins.

Accéder aux scripts du projet

Nous avons eu besoin de 3 fichiers avant de pouvoir commencer : un fichier csv nommé iris.csv qui contient les éléments nécessaires pour trouver les bonnes espèces d'iris et de 2 programmes Python, nommés Algorithme des k plus proches voisins en 2 dimensions et Visualisation données. Ce sont ces 2 programmes que nous devons combiner pour créer notre programme final qui permettra de trouver la bonne espèce d'iris par rapport aux 3 plus proches voisins.

Programme de l'algorithme

Programme pour les données

Fichier iris.csv

Le début du programme
debut programme.PNG

Le début du programme est un mélange des 2 programmes que l'on nous donne, c'est-à-dire que les importations et les variables sont un mélange des 2 autres programmes. On a ensuite la fonction distance qui reprend la fonction qui était présente dans le programme de l'algorithme en 2 dimensions.

Les 2 boucles for
boucle for dimensions.PNG

Contrairement au programme original, j'ai rajouté une boucle avant la boucle qui est présente dans le programme. Cette boucle va permettre de reconstituer une liste qui va me permettre d'avoir après le tri pour avoir les plus petites distances en première. Dans la 2ème boucle, je fais la même chose que dans le programme original.

La fonction qui détermine l'espèce de l'iris

La plus grande différence entre tous les programmes est celle là, la base du programme en 2 dimensions est la même, mais on doit l'adapter pour prendre les 3 types d'iris au lieu de 2. Cela est très simple à faire, il suffit de créer une variable en plus, nommé number_2, et si le type d'iris de la plus petite distance est 2, cela va ajouter 1 à la variable. Aussi, je retourne quelle est la bonne espèce pour l’afficher directement sur le graphique.

fonction ia.PNG
La fonction graphical
fonction graphical dimensions.PNG

La fonction graphical est sensiblement la même que l'original, j'effectue uniquement en plus l'appel de la fonction determine_iris dedans pour que le résultat se note sur le graphique.

Les erreurs rencontrées

J'ai rencontré 1 seul problème lors de la réalisation du programme. Lors du mélange des 2 programmes, j'ai eu des problèmes pour comprendre comment fonctionner la bibliothèque pandas. J'ai eu plusieurs erreurs pour changer la boucle, la solution de reconstituer la liste ne m'est pas venu tout de suite. C'est grâce à cela que j'ai pi continuer le programme et les erreurs sont partis.

Résultat final !
graphique final.PNG

Ce programme est adaptatif, on peut changer la valeur du la longueur et de la largeur au lancement du programme avec la fonction input(), on peut également choisir la valeur des k plus proches voisins, dans ce cas, on a choisi 3 mais si on agrandit cette valeur, le résultat va changer !

bottom of page