Yolo Vision Shenzhen
Shenzhen
Rejoindre maintenant
Glossaire

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.

K-Nearest Neighbors (KNN) est un algorithme d'apprentissage supervisé fondamental et non paramétrique utilisé à la fois pour les tâches de classification et de régression. Contrairement aux réseaux neuronaux complexes qui apprennent des paramètres pendant une phase d'entraînement, KNN se caractérise comme un « apprenant paresseux ». Il ne génère pas de fonction discriminante à partir des données d'entraînement à l'avance ; au lieu de cela, il mémorise l' ensemble des données et n'effectue des calculs que lorsqu'une requête est effectuée. L'intuition fondamentale derrière KNN est la similarité : il suppose que les points de données ayant des caractéristiques similaires se trouvent à proximité les uns des autres dans l'espace des caractéristiques.

Fonctionnement de l'algorithme

Le mécanisme de K-Nearest Neighbors repose en grande partie sur le calcul de la distance entre les points de données pour déterminer la similarité. Lorsqu'une nouvelle entrée est introduite, l'algorithme identifie le nombre « K » d'échantillons d'apprentissage qui sont les plus proches de la nouvelle entrée.

  1. Calcul de la distance: l'algorithme calcule la distance entre le point de requête et chaque point du jeu de données. Les mesures courantes comprennent la distance euclidienne pour les variables continues et la distance de Manhattan (géométrie des taxis) pour les chemins en forme de grille .
  2. Sélection des voisins: il trie ces distances et sélectionne les « K » entrées supérieures ayant les plus petites valeurs.
  3. Agrégation des prédictions:
    • Classification: l'algorithme utilise un système de vote à la majorité. L'étiquette de classe qui apparaît le plus fréquemment parmi les K voisins est attribuée au point de requête. Ceci est fondamental dans des tâches telles que la classification d'images de base .
    • Régression: la prédiction est obtenue en calculant la moyenne des valeurs cibles des K voisins.

La sélection de la valeur optimale pour « K » est une étape cruciale dans le réglage des hyperparamètres. Une valeur K faible (par exemple, K = 1) rend le modèle sensible au bruit et aux valeurs aberrantes, ce qui peut entraîner un surapprentissage. À l'inverse, une valeur K élevée lisse les frontières de décision, mais peut négliger les modèles locaux, ce qui entraîne un sous-apprentissage.

Applications concrètes

Malgré sa simplicité, l'algorithme des K plus proches voisins est suffisamment robuste pour diverses applications pratiques, en particulier lorsque l' interprétabilité est requise.

  • Moteurs de recommandation: KNN est un élément constitutif du filtrage collaboratif dans les systèmes de recommandation modernes . En identifiant les utilisateurs ayant des historiques de visionnage ou d'achat similaires (voisins), les plateformes de streaming peuvent suggérer à un utilisateur des contenus qu'il est susceptible d'apprécier en fonction de ce que ses « voisins » ont aimé.
  • Détection des anomalies: les institutions financières utilisent le KNN pour la détection des anomalies afin de prévenir la fraude à la carte de crédit. Les transactions sont représentées dans un espace de caractéristiques ; une nouvelle transaction qui s'écarte considérablement du comportement « normal » d'un utilisateur est signalée comme suspecte.
  • Diagnostic médical: dans le domaine de l' analyse d'images médicales, le KNN peut classify les cas de patients en comparant leurs paramètres de santé ou les caractéristiques extraites à une base de données d'antécédents médicaux, facilitant ainsi le diagnostic des pathologies en fonction de la similitude des symptômes.

Limites techniques et considérations

Bien qu'intuitif, le KNN rencontre des difficultés avec les grands ensembles de données et les données à haute dimension. Comme il stocke toutes les données d'apprentissage , l'utilisation de la mémoire peut être importante. De plus, le coût de calcul des distances pour chaque requête a un impact sur la latence de l'inférence. Dans les espaces à haute dimension , les points de données deviennent clairsemés, un phénomène connu sous le nom de malédiction de la dimensionnalité, qui peut dégrader l' efficacité des mesures de distance.

Pour atténuer ce problème, les praticiens procèdent souvent à une réduction de la dimensionnalité ou utilisent des techniques d'extraction de caractéristiques, telles que l'extraction d' intégrations à l'aide d'un modèle YOLO26, avant d'appliquer le KNN.

Distinguer KNN de K-Means

Il est courant de confondre les K-Nearest Neighbors avec le K-Means Clustering en raison de leur convention de nommage similaire . Cependant, ils ont des objectifs fondamentalement différents :

  • KNN est un algorithme supervisé qui nécessite des entrées étiquetées pour prédire une classe ou une valeur.
  • K-Means est un algorithme d'apprentissage non supervisé utilisé pour regrouper des données non étiquetées en fonction de leurs structures inhérentes.

Exemple de mise en œuvre

L'exemple suivant illustre un workflow de classification simple utilisant la bibliothèque populaire Scikit-learn. Il montre comment l' algorithme ajuste les données et prédit une classe en fonction de la proximité des voisins.

import numpy as np
from sklearn.neighbors import KNeighborsClassifier

# Sample training data (Features: [Height, Weight], Labels: 0=Type A, 1=Type B)
X_train = np.array([[150, 45], [155, 48], [170, 70], [175, 75]])
y_train = np.array([0, 0, 1, 1])

# Initialize KNN with 3 neighbors
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Predict class for a new point [160, 55]
# The model calculates distances and votes based on the 3 nearest points
prediction = knn.predict([[160, 55]])
print(f"Predicted Class: {prediction[0]}")

Pour les applications avancées impliquant des données visuelles, les approches modernes combinent souvent la logique KNN avec l'apprentissage profond. Par exemple, les bases de données de recherche vectorielle utilisent des algorithmes ANN (Approximate Nearest Neighbor) pour trouver rapidement des images similaires ou des intégrations de texte générées par des modèles haute performance tels que YOLO11 ou YOLO26.

Rejoindre la communauté Ultralytics

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

Rejoindre maintenant