N.S.I. WorkSpace Compétence,Notions,P-Th-G,Première G3 – Algorithme des k plus proches voisins

G3 – Algorithme des k plus proches voisins

Avant d’entrer dans le vif du sujet (algorithme knn), nous allons chercher à obtenir une représentation graphique des données contenues dans le fichier iris.csv

Après avoir placé le fichier ‘iris.csv’ dans le même répertoire que votre fichier Python, étudiez et testez le code suivant [ Téléchargement] :

import pandas as pan
import matplotlib.pyplot as mpl

iris = pan.read_csv("iris.csv")
x = iris.loc[:, "petal_length"]
y = iris.loc[:, "petal_width"]
lab = iris.loc[:, "species"]

mpl.scatter(x[lab == 0], y[lab == 0], color='green', label='setosa')
mpl.scatter(x[lab == 1], y[lab == 1], color='red', label='virginica')
mpl.scatter(x[lab == 2], y[lab == 2], color='blue', label='versicolor')
mpl.legend()
mpl.text(4,0.25,'NOM Prénom') #Remplacer 'NOM Prénom' par votre NOM et Prénom !
mpl.show()

Objectifs d’apprentissage ou d’entraînement et pré-requis (acquis antérieurs mobilisés)

  • Exception « TypeError »
  • Notions d’assertion et d’exception.

Programmation en langage Python : compétences requises ( à acquérir, à mobiliser, à développer, à maîtriser)

  • Instruction ‘assert condition, message affiché si condition fausse’ (NSI Première)
  • Programmation défensive (NSI Première) : ‘if … else … ‘
  • Fonctions natives : ‘type()’, ‘isinstance()’

La bibliothèque Pandas permet de récupérer les données du fichier iris.csv.
La bibliothèque Matplotlib permet de tracer des graphiques très facilement :

  • La variable x correspond à la longueur des pétales.
  • La variable y correspond à la largeur des pétales.
  • Et la variable lab correspond à l’espèce d’iris (0,1 ou 2).

La méthode « plt.scatter » permet de tracer des points :

  • le « x[lab == 0] » permet de considérer uniquement l’espèce « iris setosa » (lab==0).
  • Le premier « plt.scatter » permet de tracer les points correspondant à l’espèce « iris setosa », ces points seront vert (color=’green’),
  • le deuxième « plt.scatter » permet de tracer les points correspondant à l’espèce « iris virginica », ces points seront rouge (color=’red’),
  • enfin le troisième « plt.scatter » permet de tracer les points correspondant à l’espèce « iris versicolor », ces points seront bleu (color=’blue’).

Ainsi nous avons en abscisse la longueur du pétale et en ordonnée la largeur du pétale.

Nous obtenons des « nuages » de points : on remarque ces points sont regroupés par espèces d’iris sauf pour « iris virginica » et « iris versicolor », où ils ont un peu tendance à se mélanger.

Faites une capture d’écran de votre graphique et coller la sur la fiche-réponse.