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

__init__

Inizializza la classe FairnessDrift, configurando le metriche di fairness correnti e le soglie di monitoraggio per le metriche di fairness.

get_absolute_reduced

Applica le soglie (predefinite o fornite) alle porformance delle metriche di fairness correnti.

get_relative_reduced

Calcola il drift delle metriche di fairness correnti rispetto alle metriche storiche.

get_report_reduced

Restituisce un report comprensivo dei risultati del drift delle metriche di fairness con warning assoluti e relativi.