1. L’illusion de la neutralité mathématique

Un algorithme n’est jamais neutre par essence : il reflète fidèlement la structure, les imperfections et les préjugés historiques présents dans les données sur lesquelles il a été entraîné. En l’absence de vigilance éthique, les systèmes automatisés ont tendance à reproduire, amplifier et pérenniser les discriminations sociales sous un vernis d’objectivité mathématique trompeur.

2. Typologie des biais en Data Science

  • Biais de sélection / échantillonnage : La population d’entraînement n’est pas représentative de la population réelle cible (ex. système de reconnaissance faciale entraîné majoritairement sur des visages masculins de type caucasien).
  • Biais historique : Les données reflètent des inégalités passées (ex. algorithme de tri de candidatures RH reproduisant la sous-représentation féminine historique aux postes de direction).
  • Biais par procuration (Proxy Bias) : Supprimer la variable sensible (le sexe ou l’origine) ne suffit pas : des variables corrélées comme le code postal ou les activités associatives servent de substitut indirect discriminant.

3. Métriques quantitatives d’équité (Fairness Metrics) avec Python

Des bibliothèques open-source comme Fairlearn (Microsoft) ou AIF360 (IBM) permettent d’auditer mathématiquement l’équité :

from fairlearn.metrics import MetricFrame, selection_rate, true_positive_rate
from sklearn.metrics import accuracy_score

# Calcul des métriques ventilées par sous-groupe protégé (ex. genre)
metrics = {
    'accuracy': accuracy_score,
    'selection_rate': selection_rate,
    'tpr': true_positive_rate
}
metric_frame = MetricFrame(
    metrics=metrics,
    y_true=y_test,
    y_pred=predictions_modele,
    sensitive_features=donnees_genre_test
)
print(metric_frame.by_group)

On surveille notamment la Parité Démographique (Demographic Parity) et l’Égalité des Chances (Equalized Odds) pour garantir qu’un groupe protégé ne subisse pas un taux de rejet anormalement défavorable.