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. Si p=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 module sklearn.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.