KNN
Fonctions :
-
KNeighborsClassifier()
La fonction KNeighborsClassifier() permet de créer un modèle de classification basé sur l'algorithme des k plus proches voisins (KNN). Cet algorithme classe une nouvelle donnée en fonction de la majorité des classes parmi les k voisins les plus proches dans l'espace des caractéristiques.
Importation :
from sklearn.neighbors import KNeighborsClassifierAttributs :
Paramètre
Description
n_neighborsLe nombre de voisins à considérer pour la classification. Par défaut, il est égal à 5.weightsLa fonction de poids appliquée aux voisins. Les options sont : 'uniform'(poids uniformes, par défaut),'distance'(les voisins plus proches ont plus de poids) ou une fonction personnalisée.algorithmL'algorithme utilisé pour trouver les voisins. Les options sont : 'auto','ball_tree','kd_tree','brute'. Par défaut,'auto'choisit l'algorithme le plus approprié en fonction des données.leaf_sizeLa taille des feuilles dans les structures de données utilisées pour le calcul des voisins. Par défaut, il est égal à 30.metricLa métrique utilisée pour mesurer la distance entre les points. Par défaut, c'est 'minkowski', mais d'autres options sont disponibles comme'euclidean','manhattan', etc.pLe paramètre utilisé pour la métrique Minkowski. Si p=1, cela correspond à la distance de Manhattan. Sip=2, cela correspond à la distance Euclidienne. Par défaut, il est égal à2.n_jobsLe nombre de threads à utiliser pour le calcul. Par défaut, il est égal à None, ce qui signifie qu'un seul thread est utilisé. Si-1, tous les threads disponibles sont utilisés.metric_paramsParamètres supplémentaires pour la métrique, à utiliser uniquement avec certaines métriques comme la distance de Mahalanobis. Exemple de code :
# Importation du KNeighborsClassifier from sklearn.neighbors import KNeighborsClassifier # Création du modèle KNN avec 3 voisins model = KNeighborsClassifier(n_neighbors=3) # Exemple de données d'entrée (X) et les labels associés (y) X = [[0, 0], [1, 1], [2, 2], [3, 3]] y = [0, 1, 1, 0] # Entraînement du modèle sur les données model.fit(X, y) # Prédiction des classes pour de nouvelles données predictions = model.predict([[1.5, 1.5]]) # Affichage des résultats print(predictions)
Explication du code :
from sklearn.neighbors import KNeighborsClassifierimporte la classe KNeighborsClassifier du modulesklearn.neighbors, utilisée pour la classification basée sur l’algorithme des k plus proches voisins (KNN).Création du modèle KNN
model = KNeighborsClassifier(n_neighbors=3)crée un modèle KNN configuré pour rechercher les 3 voisins les plus proches d’un point inconnu, puis prédire sa classe par vote majoritaire parmi ces voisins.Données d’entrée
X = [[0, 0], [1, 1], [2, 2], [3, 3]]définit les échantillons d’entraînement.
Chaque échantillon possède 2 caractéristiques (x₁, x₂).y = [0, 1, 1, 0]fournit les classes (ou étiquettes) associées à chaque échantillon. Ici, les classes sont binaires : 0 ou 1.Entraînement du modèle
model.fit(X, y)entraîne le modèle KNN en "mémorisant" les exemples d’entraînement.
Le KNN est un algorithme paresseux, il ne construit pas de modèle explicite, mais stocke les données pour les utiliser lors de la prédiction.Prédiction sur de nouvelles données
predictions = model.predict([[1.5, 1.5]])utilise le modèle pour prédire la classe du point[1.5, 1.5].
L’algorithme cherche les 3 points les plus proches parmi les données d’entraînement, puis détermine la classe majoritaire parmi eux.Affichage des résultats
print(predictions)affiche la classe prédite (0 ou 1) pour le point[1.5, 1.5], en fonction des 3 voisins les plus proches.