Exercices de programmation pour classes préparatoires
On dispose d'un jeu de donnees etiquetees : une liste de tuples (x, y, label) ou (x, y) est un point du plan et label son etiquette (un entier). Etant donne un nouveau point (px, py), on souhaite lui attribuer une etiquette grace a la methode des k plus proches voisins.
Ecrire une fonction knn(points_etiquettes, point, k) qui :
point et chaque point etiquette ;k plus proches ;k voisins.En cas d'egalite dans le vote (plusieurs etiquettes a la meme frequence maximale), renvoyer celle qui a ete rencontree la premiere parmi les k voisins (dans l'ordre de proximite croissante).
On supposera k >= 1 et points_etiquettes non vide, avec k <= len(points_etiquettes).
| Appel | Résultat attendu |
|---|---|
| knn([(0, 0, 1), (1, 0, 2), (2, 2, 1)], (0, 1), 1) | 1 |
| knn([(0, 0, 1), (1, 0, 1), (2, 2, 2)], (1, 1), 3) | 1 |
Connectez-vous pour soumettre du code.