LyCode Lab

DOSSIER 7 : L'IDENTIFICATION

Quel est ce cristal ?

Un petit cristal brillant a été retrouvé près de la vitrine du collier : masse 1,0 g, dureté 9,7. Si c'est un diamant, c'est peut-être un fragment du collier ! Le laboratoire te confie son fichier cristaux.csv de cristaux déjà identifiés. À toi de programmer l'algorithme des k plus proches voisins, étape par étape.

Questions de l'enquête

  1. Charger les cristaux

    Construis la liste donnees à partir du fichier : chaque cristal est un p-uplet (masse, dureté, type), avec la masse et la dureté en nombres à virgule (float) et le type en texte. L'ordre du fichier est conservé.

  2. Les k plus proches voisins

    La fonction distance est fournie. Écris voisins(donnees, nouveau, k) qui renvoie la liste des types des k cristaux les plus proches de nouveau, du plus proche au plus éloigné. nouveau est un p-uplet (masse, dureté).

  3. Le vote majoritaire

    Écris majoritaire(classes) qui renvoie la classe la plus fréquente d'une liste non vide de classes. Compte les occurrences de chaque classe dans un dictionnaire, puis garde celle qui a le plus grand effectif.

  4. Prédire, et choisir k

    Les fonctions distance, voisins et majoritaire sont fournies. Écris predire(donnees, nouveau, k) qui renvoie la classe prédite pour nouveau. Puis observe : pour le point (3.4, 7.7), la prédiction change avec k (essaie k = 1, 3 et 5 avec print). Quel type annonces-tu pour le cristal de la scène du crime, (1.0, 9.7) ?

Relire le cours du chapitre 7