Una volta stabilito che il Counterfactual Logit Pairing (CLP) è la tecnica appropriata per il tuo caso d'uso, puoi applicarla procedendo come segue:
- Crea un'istanza di
CounterfactualPackedInputs
con i dati originali e controfattuali. - Misurare la frequenza di ribaltamento e il numero di ribaltamenti per determinare se è necessario un intervento.
- Se è necessario un intervento, trasferire i dati di input originali, i dati controfattuali, il modello originale e la perdita couterfattuale al modello controfattuale.
- Valutare l'impatto del CLP misurando il tasso di ribaltamento e il numero di ribaltamenti.
Per vedere un esempio di applicazione del CLP a un modello Keras, vedere il tutorial Utilizzo dell'abbinamento logit controfattuale con Keras .
Crea un'istanza di CounterfactualPackedInputs
Per creare il set di dati controfattuale, inizia determinando i termini e le caratteristiche che desideri valutare che, se rimossi o sostituiti, potrebbero alterare la previsione del tuo modello.
Una volta compresi i termini e le funzionalità su cui effettuare la valutazione, dovrai creare un'istanza di CounterfactualPackedInputs
, che includa l'input originale e i dati controfattuali. L'input originale dovrebbe essere il set di dati utilizzato per addestrare il modello Keras. I dati controfattuali hanno un valore original_x
, un valore counterfactual_x
e un counterfactual_sample_weight
. Il valore controfattuale dovrebbe essere quasi identico al valore originale con la differenza che uno o più attributi sensibili vengono rimossi o sostituiti. La qualità del set di dati controfattuale è importante poiché viene utilizzato per accoppiare la funzione di perdita tra il valore originale e il valore controfattuale con l'obiettivo di garantire che la previsione del modello non cambi quando l'attributo sensibile è diverso.
Per dettagli su come sviluppare questo set di dati controfattuale, vedere il notebook sulla creazione di un set di dati controfattuale personalizzato .
Misura il conteggio e la frequenza di rotazione
Un flip è definito come un classificatore che dà una decisione diversa quando cambia l'attributo sensibile a cui si fa riferimento nell'esempio. Cattura la situazione in cui un classificatore modifica la sua previsione in presenza, assenza o modifica di un attributo di identità. Una metrica più continua dovrebbe essere utilizzata quando si valuta il valore reale (punteggio) di un classificatore.
Conteggio ribaltamenti
Il conteggio dei ribaltamenti misura il numero di volte in cui il classificatore fornisce una decisione diversa se il termine di identità in un determinato esempio viene modificato.
- Conteggio complessivo dei capovolgimenti : totale dei capovolgimenti di una previsione da positivo a negativo e viceversa.
- Conteggio ribaltamenti previsione da positivo a negativo : numero di ribaltamenti in cui l'etichetta di previsione è cambiata da positiva a negativa.
- Conteggio ribaltamenti previsione da negativo a positivo : numero di ribaltamenti in cui l'etichetta di previsione è cambiata da negativa a positiva.
Tasso di rotazione
Il tasso di ribaltamento misura la probabilità che il classificatore dia una decisione diversa se il termine di identità in un dato esempio venisse modificato.
- Percentuale di flip complessiva : conteggio totale di flip sul numero totale di esempi
- Tasso di ribaltamento della previsione da positivo a negativo : conteggio di ribaltamento da positivo a negativo su esempi positivi nel set di dati controfattuali
- Tasso di ribaltamento della previsione da negativo a positivo : conteggio di ribaltamento da negativo a positivo su esempi negativi nel set di dati controfattuali
Dopo aver calcolato la percentuale di ribaltamento e il numero di ribaltamenti con gli indicatori di equità , è possibile determinare se il classificatore sta effettuando una previsione diversa in base a un attributo sensibile all'interno dei dati. È possibile utilizzare il conteggio di esempio e gli intervalli di confidenza per determinare se si dispone di dati sufficienti per applicare il CLP e trarre conclusioni dal tasso di ribaltamento. Una percentuale di ribaltamento e un numero di ribaltamenti elevati sono indicativi del verificarsi di questo comportamento e possono essere utilizzati per decidere se CLP è appropriato per il proprio caso d'uso. Questa decisione è specifica per il tuo modello e dipende da fattori quali il danno che potrebbe essere causato agli utenti finali e il prodotto in cui viene utilizzato il modello.
Applica l'abbinamento Logit controfattuale al tuo modello Keras
Per utilizzare CLP, è necessario il modello Keras originale che si desidera correggere, il set di dati di addestramento originale e il set di dati controfattuale. Determinare quale counterfactual loss
dovrebbe essere applicata per l'accoppiamento logit. Con questo, puoi costruire il modello controfattuale con la funzione di perdita controfattuale desiderata e la funzione di perdita del tuo modello originale.
Dopo aver applicato il CLP, è necessario calcolare la frequenza di ribaltamento e il numero di ribaltamenti, nonché eventuali modifiche in altri parametri, ad esempio la precisione complessiva, per misurare il miglioramento derivante dall'applicazione di questa tecnica.