Glossaire

K-Voisins les plus proches (KNN)

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

Entraîne les modèles YOLO simplement
avec Ultralytics HUB

En savoir plus

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. KNN est classé comme une méthode non paramétrique 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 à la majorité). 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 de voisins, en particulier avec des ensembles de données plus importants.

Choisir 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 entraîner un surajustement, c'est-à-dire que le modèle donne de bons résultats sur les données d'entraînement mais de mauvais résultats sur les données non vues. À l'inverse, 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 entraîner un sous-ajustement et des coûts de calcul élevés pendant 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 une valeur 'K' appropriée 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 tu peux trouver des conseils généraux dans le guideUltralytics Hyperparameter Tuning Guide.

Applications de KNN

La simplicité de 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 en se basant sur leur comportement passé pour leur recommander des articles, similaire en principe aux techniques utilisées par des plateformes comme 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 comme l'ensemble de données MNIST.
  • Détection d'anomalie : Identifier les 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é : Classifier les patients en fonction de caractéristiques pour prédire les résultats ou diagnostiquer des conditions, contribuant ainsi à l'IA dans les soins de santé (voir la collection Nature Medicine AI in Health and Medicine).

Avantages et inconvénients du KNN

KNN offre plusieurs avantages mais comporte 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 :

  • Regroupement K-Means: K-Means est un algorithme d 'apprentissage non supervisé utilisé pour regrouper les données en K grappes en fonction de leur similarité. KNN est un algorithme d'apprentissage supervisé utilisé pour la classification ou la régression en fonction des voisins étiquetés.
  • Machine à vecteurs de support (SVM): SVM est un algorithme supervisé qui trouve un hyperplan optimal pour séparer les classes. KNN classifie en se basant sur la similarité locale des voisins, alors que SVM cherche une frontière optimale globale. Pour en savoir plus, consulte 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.

Si le KNN est précieux pour certaines tâches et la compréhension des 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 YOLOqui offrent une vitesse et des performances supérieures, en particulier sur les ensembles de données de vision par ordinateur à grande échelle. Tu peux former et déployer de tels modèles en utilisant des plateformes comme Ultralytics HUB.

Tout lire