Comment une machine peut-elle classer une donnée nouvelle en regardant simplement ses voisines ?
L'algorithme des k plus proches voisins attribue à un point la classe majoritaire parmi les k points connus les plus proches. Sur un exemple, le point (3 ; 3) est classé B avec k = 1 (voisin à distance 1) mais A avec k = 3 (distances 1, √2 et 2) : le choix de k change la réponse.
Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.
Pourquoi cette question : un modèle d'introduction
Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.
En NSI, nous avons programmé un algorithme qui devinait l'espèce d'une fleur à partir de la longueur et de la largeur de ses pétales, en regardant les fleurs les plus ressemblantes. C'était ma première rencontre avec l'apprentissage automatique, et j'ai été surpris qu'une idée aussi simple, la distance de seconde, suffise. J'ai voulu comprendre ses forces et ses pièges, en particulier le choix du nombre de voisins.
L'enjeu et les notions du programme
Utiliser la distance euclidienne dans un repère pour construire un classifieur et étudier l'influence d'un paramètre.
Mathématiques
- Distance entre deux points dans un repère orthonormé (seconde)
- Comparaison de nombres, racines carrées (seconde)
- Fréquences, statistiques (seconde)
Numérique et sciences informatiques
- Algorithme des k plus proches voisins (première)
- Traitement de données en tables (première)
Le plan de l'exposé en 9,5 min
1. Introduction
1 minOn dispose de données déjà classées, par exemple des fleurs dont on connaît l'espèce, décrites par deux mesures. Une nouvelle fleur arrive. Problématique : comment la classer automatiquement, et de quoi dépend la réponse ?
2. Mathématiques : distances et vote
4 minChaque donnée est un point (x;y). La distance entre deux points est √((x_B-x_A)²+(y_B-y_A)²).
Exemple : classe A en (2;2), (1;3), (2;5) ; classe B en (4;3), (6;5), (5;6). Nouveau point P(3;3). Distances : à (4;3) : 1 ; à (2;2) : sqrt2≈1,41 ; à (1;3) : 2 ; à (2;5) : sqrt5≈2,24 ; à (6;5) et (5;6) : √(13)≈3,61.
Avec k=1 : le plus proche est en B, donc P est classé B. Avec k=3 : les trois plus proches sont B, A, A : majorité A. Le résultat dépend de k. Un petit k est sensible aux points isolés ou mal étiquetés ; un grand k gomme les détails et favorise la classe la plus nombreuse. On choisit souvent k impair pour éviter les égalités à deux classes.
3. NSI : programmer et évaluer
3 minEn Python, on calcule la distance de P à chaque donnée, on trie la liste des couples (distance, classe) et on compte les classes parmi les k premiers. Coût : n distances et un tri, pour chaque nouveau point.
Pour choisir k, on met de côté une partie des données (jeu de test), on classe ces points avec les autres, et on mesure le taux de bonnes réponses pour plusieurs valeurs de k. Il n'y a pas d'apprentissage à proprement parler : l'algorithme garde toutes les données et calcule au moment de la question.
4. Conclusion
1,5 minClasser par les plus proches voisins, c'est appliquer la formule de la distance et faire voter les plus proches. Le paramètre k change la réponse : on le choisit en testant sur des données mises de côté. J'ouvre sur le problème des unités, car la distance n'a de sens que si les mesures sont comparables.
Ce que j'écris au tableau
Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.
1 ( B ), sqrt2 ( A ), 2 ( A ), sqrt5 ( A ), √(13) ( B ), √(13) ( B ) k=1: B k=3: A
Conclusion : la réponse à la question
Une distance et un vote suffisent à classer une donnée nouvelle. Mais la réponse dépend du nombre de voisins consultés, qu'il faut choisir en évaluant l'algorithme sur des données qu'il n'a pas vues.
Les questions probables du jury
Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.
Calculez la distance de (3 ; 3) à (2 ; 5).
√(1²+2²)=sqrt5≈2,24.
Pourquoi choisir k impair ?
Avec deux classes, cela évite les égalités dans le vote.
Que se passe-t-il si k vaut le nombre total de données ?
On prédit toujours la classe majoritaire de tout le jeu de données, quel que soit le point.
Faut-il comparer les racines carrées pour trier ?
Non : la racine est croissante, on peut trier les carrés des distances et gagner du calcul.
Quel est le coût pour classer un point parmi n données ?
n calculs de distance et un tri, soit de l'ordre de n log n opérations.
Les pièges qui coûtent des points
- Oublier que le résultat dépend de k.
- Mélanger des mesures d'unités différentes sans précaution.
- Confondre jeu d'entraînement et jeu de test.
Revoir les notions
Autres questions : données et intelligence artificielle
- Pourquoi le résultat d'un algorithme d'intelligence artificielle peut-il changer si l'on mesure en millimètres plutôt qu'en centimètres ?
- Comment une machine trouve-t-elle la droite qui résume le mieux un nuage de points ?
- Comment une intelligence artificielle apprend-elle en corrigeant ses erreurs pas à pas ?
- Pourquoi un neurone artificiel seul ne peut-il pas apprendre le « ou exclusif » ?
Préparer l'oral, pas seulement le contenu
Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.
Méthode : traiter une question de Grand oral →