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

Etape 4 – Calcul du nombre de voisins par classe

Ajouter au module « knn_module.py » la fonction nbeVoisinsParClasse() qui prend en arguments la liste renvoyée par la fonction selectKNN() et qui renvoie une liste de listes. Chaque élément de la liste principale est une liste de trois éléments :

  • le « chiffre » correspondant à l’une des classes d’iris ;
  • le nombre (en valeur absolue) de voisins de l’iris « mystère » appartenant à cette classe ;
  • le taux (en valeur relative) de voisins de l’iris « mystère » appartenant à cette classe.

Compléter le code qui suit en remplaçant les ??? par ce qui convient [ Téléchargement].

def nbeVoisinsParClasse(knn):
    n = [[0, 0, 0.0], [1, 0, 0.0], [2, 0, 0.0]]
    for v in knn:
        if v[1] == 0:
            n[0][1] += 1
            n[0][2] = (n[0][1] / len(knn)) * 100
        elif v[1] == 1:
            n[1][1] ???
            n[1][2] = ???
        else:
            n[???][???] += 1
            ???

    # Tri de n par ordre décroissant du nombre (en valeur absolue) de voisins 
    n.sort(key=???)

    return n

Ajouter au module « knn_main_program.py » l’instruction qui appelle la fonction nbeVoisinsParClasse().

"""kNN : programme principal."""

from ???

# Etape 1 : construction d'un dataset à partir des données enregistrées dans
#           un fichier csv
csvname ???
dataset ???

# Etape 2 : calcul des distances entre un iris "mystère" et les iris du
#           dataset
iris_myst ???
dist_voisins ???

# Etape 3 : sélection des k plus proches voisins de l'iris "mystère"
k ???
knn = ???

# Etape 4 : calcul du nombre de voisins par classe
n = ???