Un filtre qui reconnaît le courrier indésirable
L'apprentissage automatique est une méthode où l'ordinateur trouve tout seul une règle à partir d'exemples, au lieu qu'une personne l'écrive. Ta messagerie trie le courrier indésirable de cette façon.
On lui montre des milliers de messages déjà classés. Elle repère ce qu'ils ont en commun. Aujourd'hui, tu fais la même chose avec des journées de location de vélos.
À la fin de cette leçon
Remarque
Je peux dire comment un ordinateur apprend à classer à partir d'exemples.
Mots clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Entraînement | la phase où l'ordinateur apprend à partir d'exemples | |
| Étiquette | la bonne réponse attachée à un exemple | calme |
| Classer | ranger un exemple dans une catégorie | |
| Voisin | un exemple proche d'un autre, selon ses mesures | |
| Biais | une erreur qui vient des exemples choisis | |
| Précision | la part des réponses justes, entre 0 et 1 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Comment un ordinateur apprend-il ?
On donne à l'ordinateur des exemples étiquetés : une température, une pluie, et la bonne réponse, « chargé » ou « calme ». C'est l'entraînement.
Ensuite, on lui montre des exemples qu'il n'a jamais vus, sans la réponse. On compare ses réponses aux vraies : c'est le test. Un jour avec 300 locations ou plus compte ici comme chargé.
Comment les k plus proches voisins décident-ils ?
Pour classer un nouveau jour, on cherche dans les exemples les k jours les plus proches. Deux jours sont proches quand leur température et leur pluie se ressemblent.
Chaque voisin vote avec son étiquette. La réponse la plus fréquente gagne. Avec k = 5, trois voisins « chargé » et deux « calme » donnent « chargé ».
Exemple : le vote de cinq voisins
| Voisin | Température | Étiquette |
|---|---|---|
| 1 | 21 | chargé |
| 2 | 19 | chargé |
| 3 | 23 | calme |
| 4 | 18 | chargé |
| 5 | 16 | calme |
| Vote | 3 chargé contre 2 calme : chargé |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Avant de commencer
Remarque
Appuie sur Start the lab dans la barre en haut et attends que JupyterLab soit prêt. Chaque bouton Run tape docker exec jupyter puis un programme de Python qui utilise la bibliothèque scikit-learn.
Classe les jours gardés de côté
docker exec jupyter python3 steps/knn.pyAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Que veut dire une précision de 0,815 ?
La précision est 0,815 : sur 92 jours, environ 81 sur 100 sont bien classés. Est-ce bon ? Il faut comparer.
Une machine qui répondrait toujours « calme » aurait 0,641, car la plupart des jours sont calmes. Les voisins font mieux, donc ils ont vraiment appris quelque chose.
Exemple : la matrice de confusion du Run
| Prédit chargé | Prédit calme | |
|---|---|---|
| Vraiment chargé | 23 | 10 |
| Vraiment calme | 7 | 52 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Quelle valeur de k choisir ?
Avec k = 1, un seul voisin décide. Le modèle colle à chaque exemple, y compris à ses hasards : c'est le surapprentissage. Avec un k trop grand, il lisse tout et rate les détails.
Le bon k se cherche en essayant plusieurs valeurs et en regardant le score sur le jeu de test.
Essaie six valeurs de k
docker exec jupyter python3 steps/knnk.pyAffichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.
Exemple : le score selon k
| k | Jours appris | Jours gardés de côté |
|---|---|---|
| 1 | 0,963 | 0,728 |
| 5 | 0,883 | 0,815 |
| 135 | 0,821 | 0,826 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une erreur fréquente
Attention
Beaucoup pensent qu'un ordinateur qui a appris est neutre et ne se trompe pas par préjugé. Non : il copie ce que lui montrent les exemples. Si les exemples oublient un groupe de personnes, il les classera mal. C'est un biais. On le cherche en regardant qui manque dans les données.
Pour aller plus loin : un exemple de biais
Un logiciel de recrutement apprend sur dix ans de dossiers d'une entreprise. Presque tous les dossiers retenus sont ceux d'hommes.
Que va-t-il apprendre ? Comment vérifier ses réponses avant de l'utiliser ? Quelles données ajouterais-tu ?