A partir du fichier Rugby.csv, créer une fonction traitement_données
qui renvoie une liste nommée de
dictionnaires.
Les dictionnaires doivent être construits de la manière suivante :
Une clé "label" : qui contient le poste occupé
Une clé "caracteristiques" : qui contient un tuple (poids, taille)
La description du fichier CSV est faites dans la partie 1.
La lecture d'un fichier CSV a été vue au thème 3.
def traitement_donnees(csvfile):
"""
Fonction qui
Arguments
@param csvfile : (str) chemin vers le fichier CSV
Sortie
@result elm: le mode de la liste
"""
votre code ci-dessous
Implémentation des fonctions
Complète la fonction distance ci-dessous pour quelle retourne la distance
euclidienne entre 2 n-uplets A et B.
Rappel : Soit A(x_A~;~y_A) et B(x_B~;~y_B) deux points du plan.
La distance euclidienne AB est donnée par la formule :
AB = \sqrt{(x_B-x_A)^2 + (y_A - y_B)^2 }
from math import *
def distance(A, B):
"""
Fonction qui renvoie la distance euclidienne entre 2 points
Arguments :
@param A (tuple) : tuple de 2 nombres réels
@param B (tuple) : tuple de 2 nombres réels
Sortie :
@result (nombre) : distance euclidienne des 2 tuples
Tests :
>>> distance((2,3),(5,7))
5.0
"""
# votre code ci-dessous
if __name__ == "__main__":
import doctest
doctest.testmod(verbose = True)
Complète la fonction distance ci-dessous pour quelle retourne la distance
euclidienne
entre
2 n-uplet A et B.
def mode(liste):
"""
Fonction retourne le mode (la valeur la plus fréquente) d'une liste.
Arguments :
@param liste (list):
Sorties :
@result elm (): le mode de la liste
>>> mode(["chien","chat","chat","chien","chat","souris"])
'chat'
"""
# votre code ci-dessous
if __name__ == "__main__":
import doctest
doctest.testmod(verbose = True)
A l'aide des fonctions précédemment définies et du pseudo-code des K-NN, écrire un
programme Python qui détermine le poste probablement occupé par un joueur en fonction de sa taille
et de son
poids.
def k_nn(k,entree,donnees):
"""
Fonction retourne le mode d'une liste.
@param k (int): nombre de voisins utilisés.
@param entree (n-upplet): caractéristiques de la nouvelle donnée.
@param donnees (list): liste de dictionnaire ayant une clé 'label' et une clé 'caracteristiques'.
@result (str): le label affecté à la nouvelle entrée.
"""
Utilisation de l'algorithme
Quel est le poste occupé par CJ Sanders en utilisant l’algorithme avec 1 voisin (k =1) ?
avec 3 voisins (k =3) ?