C22.1 : Première approche

Présentation du problème

Pouvez-vous dire quelle est la couleur du point blanc ?

Les algorithmes des k plus proches voisins (k nearest neighbors)

Une façon de résoudre le problème posé consiste à :

Vocabulaire

Les algorithmes des k plus proches voisins font partie des algorithmes d'apprentissages.

Travail à faire

On donne ci-dessous un implémentation des données connues (coordonnées x et y, et couleurs de 20 points).

datas = [[-1, -0.2, 'r'],
         [-0.7, 0.2, 'r'],
         [-0.6, 0.4, 'r'],
         [-0.5, -1, 'r'],
         [-0.2, 1, 'r'],
         [0.2, 1.2, 'r'],
         [0.4, 0.8, 'r'],
         [-0.45, 1.15, 'r'],
         [0.8, 0.1, 'r'],
         [1.25, 0, 'r'],
         [-0.05, 0.5, 'b'],
         [0, 0.2, 'b'],
         [0.15, -0.05, 'b'],
         [0.6, -0.75, 'b'],
         [1, -0.5, 'b'],
         [1.3, -0.4, 'b'],
         [1.6, -0.3, 'b'],
         [1.7, 0.3, 'b'],
         [1.6, 0.55, 'b'],
         [1.9, 0.7, 'b']]

1) Écrire une fonction distance(xa, ya, xb, yb) qui prend les coordonnées de deux points en paramètres et renvoie la distance entre ces deux point.

2) Proposer un programme qui permet de déterminer la couleur du point blanc de coordonnées (0,0) suivant la méthode des knn, en prenant k = 3 voisins.

3) Améliorer le programme de façon à ce que l'utilisateur puisse saisir :