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.
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.
La simplicité du KNN se prête à diverses applications, en particulier lorsque l'interprétabilité est importante :
Le KNN présente plusieurs avantages, mais aussi des limites :
Avantages :
Inconvénients :
Il est important de distinguer KNN des autres algorithmes :
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.
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.