Konfigurieren von Fairnessbewertungen für indirekte Verzerrungen
Unter bestimmten Bedingungen können Sie Fairness-Evaluierungen so konfigurieren, dass sowohl indirekte als auch direkte Verzerrungen für einen Modelleinsatz berücksichtigt werden.
Indirekte Verzerrung tritt auf, wenn eine Funktion in einem Dataset verwendet werden kann, um für eine andere zu stehen. Beispiel: In einem Dataset, in dem "race" kein bekanntes Feature ist, kann ein Feature wie "post-code" häufig eng an "race" angelehnt sein. Die Auswertung der Postleitzahlenfunktion für Verzerrungen ist eine Möglichkeit, indirekte Verzerrungen zu erkennen. In einem anderen Beispiel könnte das Einkaufsprotokoll des Kunden genau dem Geschlecht entsprechen. Daher kann selbst ein Vorhersagemodell, das keine typischen geschützten Attribute wie Rasse, Alter oder Geschlecht enthält, auf verzerrte Ergebnisse hinweisen.
Indirekte Verzerrungen werden analysiert, wenn die folgenden Bedingungen erfüllt sind:
- Um Zusammenhänge zu erkennen, muss der Datensatz ausreichend groß sein (mehr als 4000 Datensätze).
- Die Trainingsdaten müssen die Metafelder enthalten. Sie müssen das Modell anhand einer Teilmenge der Datenfelder trainieren. Diese zusätzlichen Felder, die Metafelder, dienen der Ermittlung indirekter Verzerrungen. (Füge die Metafelder ein, verwende sie jedoch nicht beim Modelltraining.)
- Die Nutzdatenprotokollierung muss Metafelder enthalten und vor der Konfiguration des Fairness-Monitors ausgeführt werden. Sie müssen diese Methode verwenden, um die Metafelder hochzuladen. Die Nutzdatenprotokollierung für indirekte Vorverzerrung erfordert zwei Arten von Eingaben: 1) Trainingsmerkmale mit Werten und 2) Metafelder mit Werten.
- Wählen Sie bei der Konfiguration des Fairness-Monitors die zusätzlichen Felder aus, die überwacht werden sollen.
Typischer Arbeitsablauf bei indirekter Vorspannung
Sie können jedoch indirekte Verzerrung für Vorproduktions-und Produktionsmodelle bestimmen, für die die Modelle unterschiedliche Spalten benötigen. Die Testdaten, die zur Bewertung von Vorserienmodellen verwendet werden, und die Feedback-Daten, die zur Bewertung von Vorserien- oder Serienmodellen dienen, unterscheiden sich hinsichtlich der Verwendung von Metaspalten. Metaspalten sind für die Testdaten der Vorproduktionsphase erforderlich und dürfen nicht in den Feedback-Daten enthalten sein, die für Vorproduktions- oder Produktionsmodelle verwendet werden. Ein typischer Arbeitsablauf könnte folgende Schritte umfassen:
- Erstellen Sie Trainingsdaten, die sowohl Merkmalsspalten als auch Metaspalten enthalten. Die Metaspalten enthalten Daten, die nicht zum Trainieren des Modells verwendet werden.
- Konfigurieren Sie den Fairness-Monitor mit den Meta-Spalten.
- Laden Sie während der Vorproduktion Testdaten hoch, die sowohl die Merkmalsspalten als auch die Metaspalten enthalten. Diese Testdaten müssen über die Option „Testdaten importieren“ unter „ CSV “ hochgeladen werden.
- Während der Vorproduktion können Sie verschiedene Versionen des Modells verwenden, während Sie die indirekten Verzerrungsmaße verwenden, um sicherzustellen, dass Ihr finales Modell frei von Verzerrungen ist.
- Nachdem Sie das Modell in die Produktion übernommen haben, sollten die Feedback-Daten keine Metaspalten mehr enthalten, sondern nur noch die Merkmalsspalten, die zum Trainieren des Modells verwendet wurden.
Beispiel für eine JSON-Nutzlastdatei mit Metafeldern
Die folgende Beispieldatei zeigt eine JSON-Nutzlast mit den Feldern und Werten, die zum Trainieren des Modells verwendet werden. Die für die Analyse der indirekten Verzerrung verwendeten Metafelder und Werte sind ebenfalls enthalten. Die Metafelder werden nicht zum Trainieren des Modells verwendet, sondern sind für eine andere Art der Analyse vorgesehen, bei der versucht wird, sie mit Verzerrungen im Modell in Zusammenhang zu bringen. Obwohl die Metafelder Daten beliebiger Art enthalten können, handelt es sich in der Regel um geschützte Merkmale wie Geschlecht, ethnische Zugehörigkeit oder Alter.
[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)
Meta-Werte müssen im Format eines Arrays von Arrays vorliegen:
"meta": {
"fields": ["age", "race", "sex"],
"values": [
[32, "Black", "Male"]
]
}
Weitere Informationen
- Optionen zur Beseitigung von Verzerrungen
- Für ein Notizbuch für indirekte Verzerrungen, Indirect Bias detection