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 KNeighborsClassifier
Attributs :
Paramètre
Description
n_neighbors
Le nombre de voisins à considérer pour la classification. Par défaut, il est égal à 5
.weights
La 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.algorithm
L'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_size
La taille des feuilles dans les structures de données utilisées pour le calcul des voisins. Par défaut, il est égal à 30
.metric
La 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.p
Le 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_jobs
Le 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_params
Paramè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 KNeighborsClassifier
importe 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.