K-Nearest Neighbors (KNN)
Découvrez comment l'algorithme des K plus proches voisins (KNN) simplifie l'apprentissage automatique grâce à son approche non paramétrique intuitive pour les tâches de classification et de régression.
Les K-Nearest Neighbors (KNN) sont un algorithme d'apprentissage supervisé fondamental utilisé pour les tâches de classification et de régression. Il est considéré comme un algorithme basé sur l'instance ou d'"apprentissage paresseux" car il ne construit pas de modèle pendant la phase d'apprentissage. Au lieu de cela, il stocke l'ensemble de données complet et effectue des prédictions en trouvant les 'K' instances (voisins) les plus similaires dans les données stockées. L'idée de base est que des points de données similaires existent à proximité. Pour un nouveau point de données non classé, KNN identifie ses voisins les plus proches et utilise leurs étiquettes pour déterminer sa propre classification ou valeur.
Comment fonctionne KNN ?
L'algorithme KNN fonctionne sur un principe simple de similarité, généralement mesurée par une métrique de distance. La plus courante est la distance euclidienne, bien que d'autres métriques puissent être utilisées en fonction de l'ensemble de données.
Le processus pour faire une prédiction est simple :
- Choisir la valeur de K : Le nombre de voisins (K) à considérer est un hyperparamètre essentiel. Le choix de K peut affecter considérablement les performances du modèle.
- Calculer les distances : Pour un nouveau point de données, l'algorithme calcule la distance entre ce point et tous les autres points de l'ensemble de données d'entraînement.
- Identifier les voisins : Il identifie les K points de données de l'ensemble d'apprentissage qui sont les plus proches du nouveau point. Ce sont les "plus proches voisins".
- Faire une prédiction:
- Pour les tâches de classification, l'algorithme effectue un vote majoritaire. Le nouveau point de données est affecté à la classe la plus fréquente parmi ses K plus proches voisins. Par exemple, si K=5 et que trois voisins sont de la classe A et deux de la classe B, le nouveau point est classé comme classe A.
- Pour les tâches de régression, l'algorithme calcule la moyenne des valeurs de ses K plus proches voisins. Cette moyenne devient la valeur prédite pour le nouveau point de données.
Applications concrètes
La simplicité et la nature intuitive du KNN le rendent utile dans diverses applications, en particulier comme modèle de base.
- Systèmes de Recommandation : KNN est un choix populaire pour la construction de moteurs de recommandation. Par exemple, un service de streaming peut recommander des films à un utilisateur en identifiant d'autres utilisateurs (voisins) ayant des historiques de visionnage similaires. Les films appréciés par ces voisins, que l'utilisateur cible n'a pas vus, sont ensuite recommandés. Cette technique est une forme de filtrage collaboratif.
- Services financiers : Dans le domaine de la finance, KNN peut être utilisé pour la notation de crédit. En comparant un nouveau demandeur de prêt à une base de données d'anciens demandeurs ayant des résultats de crédit connus, l'algorithme peut prédire si le nouveau demandeur est susceptible de faire défaut. Les voisins sont d'anciens demandeurs ayant des profils financiers similaires (p. ex. âge, revenu, niveau d'endettement), et leur historique de défaut éclaire la prédiction. Cela permet d'automatiser les évaluations initiales des risques.
KNN : concepts connexes
Il est important de distinguer KNN des autres algorithmes d'apprentissage automatique courants :
- Clustering K-Means: Bien que les noms soient similaires, leurs fonctions sont très différentes. K-Means est un algorithme d'apprentissage non supervisé utilisé pour partitionner les données en K sous-groupes distincts et non chevauchants (clusters). KNN, en revanche, est un algorithme supervisé utilisé pour la prédiction basée sur des données étiquetées.
- Machine à Vecteurs de Support (SVM) : SVM est un algorithme supervisé qui cherche à trouver le meilleur hyperplan possible qui sépare les différentes classes dans l'espace des caractéristiques. Alors que KNN prend des décisions basées sur la similarité locale des voisins, SVM vise à trouver une limite optimale globale, ce qui le rend fondamentalement différent dans son approche. Plus de détails peuvent être trouvés sur la page SVM de Scikit-learn.
- Arbres de décision : Un arbre de décision classifie les données en créant un modèle de décisions hiérarchiques basées sur des règles. Il en résulte une structure arborescente, tandis que KNN repose sur une similarité basée sur la distance sans apprendre de règles explicites. Vous pouvez en apprendre davantage dans la documentation sur les arbres de décision de Scikit-learn.
Bien que KNN soit un outil précieux pour comprendre les concepts fondamentaux de l'apprentissage automatique et pour une utilisation sur des ensembles de données plus petits et bien organisés, il peut être gourmand en calcul pour l'inférence en temps réel avec le big data. Pour les tâches complexes de vision par ordinateur comme la détection d'objets en temps réel, les modèles plus avancés comme Ultralytics YOLO sont préférés pour leur vitesse et leur précision supérieures. Ces modèles peuvent être facilement entraînés et déployés à l'aide de plateformes comme Ultralytics HUB.