Classification: biais de prédiction

Les prédictions de la régression logistique ne doivent pas être biaisées. Par exemple :

"moyenne des prédictions"doit ≈"moyenne des observations"

Le biais de prédiction est une quantité qui mesure l'écart entre ces deux moyennes. Par exemple :

$$\text{prediction bias} = \text{average of predictions} - \text{average of labels in data set}$$

Un biais de prédiction non nul et significatif vous indique la présence d'un bug quelque part dans votre modèle, car cela indique que le modèle ne se trompe pas concernant la fréquence à laquelle les étiquettes positives se produisent.

Par exemple, imaginons que nous sachions qu'en moyenne, 1% de tous les e-mails sont du spam. Si nous ne disposons d'aucune information concernant un e-mail donné, nous devrions prédire que celui-ci est susceptible d'être du spam à 1 %. De même, un bon modèle de spam devrait prédire en moyenne que les e-mails ont 1% de chances d'être du spam. En d'autres termes, si nous calculons la moyenne des probabilités que chaque e-mail soit du spam, le résultat devrait être de 1%. Si la prédiction moyenne du modèle est de 20% de probabilité d'être du spam, nous pouvons en conclure qu'elle présente un biais de prédiction.

Causes possibles du biais de prédiction:

  • Ensemble de fonctionnalités incomplet
  • Ensemble de données comportant du bruit
  • Pipeline présentant des bugs
  • Échantillon de biais biaisé
  • Régularisation trop forte

Vous pourriez être tenté de corriger le biais de prédiction en post-traitant le modèle appris, c'est-à-dire en ajoutant une couche de calibration qui ajuste le résultat de votre modèle pour réduire le biais de prédiction. Par exemple, si votre modèle présente un biais de +3 %, vous pouvez ajouter une couche de calibrage qui réduit la prédiction moyenne de 3%. Toutefois, l'ajout d'une couche de calibrage n'est pas conseillé pour les raisons suivantes:

  • Vous corrigez le symptôme plutôt que la cause.
  • Vous avez conçu un système plus fragile que vous devez désormais mettre à jour.

Si possible, évitez les couches de calibrage. Les projets qui utilisent des couches de calibration ont tendance à devenir dépendants d'eux, en utilisant des couches de calibrage pour résoudre tous les péchés de leur modèle. En fin de compte, maintenir les couches de calibration peut devenir un cauchemar.

Répartition par binning et biais de prédiction

La régression logistique prédit une valeur entre 0 et 1. Toutefois, tous les exemples étiquetés ont la valeur exactement 0 (par exemple, "non spam") ou exactement 1 (par exemple, "spam"). Par conséquent, lorsque vous examinez le biais de prédiction, vous ne pouvez pas le déterminer avec précision à partir d'un seul exemple. Vous devez examiner le biais de prédiction sur un "bucket" d'exemples. C'est-à-dire que le biais de prédiction pour la régression logistique n'a de sens que lorsqu'il regroupe suffisamment d'exemples pour pouvoir comparer une valeur prédite (par exemple, 0,392) aux valeurs observées (par exemple, 0,394).

Vous pouvez former des buckets de différentes manières:

  • Décomposer linéairement les prédictions cibles
  • Formes de quantiles.

Considérons le graphique de calibrage suivant pour un modèle particulier. Chaque point représente un bucket de 1 000 valeurs. Les axes ont la signification suivante:

  • L'axe des abscisses représente la moyenne des valeurs prédites par le modèle pour ce bucket.
  • L'axe Y représente la moyenne réelle des valeurs de l'ensemble de données pour ce bucket.

Les deux axes sont des échelles logarithmiques.

L'axe des abscisses correspond à la prédiction ; l'axe des ordonnées correspond à l'étiquette. Pour les valeurs de prédiction moyennes et élevées, le biais de prédiction est négligeable. Pour les valeurs de prédiction faibles, le biais de prédiction est relativement élevé.

Figure 8. Courbe de biais de prédiction (échelles logarithmiques)

Pourquoi les prédictions sont-elles si mauvaises pour une partie du modèle ? Voici quelques possibilités:

  • L'ensemble d'entraînement ne représente pas correctement certains sous-ensembles de l'espace de données.
  • Certains sous-ensembles de données sont plus bruyants que d'autres.
  • Le modèle est trop régularisation. (envisagez de réduire la valeur de lambda).