Sous certaines conditions, vous pouvez configurer les évaluations de l'équité de manière à ce qu'elles prennent en compte les biais indirects ainsi que les biais directs pour le déploiement d'un modèle.
Le biais indirect se produit lorsqu'une caractéristique d'un jeu de données peut être utilisée pour en représenter une autre. Par exemple, dans un jeu de données où la race n'est pas une fonction connue, une fonction telle que le code postal peut souvent suivre de près la race. L'évaluation de la fonction de code postal pour le biais est un moyen de détecter le biais indirect. Dans un autre exemple, l'historique des achats du client peut correspondre étroitement au sexe. Ainsi, même un modèle prédictif qui ne contient aucun des attributs protégés typiques tels que la race, l'âge ou le sexe peut indiquer des résultats biaisés.
La partialité indirecte est analysée lorsque les conditions suivantes sont réunies :
- Pour trouver des corrélations, le jeu de données doit être suffisamment important (plus de 4000 enregistrements).
- Les données d'entraînement doivent inclure les méta-zones. Vous devez entraîner le modèle sur un sous-ensemble de zones de données. Ces zones supplémentaires, ou méta-zones, servent à déterminer le biais indirect. (Inclure les méta-champs, mais ne les utilisez pas dans la formation des modèles.)
- La journalisation de contenu utile doit comporter des méta-zones et être exécutée avant que le moniteur d'équité ne soit configuré. Vous devez utiliser cette méthode pour télécharger les champs méta. La journalisation de contenu utile pour le biais indirect requiert deux types d'entrée : 1) des caractéristiques d'entraînement avec des valeurs et 2) des méta-zones avec des valeurs.
- Lorsque vous configurez le moniteur d'équité, sélectionnez les zones supplémentaires à surveiller.
Flux de travaux typique pour le biais indirect
Toutefois, vous pouvez déterminer le biais indirect pour les modèles de préproduction et de production pour lesquels les modèles nécessitent des colonnes différentes. Les données de test utilisées pour évaluer des modèles de préproduction et les données de retour utilisées pour évaluer des modèles de préproduction ou de production diffèrent sur l'utilisation de méta-colonnes. Ces dernières sont obligatoires pour les données de test de préproduction et ne doivent pas être incluses dans les données de retour utilisées pour des modèles de préproduction ou de production. Un flux de travaux typique peut inclure les étapes suivantes :
- Créez des données d'entraînement qui contiennent à la fois des colonnes de caractéristiques et des colonnes de métadonnées. Les méta-colonnes contiennent des données qui ne sont pas utilisées pour entraîner le modèle.
- Configurez le moniteur d'équité avec les colonnes méta.
- En phase de préproduction, chargez des données de test contenant à la fois des colonnes de caractéristiques et des méta-colonnes. Ces données de test doivent être téléchargées à l'aide de l'option Importer des données de test CSV.
- Lors de la préproduction, vous pouvez interagir sur différentes versions du modèle tout en utilisant les mesures de biais indirect pour vous assurer que votre modèle final est exempt de biais.
- Une fois le modèle envoyé en production, les données de retour ne doivent pas comporter de méta-colonnes, uniquement les colonnes de caractéristiques qui ont été utilisées pour entraîner le modèle.
Exemple de fichier de contenu JSON avec des méta-zones
L'exemple de fichier suivant montre un contenu JSON avec les zones et valeurs utilisées pour entraîner le modèle. Les méta-zones et valeurs utilisées pour le biais indirect sont également incluses. Les méta-zones ne sont pas utilisées pour entraîner le modèle, mais elles sont réservées à un autre type d'analyse qui tente de les corréler au biais dans le modèle. Bien que les méta-zones puissent être de tout type de données, il s'agit généralement d'attributs protégés, comme le sexe, la race ou l'âge.
[request_data = {
"fields": ["AGE", "SEX", "BP", "CHOLESTEROL", "NA", "K"],
"values": [[28, "F", "LOW", "HIGH", 0.61, 0.026]]
}
response_data = {
"fields": ["AGE", "SEX", "BP", "CHOLESTEROL", "NA", "K", "probability", "prediction", "DRUG"],
"values": [[28, "F", "LOW", "HIGH", 0.61, 0.026, [0.82, 0.07, 0.0, 0.05, 0.03], 0.0, "drugY"]]
}
request_data = <put your data here>
response_data = <put your data here>
records = [PayloadRecord(request=request_data, response=response_data, response_time=18),
PayloadRecord(request=request_data, response=response_data, response_time=12)]
subscription.payload_logging.store(records=records)
Les métadonnées doivent être au format d'un tableau de tableaux :
"meta": {
"fields": ["age", "race", "sex"],
"values": [
[32, "Black", "Male"]
]
}
En savoir plus
- Options du débiaisement
- Pour un cahier de notes sur les biais indirects, Détection des biais indirects
Rubrique parent: Configuration des évaluations de modèle