Glossaire

Voisins les plus proches (K-Nearest Neighbors - KNN)

Découvrez comment K-Nearest Neighbors (KNN) simplifie l'apprentissage automatique grâce à son approche intuitive et non paramétrique des tâches de classification et de régression.

K-Nearest Neighbors (KNN) est un algorithme fondamental de l'apprentissage automatique (ML), utilisé à la fois pour les tâches de classification et de régression. Il se distingue par sa simplicité et son approche intuitive, ce qui en fait un excellent point de départ pour comprendre l'apprentissage basé sur les instances. Le KNN est classé parmi les méthodes non paramétriques, car il ne fait pas d'hypothèses sur la distribution sous-jacente des données. Il est également connu sous le nom d'algorithme d'"apprentissage paresseux", car il ne construit pas de modèle général pendant la phase de formation des données; au lieu de cela, il stocke l'ensemble des données et n'effectue des calculs que lorsqu'une prédiction est nécessaire.

Comment fonctionne le KNN

L'idée de base du KNN repose sur la similarité, souvent définie à l'aide de mesures de distance telles que la distance euclidienne. Lors de la prédiction d'un nouveau point de données inédit, l'algorithme identifie les "K" points de données les plus proches (voisins) à partir de l'ensemble de données d'apprentissage stocké. La valeur "K" est un nombre entier défini par l'utilisateur et représente le nombre de voisins pris en compte.

Pour la classification, le nouveau point est affecté à la classe la plus fréquente parmi ses K voisins (vote majoritaire). Pour la régression, la prédiction est généralement la valeur moyenne des K voisins. Le choix de la métrique de distance (par exemple, Manhattan, Minkowski) et la valeur de "K" sont des hyperparamètres cruciaux qui influencent considérablement les performances du modèle. Une mise en œuvre efficace s'appuie souvent sur des structures de données telles que les arbres KD ou les arbres de Ball pour accélérer la recherche des voisins, en particulier pour les grands ensembles de données.

Choix de la valeur de "K

Le choix de la valeur "K" optimale est essentiel. Une petite valeur de "K" (par exemple, K=1) rend le modèle très sensible au bruit et aux valeurs aberrantes des données, ce qui peut conduire à un surajustement, c'est-à-dire que le modèle donne de bons résultats sur les données d'apprentissage, mais de mauvais résultats sur les données non observées. Inversement, une valeur "K" élevée peut trop lisser les limites de décision, ce qui rend le modèle moins sensible aux modèles locaux et peut conduire à un sous-ajustement et à des coûts de calcul élevés lors de la prédiction. Des techniques telles que la validation croisée (voir le guide de validation croisée de Scikit-learn) sont souvent employées pour trouver un "K" approprié qui équilibre le compromis biais-variance. La bibliothèque Scikit-learn fournit des outils pour mettre en œuvre le KNN et effectuer des recherches d'hyperparamètres, et vous pouvez trouver des conseils généraux dans le Ultralytics Hyperparameter Tuning Guide.

Applications du KNN

La simplicité du KNN se prête à diverses applications, en particulier lorsque l'interprétabilité est importante :

  • Systèmes de recommandation : KNN peut identifier les utilisateurs ayant des goûts similaires sur la base de leur comportement passé afin de leur recommander des articles. Le principe est similaire aux techniques utilisées par des plateformes telles que Netflix pour leur système de recommandation.
  • Classification d'images de base : Il peut être utilisé pour des tâches simples de classification d'images, telles que la reconnaissance de chiffres manuscrits à partir d'ensembles de données tels que l'ensemble de données MNIST.
  • Détection d'anomalies : Identifier des points de données inhabituels qui sont éloignés de leurs voisins, utile dans des domaines tels que la sécurité des réseaux(OWASP Anomaly Detection Project).
  • Santé : Classification des patients sur la base de caractéristiques permettant de prédire les résultats ou de diagnostiquer des pathologies, contribuant à l'IA dans les soins de santé (voir la collection Nature Medicine AI in Health and Medicine).

Avantages et inconvénients du KNN

Le KNN présente plusieurs avantages, mais aussi des limites :

Avantages :

  • Simplicité et interprétabilité: Facile à comprendre et à expliquer la logique de prédiction basée sur les voisins.
  • Pas de phase de formation explicite: S'adapte rapidement aux nouvelles données car il n'est pas nécessaire de réapprendre le modèle, il suffit d'ajouter des points de données.
  • Flexibilité: Gère naturellement la classification multi-classes et peut être adapté à la régression.

Inconvénients :

KNN et concepts apparentés

Il est important de distinguer KNN des autres algorithmes :

  • K-Means Clustering: K-Means est un algorithme d'apprentissage non supervisé utilisé pour regrouper les données en K groupes sur la base de leur similarité. KNN est un algorithme d'apprentissage supervisé utilisé pour la classification ou la régression sur la base des voisins étiquetés.
  • Machine à vecteurs de support (SVM): Le SVM est un algorithme supervisé qui trouve un hyperplan optimal pour séparer les classes. Le KNN classifie sur la base de la similarité locale des voisins, tandis que le SVM recherche une frontière optimale globale. Pour en savoir plus, consultez la page Scikit-learn SVM.
  • Arbres de décision: Les arbres de décision classent les données en apprenant un ensemble de règles hiérarchiques, créant ainsi une structure arborescente. KNN utilise la similarité basée sur la distance, tandis que les arbres de décision utilisent des divisions basées sur les caractéristiques. Voir la page Scikit-learn Decision Trees pour plus de détails.

Alors que le KNN est utile pour certaines tâches et pour comprendre les concepts ML fondamentaux, les problèmes complexes comme la détection d'objets en temps réel bénéficient souvent de modèles plus avancés comme Ultralytics YOLO, qui offrent une vitesse et des performances supérieures, en particulier sur les ensembles de données de vision par ordinateur à grande échelle. Vous pouvez former et déployer de tels modèles en utilisant des plateformes comme Ultralytics HUB.

Rejoindre la communauté Ultralytics

Rejoignez l'avenir de l'IA. Connectez-vous, collaborez et évoluez avec des innovateurs mondiaux.

S'inscrire
Lien copié dans le presse-papiers