FairnessDrift¶
- class model_monitoring.fairness_drift.FairnessDrift(fair_metrics_curr, config_threshold=None)¶
Classe utilizzata per monitorare e rilevare il Drift nelle metriche di fairness di un modello.
La classe supporta due tipi di input:
“curr_metrics”: le metriche correnti di fairness vengono fornite come dizionario contenente le performance per ogni metrica e gruppo.
“historic_metrics”: le metriche storiche di fairness vengono fornite come dizionario contenente le performance storiche per ogni metrica e gruppo.
La classe verifica che le metriche correnti e storiche siano compatibili e abbiano gli stessi gruppi di fairness.
Permette una configurazione flessibile dove è possibile definire le metriche da monitorare, le soglie di allarme e le logiche di analisi specifiche per ciascuna metrica, oppure una configurazione di default tramite un file interno params.yml.
Descrizione dei parametri di configurazione per metrica:
logic: Specifica come interpretare il cambiamento della metrica ai fini del drift (vedi ‘Logiche di Drift Configurabili’ sotto).
axial_point: Il punto di riferimento numerico usato solo quando logic è impostato su ‘axial’.
relative: Contiene le soglie per il drift delle metriche di fairness.
red/yellow: Soglie di variazione percentuale rispetto al valore storico.
absolute_tol: Valore di tolleranza assoluta utilizzato per prevenire che valori molto piccoli possano causare drift apparentemente grandi nelle metriche.
absolute: Contiene le soglie assolute per le performance delle metriche di fairness dei valori correnti.
red/yellow: Valori numerici o intervalli (liste di due float [min, max]) che definiscono le soglie assolute per il valore corrente della metrica.
Funzionalità Principali:
Monitoraggio Assoluto: Confronta le performance correnti delle metriche con le soglie absolute impostate. Genera avvisi di tipo “red alert” o “yellow alert” se queste soglie vengono superate.
Monitoraggio Relativo: Valuta l’evoluzione delle metriche confrontando le performance correnti con quelle storiche. Genera avvisi basati sulle soglie relative impostate.
Logiche di Drift Configurabili (logic): Permette di definire come interpretare una variazione di performance ai fini del drift, in base alla natura della metrica:
“increase”: Un peggioramento si verifica se la metrica aumenta (es. per metriche come il tasso di errore, dove un valore più basso è migliore).
“decrease”: Un peggioramento si verifica se la metrica diminuisce (es. per metriche come l’accuratezza, dove un valore più alto è migliore).
“axial”: Il drift viene valutato in base alla deviazione (in entrambe le direzioni) dal valore axial_point definito.
Reporting Dettagliato: Riassume tutte le analisi in un report pd.DataFrame completo che include le performance correnti per metrica e gruppo, gli allarmi assoluti e relativi scattati, e i valori di drift delle metriche calcolati (con differenze percentuali).
Methods
Inizializza la classe FairnessDrift, configurando le metriche di fairness correnti e le soglie di monitoraggio per le metriche di fairness.
Applica le soglie (predefinite o fornite) alle porformance delle metriche di fairness correnti.
Calcola il drift delle metriche di fairness correnti rispetto alle metriche storiche.
Restituisce un report comprensivo dei risultati del drift delle metriche di fairness con warning assoluti e relativi.