Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

D’où viennent les biais des données ?

Après cette leçon: Je peux trouver par où un biais entre dans un jeu de données.

Leçon de 55 min1 commandeLab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Un modèle apprend ce que les données montrent

Un biais dans les données est une déformation : elles ne représentent pas bien la réalité. Un modèle d’intelligence artificielle qui apprend sur elles copie cette déformation, puis la répète à grande échelle.

Vous saurez repérer trois sources de biais : l’échantillon, les étiquettes et l’histoire. Vous saurez aussi mesurer la part de chaque groupe dans un jeu de données.

À la fin de cette leçon

Remarque

Je peux trouver par où un biais entre dans un jeu de données.

Mots clés

MotCe que ça veut dire
Biaisune déformation qui éloigne les données de la réalité
Échantillonles lignes réellement recueillies
Populationtoutes les personnes à qui le modèle servira
Représentatifqui donne à chaque groupe le même poids que dans la population
Étiquettela réponse connue que le modèle doit apprendre à retrouver
Groupedes personnes qui partagent une caractéristique, ici A ou B

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un échantillon doit ressembler à la population

L’échantillon est l’ensemble des lignes recueillies. La population est l’ensemble des personnes à qui le modèle servira.

Si un groupe est rare dans l’échantillon, le modèle l’observe peu. Il apprend mal ses habitudes. Un échantillon est représentatif quand chaque groupe y pèse autant que dans la population.

Exemple travaillé : un organisme de prêts

GroupeDemandes dans les donnéesPart dans les donnéesPart dans la ville
A90090 %60 %
B10010 %40 %
Total1 000100 %100 %

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Calculer la part d’un groupe

Code: python
# Les demandes de prêt de l’an dernier, groupe par groupe.
demandes = ["A"] * 900 + ["B"] * 100
total = len(demandes)
nombre_b = 0
for groupe in demandes:
    if groupe == "B":
        nombre_b = nombre_b + 1
print("part du groupe B :", nombre_b * 100 / total, "%")
# Dans la ville, B pèse 40 %.
# Mettez 600 groupes A et 400 groupes B, puis relancez.

Compter les jours de semaine et de week-end

Commande
docker exec jupyter python3 steps/weekend.py

Affiché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.

Une étiquette peut déjà porter un jugement

L’étiquette est la réponse que le modèle doit retrouver. Elle vient souvent d’une décision humaine passée.

Prenons « prêt remboursé ». Elle n’existe que pour les prêts accordés. Un prêt refusé n’a jamais eu la chance d’être remboursé ou non. Le modèle ne voit donc qu’une partie de la réalité.

Les données gardent la trace de l’histoire

Un jeu de données décrit le passé. Si, dans le passé, un groupe a reçu moins de réponses favorables, les données le disent aussi.

Le modèle n’invente pas ce biais. Il l’apprend avec soin, puis le prolonge. Savoir d’où viennent les données est donc la première question à poser.

Une erreur fréquente

Attention

Beaucoup pensent qu’un énorme jeu de données est forcément juste. Un million de lignes qui oublient un groupe ne représentent toujours pas ce groupe. Posez d’abord la question : qui manque, et pourquoi ?

Dans votre carnet : la part de chaque jour

Code: python
import pandas as pd

locations = pd.read_csv("hires.csv")
# La part de chaque jour de la semaine dans le fichier, en pourcentage.
(locations["weekday"].value_counts(normalize=True) * 100).round(1)
# Un jour pèse-t-il beaucoup plus que les autres ? Est-ce un biais, ou le calendrier ?

Pour aller plus loin

Choisissez un jeu de données que vous connaissez : les inscrits d’un club, les clients d’un petit commerce, les réponses à un sondage.

Écrivez trois phrases. Qui est dans les données ? Qui manque ? Qui a décidé de la réponse que le modèle doit apprendre ?

À propos de ce labo et de sa source: Lab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.