K plus proches voisins (K-NN)
L'algorithme des K plus proches voisins (K-Nearest Neighbors, ou K-NN) est une méthode d'apprentissage supervisé simple mais puissante, utilisée en classification et en régression. Son principe repose sur la similarité : pour classer ou prédire un point, K-NN observe les K points les plus proches (selon une distance, souvent euclidienne) dans le jeu d'entraînement, puis déduit la sortie en fonction des valeurs associées à ces voisins. Pour une tâche de classification, il choisira la classe majoritaire parmi les voisins. Pour une régression, il calcule une moyenne des valeurs cibles des K voisins. C'est un algorithme non paramétrique, ce qui signifie qu'il ne fait aucune hypothèse forte sur la distribution des données. Son efficacité dépend beaucoup de K, du choix de la distance, et de la distribution des points dans l'espace.
L'un des avantages majeurs du K-NN est sa simplicité d'implémentation et son intuitivité. Il ne nécessite aucun entraînement réel : toutes les données sont entreposées, et la prédiction se fait dynamiquement lors des requêtes. Cela rend le modèle très souple, mais aussi coûteux en mémoire et en calcul, surtout pour de grands ensembles de données. K-NN est particulièrement sensible à l'échelle des données : il est souvent nécessaire de normaliser ou standardiser les variables pour éviter que certaines dimensions dominent les distances. Il fonctionne mieux avec des données peu bruitées et de faible dimension, car les performances chutent rapidement en haute dimension (phénomène de la malédiction de la dimensionnalité). Malgré cela, il reste une base solide pour les problèmes de détection de similarité.
Dans la pratique, K-NN est utilisé dans des domaines tels que la reconnaissance de chiffres manuscrits, les systèmes de recommandation, ou encore la reconnaissance de visages. Il est aussi souvent utilisé comme référence de base (baseline) dans les benchmarks, en raison de sa simplicité. Il existe des variantes pour améliorer ses performances : K-D trees, ball trees, ou encore des méthodes d'approximation pour la recherche de voisins. Néanmoins, en production, on lui préfère parfois des algorithmes plus rapides à l'inférence, comme les arbres de décision ou les réseaux de neurones. En résumé, K-NN reste un outil précieux, surtout lorsqu'on recherche un algorithme simple, efficace sur petits ensembles, et explicable.