Les k plus proches vosins
L'apprentissage supervisé, est très utilisé en informatique. Il sert notamment pour la reconnaissance de caractères, identifier des objets sur une image, la conduite assistée...
Essayons de comprendre comment cela est possible.
Classification: c'est associer à chaque élément d'un ensemble une classe. par exemple un caractère, un nombre, une espèce, une catégorie.
Un exemple historique : Les iris de Fisher⚓︎
Nous allons mettre en oeuvre un premier algorithme de classification supervisé. C'est à dire qu'à partir d'un echantillonage donné et correctement classifié, nous allons essayer de déterminer la classe un élement inconnu.
Le jeu de données Iris connu aussi sous le nom de Iris de Fisher ou Iris d'Anderson est un jeu de données multivariées présenté en 1936 par Ronald Fisher dans son papier The use of multiple measurements in taxonomic problems comme un exemple d'application de l'analyse discriminante linéaire[1]. Les données ont été collectées par Edgar Anderson afin de quantifier les variations de morphologie des fleurs d'iris de trois espèces[2]. Deux des trois espèces ont été collectées en Gaspésie. « Toutes sont du même champ, cueillies le même jour et mesurées le même jour par la même personne avec les mêmes outils de mesures[3]. »
Le jeu de données comprend 50 échantillons de chacune des trois espèces d'iris (Iris setosa, Iris virginica et Iris versicolor) D'après Wikipédia
Avant cela, quelques notions vont nous ĂŞtre utiles:
- savoir calculer une distance
- représenter graphiquement des nuages de points
La distance : euclidienne et de Manhathan⚓︎
1. Distance Euclidienne⚓︎
La distance euclidienne est la distance "à vol d’oiseau" entre deux points dans un espace euclidien. En 2D, pour deux points \( A(x_1, y_1) \) et \( B(x_2, y_2) \), elle est donnée par :
💻 Exemple Python, dans le plan avec des coordonnées de type (x,y)
| Python | |
|---|---|
Exemple⚓︎
print(distance_euclidienne((1, 2), (4, 6))) # Résultat : 5.0
2. Distance de Manhattan⚓︎
La distance de Manhattan, aussi appelée distance L1, mesure la distance entre deux points en suivant uniquement des mouvements horizontaux et verticaux — comme dans un plan de ville à angles droits (d'où son nom).
Pour deux points \( A = (x_1, y_1) \) et \( B = (x_2, y_2) \), la distance de Manhattan est donnée par :
Ce concept se généralise facilement à des vecteurs de dimension \( n \) :
💡 Exemple⚓︎
Considérons deux points en 2D : - \( A = (1, 2) \) - \( B = (4, 6) \)
Alors :
💻 Implémentation en Python
Exemple⚓︎
print(distance_manhattan((1, 2), (4, 6))) # Résultat : 7
Représenatation graphique d'un nuage de points⚓︎
Nous allons construire 3 nuages de points Ă partir de ce ficher csv : iris.csv
Comme dans la partie du programme sur les données en table, nous utilisons le module Python csv.
| Python | |
|---|---|
La représentation graphique à obtenir

code Python:
l'algorithme des k plus proches vosins
Une simulation pour l'ensemble des valeurs d'un cadrillage
Nous voulons tester l'alglorithme des k plus proches voisins pour voir quelles classification est choisie pour tous les points d'un cadrillage avec un pas de 0.1
Complète le code suivant