Gérer des données

Algorithmes k-NN et k-means

Cahier des charges

Ce projet consistait à traduire les algorithmes k-NN (k-nearest neighbors) et k-means en code.

k-NN se base sur un jeu de données étiquetées : par exemple, des fleurs associées à leur variété. A partir d'une nouvelle fleur inconnue, on peut essayer de déterminer sa variété en étudiant les k fleurs auxquelles elle ressemble le plus.

On se base sur plusieurs paramètres numériques précis, par exemple : la taille des pétales et la longueur de la tige.
k est un nombre entier : il faut choisir une valeur optimale.

k-means se base sur un jeu de données non-étiquetées. Cet algorithme sépare ces données en k groupes (clusters) selon leur proximité, et leur attribue une étiquette.

Ces deux algorithmes sont utiles en machine learning, en imagerie médicale et bien d'autres. Ils permettent la détection de paternes cachés, et l'assimilation de nouvelles données.

Développement

J'ai implémenté ces deux algorithmes en Python. J'ai utilisé la librairie Numpy pour stocker les données, et Matplotlib pour dessiner les graphiques. Ensuite, j'ai rédigé un rapport expliquant les algorithmes, leur fonctionnement et leurs limites.

Avantages

Ce projet était très intéressant. La traduction d'algorithmes implique de bien connaître les mécanismes et limites du langage que l'on utilise. J'ai également appris les bases de la visualisation de données.