N.S.I. WorkSpace Compétence,Notions,P-Th-G,Première G3 – Algorithme des k plus proches voisins

G3 – Algorithme des k plus proches voisins

« Nous allons maintenant travailler sur un algorithme d’apprentissage automatique, souvent appelé, même en français, algorithme de machine learning. L’idée est d’utiliser un grand nombre de données afin « d’apprendre à la machine » à résoudre un certain type de problème (nous verrons un exemple un peu plus loin).

Cette idée d’apprentissage automatique ne date pas d’hier, puisque le terme de « machine learning » a été utilisé pour la première fois par l’informaticien américain Arthur Samuel en 1959.

Pourquoi le « machine learning » est tant « à la mode » depuis quelques années ? Simplement parce que le nerf de la guerre dans les algorithmes de machine learning est la qualité et la quantité des données, celles qui permettront à la machine d’apprendre à résoudre un problème. Or, avec le développement d’internet, il est relativement simple de trouver des données sur n’importe quel sujet : on parle de « big data ».

À noter aussi l’importance des stratégies mises en place par les GAFAM (Google, Apple, Facebook, Amazon et Microsoft) afin de récupérer un grand nombre de données concernant leurs clients. Ces données sont très souvent utilisées pour « nourrir » des algorithmes de machine learning. Comment, d’après vous, Amazon arrive-t-il à proposer à ces clients des « suggestions d’achats » souvent très pertinentes ?

Nous allons étudier un algorithme d’apprentissage assez simple à appréhender : l’algorithme des « k plus proches voisins ». En anglais « k nearest neighbors » d’où l’abréviation “knn”. »

Dans ce qui suit, vous devrez répondre à des questions, faire des captures d’écran, écrire du code en langage Python…
Télécharger la « Fiche-Réponse » sur laquelle vous consignerez vos productions à ces activités.

L’algorithme Knn fait partie des algorithmes dits d’apprentissage supervisé.

Indiquez quels sont les deux types de problème que permettent de résoudre les algorithmes d’apprentissage supervisé ? [Répondre sur la Fiche-Réponse]

Pour répondre à cette question, visionner la capsule vidéo qui suit.

Pour ce qui nous concerne nous allons utiliser l’algorithme Knn pour qu’il nous propose une prédiction sur la classe (label, étiquette, catégorie) d’appartenance d’un élément, à partir de caractéristiques (prédicteurs, features), par rapport à une collection d’éléments (jeu de données, ou dataset) identifiés (dont on connaît les caractéristiques et la classe d’appartenance).

Par exemple : faire une prédiction sur l’espèce à laquelle appartient un Iris à partir de la largeur et de la longueur de ses pétales.

En 1936, Edgar Anderson a collecté des données sur 3 espèces d’iris : « iris setosa », « iris virginica » et « iris versicolor ».

Iris setosa

Source

Iris virginica

Source

Iris versicolor

Source

Pour chaque iris étudié, Anderson a mesuré (en cm) la largeur et la longueur des sépales ainsi que la largeur et la longueur des pétales.

Dans un premier temps, par souci de simplification, nous nous intéresserons uniquement à la largeur et à la longueur des pétales.

Pour chaque iris mesuré, Anderson a aussi noté l’espèce (« iris setosa », « iris virginica » ou « iris versicolor »)

Vous trouverez 150 de ces mesures dans le fichier ‘iris.csv’ (Téléchargement)

extrait du jeu de données « iris »

En résumé, vous trouverez dans ce fichier :

  • la longueur des pétales (‘petal_length’)
  • la largeur des pétales (‘petal_width’)
  • l’espèce (‘specie’) de l’iris. Au lieu d’utiliser les noms des espèces, on utilisera des chiffres : 0 pour « iris setosa », 1 pour « iris virginica » et 2 pour « iris versicolor »)

Par rapport à la réponse apportée à la question précédente, quel est le type de problème que nous allons tenter de résoudre maintenant ? [Répondre sur la Fiche-Réponse]