Introduction à l'algorithme KNN

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Qu'est-ce que l'algorithme K-Plus Proches Voisins (KNN) ?

L'algorithme K-Plus Proches Voisins (KNN) est un algorithme d'apprentissage automatique supervisé simple et non paramétrique utilisé pour les problèmes de classification.

L'algorithme KNN est un exemple d'apprentissage non supervisé.

False (B)

Quel est l'objectif principal de l'algorithme KNN ?

L'objectif de l'algorithme KNN est de prédire la classe (donner un label) d'une nouvelle donnée d'entrée.

L'algorithme KNN est qualifié de 'Lazy Learning' car il effectue une phase d'entraînement intensive.

<p>False (B)</p> Signup and view all the answers

Quelle mesure de distance est couramment utilisée par KNN pour trouver les voisins les plus proches dans l'exemple illustratif ?

<p>La distance Euclidienne.</p> Signup and view all the answers

Quelles sont les étapes principales pour classer une nouvelle donnée N avec l'algorithme KNN ?

<ol> <li>Choisir le nombre de voisins K. 2) Calculer la distance entre N et toutes les données Xi du jeu d'entraînement. 3) Sélectionner les K données Xi les plus proches de N. 4) Attribuer à N la classe majoritaire parmi ces K voisins.</li> </ol> Signup and view all the answers

Lequel des éléments suivants n'est PAS une métrique d'évaluation mentionnée pour choisir K ?

<p>Distance de Manhattan (A)</p> Signup and view all the answers

Pourquoi est-il parfois nécessaire de normaliser les données avant d'appliquer KNN ?

<p>Si les caractéristiques n'ont pas le même ordre de grandeur, celles avec des valeurs plus grandes peuvent dominer le calcul de distance, faussant ainsi les résultats. La normalisation ramène toutes les caractéristiques à une échelle comparable.</p> Signup and view all the answers

Quel jeu de données est utilisé dans l'exemple d'implémentation pratique avec Python ?

<p>Le jeu de données iris de Fisher.</p> Signup and view all the answers

Dans l'exemple de code Python pour l'implémentation de KNN sur le jeu de données Iris, quelles caractéristiques sont utilisées pour l'entraînement et la prédiction ?

<p>petal_length et petal_width (A)</p> Signup and view all the answers

Quelle fonction de la bibliothèque scikit-learn est utilisée pour diviser les données en ensembles d'entraînement et de test ?

<p><code>train_test_split</code></p> Signup and view all the answers

Comment détermine-t-on la valeur optimale de K selon la procédure d'évaluation décrite ?

<p>On fait varier K sur une plage donnée (ex: 1 à 20), on entraîne et évalue le modèle pour chaque K sur le jeu de test (en calculant l'Accuracy), on trace la courbe de l'Accuracy en fonction de K, et on choisit la valeur de K qui donne la meilleure Accuracy.</p> Signup and view all the answers

Quelle est la formule de la distance de Manhattan entre deux points A et B avec des coordonnées (XA, YA) et (XB, YB) ?

<p>$d(A, B) = |XB – ХА| + |Үв – YA|$</p> Signup and view all the answers

Quelle fonction de scikit-learn est utilisée pour créer une instance du classifieur KNN ?

<p><code>KNeighborsClassifier</code></p> Signup and view all the answers

Quelle méthode de l'objet classifieur KNN est utilisée pour entraîner le modèle sur les données d'entraînement ?

<p>La méthode <code>.fit(X_train, lab_train)</code></p> Signup and view all the answers

Quelle méthode de l'objet classifieur KNN entraîné est utilisée pour prédire les étiquettes de nouvelles données ?

<p>La méthode <code>.predict(X_test)</code></p> Signup and view all the answers

Selon le graphique final, quelle est approximativement la précision (taux de prédictions correctes) obtenue pour K=3 ?

<p>Environ 0.92</p> Signup and view all the answers

Quel outil est utilisé dans le code pour visualiser la Matrice de confusion sous forme de heatmap ?

<p>La fonction <code>heatmap</code> de la bibliothèque <code>seaborn</code> (importée comme <code>sns</code>).</p> Signup and view all the answers

Flashcards

KNN (K-plus proches voisins)

Un algorithme d'apprentissage automatique supervisé simple et non paramétrique utilisé pour la classification.

Objectif de KNN

Prédire la classe d'une nouvelle donnée en se basant sur la classe majoritaire de ses K voisins les plus proches.

KNN est paresseux

L'algorithme n'apprend rien pendant la phase d'entraînement.

Distance euclidienne dans KNN

Mesure la proximité entre les points de données.

Signup and view all the flashcards

Valeur K trop faible

Peut rendre le résultat sensible au bruit.

Signup and view all the flashcards

Valeur K trop grande

Risque de faire sortir des classes.

Signup and view all the flashcards

Choisir K

Calculer des métriques d'évaluation (précision, F-score) pour différentes valeurs de K et choisir celle qui donne les meilleures performances.

Signup and view all the flashcards

Normalisation des données

Technique pour ramener les données entre 0 et 1 en divisant par leur valeur maximale.

Signup and view all the flashcards

Évaluation de KNN

Évaluer les performances de KNN et sélectionner la valeur de K qui maximise ces performances.

Signup and view all the flashcards

Matrice de confusion

Matrice qui donne le taux de prédictions correctes.

Signup and view all the flashcards

Study Notes

Introduction à KNN

  • L'algorithme KNN est une méthode d'apprentissage automatique supervisée, simple et non paramétrique.
  • Il est utilisé pour résoudre les problèmes de classification en prédisant la classe d'une nouvelle donnée.
  • La prédiction est basée sur la classe majoritaire des K plus proches voisins dans les données d'entraînement.
  • Des entreprises comme Amazon, Netflix et Spotify utilisent l'algorithme KNN pour prédire les intérêts des utilisateurs en comparant leurs données à celles d'autres clients.

Principe de l'algorithme KNN

  • L'algorithme KNN est qualifié de "paresseux" car il n'apprend rien pendant la phase d'entraînement.
  • L'ensemble de données d'entraînement doit contenir une ou plusieurs caractéristiques et une étiquette (label) pour chaque donnée.
  • Pour prédire la classe d'une nouvelle donnée d'entrée N, l'algorithme recherche ses K voisins les plus proches en utilisant la distance euclidienne ou d'autres mesures de distance.
  • La classe de la nouvelle donnée est déterminée par la classe majoritaire de ces voisins.

Exemple Illustratif du KNN

  • Considérons un ensemble de n données réparties en deux catégories : A et B (étiquettes).
  • Les données ont deux caractéristiques : Xi1 et Xi2 (features).
  • Une nouvelle donnée N a deux caractéristiques, N1 et N2, mais sa catégorie est inconnue.
  • L'objectif de l'algorithme KNN est de déterminer la catégorie de N (A ou B).
  • Les étapes à suivre sont :
    • Fixer le nombre de voisins, par exemple K=3 ou K=5.
    • Calculer les distances di entre N et chaque point classifié Xi, en utilisant la distance euclidienne usuelle : di = √(Xi1 - N1)² + (Xi2 - N2)². N1 et N2 sont les caractéristiques de N, Xi1 et Xi2 sont les caractéristiques de Xi, et di est la distance entre Xi et N.
    • Sélectionner les K distances di les plus petites.
    • Attribuer à N la classe la plus fréquente parmi les K données retenues.

Choix de l'hyper-paramètre K

  • Le choix de la valeur de K est important :
    • Une valeur paire peut produire des égalités (ex-aequos).
    • Une valeur trop faible rend le résultat sensible au bruit (bruit statistique : faibles variations de mesure ou de qualité).
    • Une valeur trop grande risque de mal classer les données.
  • Pour choisir la valeur de K :
    • Faire varier K.
    • Calculer différentes métriques d'évaluation (matrice de confusion, taux de prédictions correctes/précision/exactitude, F-score) pour chaque valeur de K sur un ensemble de données test.
    • Choisir la valeur de K qui donne les meilleures performances.

Choix d'une distance et prétraitement des données

  • Il existe de nombreuses manières de calculer la distance entre des objets.
  • La distance euclidienne est l'une d'entre elles, mais on peut utiliser aussi la distance de Hamming (pour les textes) ou de Manhattan.
  • La distance de Manhattan est définie par d(A, B) = |XB – XA| + |YB – YA|.
  • Le type de données peut influencer le choix de la distance utilisée.
  • Les caractéristiques associées aux données peuvent ne pas être du même ordre de grandeur, ce qui peut biaiser le calcul de distance.
  • Pour pallier ce problème, on normalise les données en divisant toutes les données d'une même catégorie par leur valeur maximale afin de les ramener entre 0 et 1.

Implémentation pratique avec Python de KNN

  • Utilisation du jeu de données iris de Fisher (fichier CSV contenant des données sur 3 espèces d'iris : iris setosa, iris virginica et iris versicolor).
  • Ce jeu de données contient 150 entrées, chacune avec : 
    • La longueur des sépales (en cm).
    • La largeur des sépales (en cm).
    • La longueur des pétales (en cm).
    • La largeur des pétales (en cm).
    • L’espèce d’iris .

Identification de l’espèce d’une nouvelle donnée avec KNN

  • Si on trouve un iris et qu'on souhaite déterminer son espèce, on peut utiliser l'algorithme KNN.
  • Il faut mesurer la longueur et la largeur des pétales de cette iris, et placer le point correspondant dans un graphique.

Algorithme KNN avec Python

  • Librairies à importer :
    • pandas
    • matplotlib.pyplot
    • sklearn.neighbors.KNeighborsClassifier

Importation du jeu de données Iris sous Python

  • Importer le jeu de données Iris à partir du fichier "iris.csv" avec pandas.
  • Vérifier s'il y a des valeurs nulles dans le jeu de données.

Visualisation du jeu de données:

  • Visualiser les données en utilisant un scatterplot (nuage de points) avec matplotlib.pyplot.
  • Utiliser différentes couleurs pour chaque espèce d'iris (setosa, virginica, versicolor).

Caractéristiques de la nouvelle Iris à classer :

  • Définir les caractéristiques (longueur et largeur des pétales) de la nouvelle iris à classer.
  • Entraîner le modèle KNN en spécifiant le nombre de voisins (k=3).
  • Prédire l'espèce de la nouvelle iris en utilisant le modèle entraîné.
  • Afficher le résultat de la prédiction.

Évaluation des performances de l'algorithme KNN

  • Évaluer les performances de l'algorithme KNN avec le jeu de données iris de Fisher.
  • Sélectionner la valeur d'hyper-paramètre K qui maximise les performances.
  • Importer le jeu de données "Iris.csv".
  • Créer deux dataframes :
    • X (Features) contenant uniquement les deux colonnes:"petal_length"et "petal_width".
    • Lab (Labels) contenant uniquement la deux colonne : "species".
  • Diviser les données en jeu d’entraînement et jeu de test de taille égale.
  • Visualiser les classes du jeu d’entraînement en fonction des Features
  • Fixer la valeur de K=3.
  • Entraîner un modèle de KNN avec le jeu d’entraînement.
  • Classifier les données du jeu de test en prédisant les sorties Lab (Labels) des données X de test.
  • Calculer et afficher la Matrice de confusion.
  • Calculer et afficher le taux de prédictions correctes (Précision ou Accuracy)
  • Faire varier K de 1 à 20 :
    • Pour chaque valeur de K, relever le taux de prédictions correctes (Précision ou Accuracy).
    • Tracer la courbe de ce taux en fonction de K.
    • En déduire la valeur de K optimum.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

KNN Classification Algorithm Example
10 questions
K-Nearest Neighbors (KNN) Algorithm
10 questions

K-Nearest Neighbors (KNN) Algorithm

ImpeccableRainbowObsidian avatar
ImpeccableRainbowObsidian
Use Quizgecko on...
Browser
Browser