Leggere i risultati delle analisi - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Leggere i risultati delle analisi

Questo argomento mostra come ottenere i risultati di analisi generati da SageMaker Clarify. Al termine del processo di elaborazione di SageMaker Clarify, è possibile scaricare i file di output per ispezionarli o visualizzare i risultati in Studio Classic. SageMaker

La directory di output del processo di elaborazione SageMaker Clarify contiene i seguenti file:

  • analysis.json: un file che contiene le metriche di bias e l'importanza della funzionalità in formato JSON.

  • report.ipynb: un notebook statico che contiene codice per aiutarti a visualizzare le metriche di bias e l'importanza della funzionalità.

  • explanations_shap/out.csv: una directory creata che contiene file generati automaticamente in base alle configurazioni di analisi specifiche dell'utente. Ad esempio, se si attiva il parametro save_local_shap_values, i valori SHAP locali per istanza verranno salvati nella directory explanations_shap. Come altro esempio, se analysis configuration non contiene un valore per il parametro di base SHAP, il job di spiegabilità di SageMaker Clarify calcola una linea di base raggruppando il set di dati di input. Quindi salva la linea di base generata nella directory.

Le sezioni seguenti forniscono informazioni dettagliate sullo schema e sul report generati dall'analisi dei bias, dall'analisi SHAP, dall'analisi della spiegabilità della visione artificiale e dall'analisi dei grafici delle dipendenze parziali (PDP). Se l'analisi della configurazione contiene parametri per calcolare più analisi, i risultati vengono aggregati in un'unica analisi e in un unico file di report.

Analisi dei bias

Amazon SageMaker Clarify utilizza la terminologia documentata in Amazon SageMaker chiarisce i termini relativi a parzialità ed equità per discutere di pregiudizi e correttezza.

Schema per il file di analisi

Il file di analisi è in formato JSON ed è organizzato in due sezioni: metriche di bias pre-addestramento e metriche di bias post-addestramento. I parametri per le metriche di bias pre-addestramento e post-addestramento sono i seguenti.

  • pre_training_bias_metrics: parametri per le metriche di bias pre-addestramento. Per ulteriori informazioni, consulta Misura dei bias pre-addestramento e Configurazione dell'analisi.

    • label: il nome dell'etichetta ground truth definita dal parametro label della configurazione dell'analisi.

    • label_value_or_threshold: una stringa contenente i valori delle etichette o l'intervallo definito dal parametro label_values_or_threshold della configurazione dell'analisi. Ad esempio, se il valore 1 viene fornito per un problema di classificazione binaria, la stringa sarà 1. Se vengono forniti più valori [1,2] per un problema multiclasse, la stringa sarà 1,2. Se viene fornita una soglia 40 per un problema di regressione, la stringa sarà interna come (40, 68] in cui 68 è il valore massimo dell'etichetta nel set di dati di input.

    • facets: la sezione contiene diverse coppie chiave-valore, in cui la chiave corrisponde al nome del facet definito dal parametro name_or_index della configurazione del facet e il valore è una matrice di oggetti facet. Ciascun oggetto facet presenta i seguenti membri:

      • value_or_threshold: una stringa contenente i valori del facet o l'intervallo definito dal parametro value_or_threshold della configurazione del facet.

      • metrics: la sezione contiene una matrice di elementi metrica di bias e ogni elemento metrica di bias ha i seguenti attributi:

        • name: il nome breve della metrica di bias. Ad esempio, CI.

        • description: il nome completo della metrica di bias. Ad esempio, Class Imbalance (CI).

        • value: il valore della metrica di bias o il valore null JSON se la metrica di bias non viene calcolata per un motivo particolare. I valori ±∞ sono rappresentati rispettivamente come stringhe e -∞.

        • error: un messaggio di errore opzionale che spiega perché la metrica di bias non è stata calcolata.

  • post_training_bias_metrics: la sezione contiene le metriche di bias post-addestramento e segue un layout e una struttura simili a quelli della sezione pre-addestramento. Per ulteriori informazioni, consulta Misurazione di dati post-addestramento e distorsione del modello.

Di seguito è riportato un esempio di configurazione dell'analisi che calcolerà le metriche di bias pre- e post-addestramento.

{ "version": "1.0", "pre_training_bias_metrics": { "label": "Target", "label_value_or_threshold": "1", "facets": { "Gender": [{ "value_or_threshold": "0", "metrics": [ { "name": "CDDL", "description": "Conditional Demographic Disparity in Labels (CDDL)", "value": -0.06 }, { "name": "CI", "description": "Class Imbalance (CI)", "value": 0.6 }, ... ] }] } }, "post_training_bias_metrics": { "label": "Target", "label_value_or_threshold": "1", "facets": { "Gender": [{ "value_or_threshold": "0", "metrics": [ { "name": "AD", "description": "Accuracy Difference (AD)", "value": -0.13 }, { "name": "CDDPL", "description": "Conditional Demographic Disparity in Predicted Labels (CDDPL)", "value": 0.04 }, ... ] }] } } }

Report di analisi dei bias

Il report di analisi dei bias include diverse tabelle e diagrammi che contengono spiegazioni e descrizioni dettagliate. Questi includono, a titolo esemplificativo, la distribuzione dei valori delle etichette, la distribuzione dei valori di facet, il diagramma delle prestazioni del modello di alto livello, una tabella delle metriche di bias e le relative descrizioni. Per ulteriori informazioni sulle metriche di distorsione e su come interpretarle, consulta Scopri come Amazon SageMaker Clarify aiuta a rilevare i pregiudizi.

Analisi SHAP

SageMaker I processi di elaborazione di Clarify utilizzano l'algoritmo Kernel SHAP per calcolare le attribuzioni delle funzionalità. Il processo di elaborazione SageMaker Clarify produce valori SHAP sia locali che globali. Questi aiutano a determinare il contributo di ciascuna funzionalità alle previsioni dei modelli. I valori SHAP locali rappresentano l'importanza della funzionalità per ogni singola istanza, mentre i valori SHAP globali aggregano i valori SHAP locali per tutte le istanze del set di dati. Per ulteriori informazioni sui valori SHAP e su come interpretarli, consulta Caratterizzazione delle attribuzioni che utilizzano i valori Shapley.

Schema per il file di analisi SHAP

I risultati dell'analisi SHAP globale vengono archiviati nella sezione delle spiegazioni del file di analisi, nella scheda del metodo kernel_shap. I diversi parametri del file di analisi SHAP sono i seguenti:

  • explanations: la sezione del file di analisi che contiene i risultati dell'analisi dell'importanza della funzionalità.

    • kernal_shap: la sezione del file di analisi che contiene il risultato dell'analisi SHAP globale.

      • global_shap_values: una sezione del file di analisi che contiene diverse coppie chiave-valore. Ogni chiave nella coppia chiave-valore rappresenta un nome di funzionalità dal set di dati di input. Ogni valore nella coppia chiave-valore corrisponde al valore SHAP globale della funzionalità. Il valore SHAP globale si ottiene aggregando i valori SHAP per istanza della funzionalità utilizzando la configurazione agg_method. Se la configurazione use_logit è attivata, il valore viene calcolato utilizzando i coefficienti di regressione logistica, che possono essere interpretati come rapporti log-odds.

      • expected_value: la previsione media del set di dati di base. Se la configurazione use_logit è attivata, il valore viene calcolato utilizzando i coefficienti di regressione logistica.

      • global_top_shap_text — Utilizzato per l'analisi della spiegabilità della PNL. Una sezione del file di analisi che include un set di coppie chiave-valore. SageMaker I processi di elaborazione di Clarify aggregano i valori SHAP di ciascun token e quindi selezionano i token principali in base ai rispettivi valori SHAP globali. La configurazione max_top_tokens definisce il numero di token da selezionare.

        Ognuno dei token principali selezionati ha una coppia chiave-valore. La chiave nella coppia chiave-valore corrisponde al nome della funzionalità testuale di un token principale. Ogni valore nella coppia chiave-valore è il valore SHAP globale del token principale. Per un esempio di coppia global_top_shap_text chiave-valore, vedete il seguente output.

L'esempio seguente mostra l'output dell'analisi SHAP di un set di dati tabulare.

{ "version": "1.0", "explanations": { "kernel_shap": { "Target": { "global_shap_values": { "Age": 0.022486410860333206, "Gender": 0.007381025261958729, "Income": 0.006843906804137847, "Occupation": 0.006843906804137847, ... }, "expected_value": 0.508233428001 } } } }

L'esempio seguente mostra l'output dell'analisi SHAP di un set di dati di testo. L'output corrispondente alla colonna Comments è un esempio di output generato dopo l'analisi di una funzionalità testuale.

{ "version": "1.0", "explanations": { "kernel_shap": { "Target": { "global_shap_values": { "Rating": 0.022486410860333206, "Comments": 0.058612104851485144, ... }, "expected_value": 0.46700941970297033, "global_top_shap_text": { "charming": 0.04127962903247833, "brilliant": 0.02450240786522321, "enjoyable": 0.024093569652715457, ... } } } } }

Schema per il file di base generato

Quando non viene fornita una configurazione di base SHAP, il processo di elaborazione SageMaker Clarify genera un set di dati di base. SageMaker Clarify utilizza un algoritmo di clustering basato sulla distanza per generare un set di dati di base dai cluster creati dal set di dati di input. Il set di dati di base risultante viene salvato in un file CSV, che si trova in explanations_shap/baseline.csv. Questo file di output contiene una riga di intestazione e diverse istanze basate sul parametro num_clusters specificato nella configurazione dell'analisi. Il set di dati di base è costituito solo da colonne di funzionalità. L'esempio seguente mostra una linea di base creata raggruppando il set di dati di input.

Age,Gender,Income,Occupation 35,0,2883,1 40,1,6178,2 42,0,4621,0

Schema per i valori SHAP locali derivanti dall'analisi della spiegabilità dei set di dati tabulari

Per i set di dati tabulari, se viene utilizzata una singola istanza di calcolo, il processo di elaborazione SageMaker Clarify salva i valori SHAP locali in un file CSV denominato. explanations_shap/out.csv Se si utilizzano più istanze di calcolo, i valori SHAP locali vengono salvati in diversi file CSV nella directory explanations_shap.

Un file di output contenente valori SHAP locali ha una riga contenente i valori SHAP locali per ogni colonna definita dalle intestazioni. Le intestazioni seguono la convenzione di denominazione Feature_Label, nella quale al nome della funzionalità viene aggiunto un trattino basso, seguito dal nome della variabile di destinazione.

Per problemi multiclasse, i nomi delle funzionalità nell'intestazione variano prima, poi le etichette. Ad esempio, due funzionalità F1, F2 e due classi L1 e L2, nelle intestazioni sono F1_L1, F2_L1, F1_L2 e F2_L2. Se la configurazione dell'analisi contiene un valore per il parametro joinsource_name_or_index, la colonna della chiave utilizzata nella join viene aggiunta alla fine del nome dell'intestazione. Ciò consente la mappatura dei valori SHAP locali alle istanze del set di dati di input. Segue un esempio di file di output contenente valori SHAP.

Age_Target,Gender_Target,Income_Target,Occupation_Target 0.003937908,0.001388849,0.00242389,0.00274234 -0.0052784,0.017144491,0.004480645,-0.017144491 ...

Schema per i valori SHAP locali derivanti dall'analisi della spiegabilità NLP

Per l'analisi della spiegabilità NLP, se viene utilizzata una singola istanza di calcolo, il processo di elaborazione SageMaker Clarify salva i valori SHAP locali in un file JSON Lines denominato. explanations_shap/out.jsonl Se si utilizzano più istanze di calcolo, i valori SHAP locali vengono salvati in diversi file JSON Lines nella directory explanations_shap.

Ogni file contenente valori SHAP locali ha diverse righe di dati e ogni riga è un oggetto JSON valido. L'oggetto JSON ha i seguenti attributi:

  • explanations: la sezione del file di analisi che contiene una matrice di spiegazioni Kernel SHAP per una singola istanza. Ciascun elemento della matrice dispone dei seguenti membri:

    • feature_name: il nome dell'intestazione delle funzionalità fornite dalla configurazione delle intestazioni.

    • data_type: il tipo di funzionalità dedotto dal processo di elaborazione di Clarify. SageMaker I valori validi per le funzionalità testuali includono numerical, categorical e free_text (per le funzionalità testuali).

    • attributions: una matrice di oggetti di attribuzione specifici per una funzionalità. Una funzionalità testuale può avere più oggetti di attribuzione, ciascuno per un'unità definita dalla configurazione granularity. L'oggetto attribuzione ha i seguenti membri:

      • attribution: una matrice di valori di probabilità specifica per classe.

      • description: (per le funzionalità testuali) la descrizione delle unità di testo.

        • partial_text — La parte del testo spiegata dal processo di elaborazione di Clarify. SageMaker

        • start_idx: un indice a base zero per identificare la posizione della matrice che indica l'inizio del frammento di testo parziale.

Di seguito è riportato un esempio di una singola riga di un file di valori SHAP locale, abbellita per migliorarne la leggibilità.

{ "explanations": [ { "feature_name": "Rating", "data_type": "categorical", "attributions": [ { "attribution": [0.00342270632248735] } ] }, { "feature_name": "Comments", "data_type": "free_text", "attributions": [ { "attribution": [0.005260534499999983], "description": { "partial_text": "It's", "start_idx": 0 } }, { "attribution": [0.00424190349999996], "description": { "partial_text": "a", "start_idx": 5 } }, { "attribution": [0.010247314500000014], "description": { "partial_text": "good", "start_idx": 6 } }, { "attribution": [0.006148907500000005], "description": { "partial_text": "product", "start_idx": 10 } } ] } ] }

Report di analisi SHAP

Il rapporto di analisi SHAP fornisce un grafico a barre con un massimo di 10 valori SHAP globali principali. Il seguente esempio di grafico mostra i valori SHAP per le 4 funzionalità principali.

Grafico a barre orizzontali dei valori SHAP globali calcolati per la variabile di destinazione delle quattro funzionalità principali.

Analisi della spiegabilità della visione artificiale (CV)

SageMaker Clarify Computer Vision Explainability utilizza un set di dati composto da immagini e tratta ogni immagine come una raccolta di super pixel. Dopo l'analisi, il processo di elaborazione di SageMaker Clarify genera un set di dati di immagini in cui ogni immagine mostra la mappa termica dei super pixel.

L'esempio seguente mostra un segno di limite di velocità di ingresso sulla sinistra e una mappa termica che mostra l'entità dei valori SHAP sulla destra. Questi valori SHAP sono stati calcolati da un modello Resnet-18 di riconoscimento delle immagini addestrato a riconoscere i segnali stradali tedeschi. Il set di dati German Traffic Sign Recognition Benchmark (GTSRB) è fornito nel paper Man vs. computer: benchmarking machine learning algorithms for traffic sign recognition. Nell'output di esempio, valori positivi elevati indicano che il super pixel ha una forte correlazione positiva con la previsione del modello. Valori negativi elevati indicano che il super pixel ha una forte correlazione negativa con la previsione del modello. Maggiore è il valore assoluto del valore SHAP mostrato nella mappa termica, più forte è la relazione tra il super pixel e la previsione del modello.

Immagine di input del segnale del limite di velocità e mappa termica risultante dei valori SHAP da un modello Resnet-18.

Per ulteriori informazioni, consulta i taccuini di esempio Explaining Image Classification with SageMaker Clarify e Explaining object detection models with Amazon Clarify. SageMaker

Analisi dei grafici di dipendenza parziale (PDP)

I grafici di dipendenza parziale mostrano la dipendenza della risposta della destinazione prevista da una serie di funzionalità di input di interesse. Queste sono marginalizzate rispetto ai valori di tutte le altre funzionalità di input e vengono chiamate funzionalità complementari. In modo intuitivo, è possibile interpretare la dipendenza parziale come la risposta della destinazione, che è attesa come una funzione di ciascuna funzionalità di input di interesse.

Schema per il file di analisi

I valori PDP vengono archiviati nella sezione explanations del file di analisi nella scheda del metodo pdp. I parametri per explanations sono come riportato di seguito:

  • explanations: la sezione dei file di analisi che contiene i risultati dell'analisi dell'importanza della funzionalità.

    • pdp: la sezione del file di analisi che contiene una matrice di spiegazioni PDP per una singola istanza. Ciascun elemento della matrice dispone dei seguenti membri:

      • feature_name: il nome dell'intestazione delle funzionalità fornite dalla configurazione headers.

      • data_type: il tipo di funzionalità dedotto dal processo di elaborazione di Clarify. SageMaker I valori validi per data_type includono valori numerici e categorici.

      • feature_values: contiene i valori presenti nella funzionalità. Se quello data_type dedotto da SageMaker Clarify è categorico, feature_values contiene tutti i valori univoci che potrebbe essere la funzionalità. Se quello data_type dedotto da SageMaker Clarify è numerico, feature_values contiene un elenco del valore centrale dei bucket generati. Il parametro grid_resolution determina il numero di bucket utilizzati per raggruppare i valori di colonna delle funzionalità.

      • data_distribution: una matrice di percentuali, in cui ogni valore è la percentuale di istanze contenute in un bucket. Il parametro grid_resolution determina il numero di bucket. I valori di colonna delle funzionalità sono raggruppati in questi bucket.

      • model_predictions: una matrice di previsioni del modello, in cui ogni elemento è una matrice di previsioni che corrisponde a una classe nell'output del modello.

        label_headers: le intestazioni delle etichette fornite dalla configurazione label_headers.

      • error: un messaggio di errore generato se i valori PDP non vengono calcolati per un motivo particolare. Questo messaggio di errore sostituisce il contenuto nei campi feature_values, data_distributions e model_predictions.

Di seguito è riportato un output di esempio da un file di analisi contenente un risultato dell'analisi PDP.

{ "version": "1.0", "explanations": { "pdp": [ { "feature_name": "Income", "data_type": "numerical", "feature_values": [1046.9, 2454.7, 3862.5, 5270.2, 6678.0, 8085.9, 9493.6, 10901.5, 12309.3, 13717.1], "data_distribution": [0.32, 0.27, 0.17, 0.1, 0.045, 0.05, 0.01, 0.015, 0.01, 0.01], "model_predictions": [[0.69, 0.82, 0.82, 0.77, 0.77, 0.46, 0.46, 0.45, 0.41, 0.41]], "label_headers": ["Target"] }, ... ] } }

Report di analisi PDP

È possibile generare un report di analisi contenente un grafico PDP per ogni funzionalità. Il grafico PDP traccia feature_values lungo l'asse x e model_predictions lungo l'asse y. Per i modelli multiclasse, model_predictions è una matrice e ogni elemento di questa matrice corrisponde a una delle classi di previsione del modello.

Di seguito è riportato un esempio di grafico PDP per la funzionalità Age. Nell'output di esempio, il PDP mostra il numero di valori delle funzionalità raggruppati in bucket. Il numero di bucket è determinato da grid_resolution. I bucket di valori delle funzionalità vengono tracciati sulla base delle previsioni del modello. In questo esempio, i valori più alti delle funzionalità hanno gli stessi valori di previsione del modello.

Grafico a linee che mostra come variano le previsioni del modello rispetto a feature_values per 10 punti univoci della griglia.

Valori asimmetrici di Shapley

SageMaker I processi di elaborazione di Clarify utilizzano l'algoritmo di valori asimmetrico di Shapley per calcolare le attribuzioni delle spiegazioni dei modelli di previsione delle serie temporali. Questo algoritmo determina il contributo delle funzionalità di input in ogni fase temporale verso le previsioni previste.

Schema per il file di analisi asimmetrico dei valori Shapley

I risultati asimmetrici del valore Shapley vengono archiviati in un bucket Amazon S3. Puoi trovare la posizione di questo bucket nelle spiegazioni della sezione del file di analisi. Questa sezione contiene i risultati dell'analisi dell'importanza delle feature. I seguenti parametri sono inclusi nel file di analisi dei valori Shapley asimmetrico.

  • asymmetric_shapley_value — La sezione del file di analisi che contiene i metadati sui risultati del lavoro di spiegazione, tra cui:

    • explanation_results_path — La posizione Amazon S3 con i risultati della spiegazione

    • direction — La configurazione fornita dall'utente per il valore di configurazione di direction

    • granularità: la configurazione fornita dall'utente per il valore di configurazione di granularity

Il seguente frammento mostra i parametri menzionati in precedenza in un file di analisi di esempio:

{ "version": "1.0", "explanations": { "asymmetric_shapley_value": { "explanation_results_path": EXPLANATION_RESULTS_S3_URI, "direction": "chronological", "granularity": "timewise", } } }

Le sezioni seguenti descrivono come la struttura dei risultati della spiegazione dipenda dal valore di granularity nella configurazione.

Granularità temporale

Quando la granularità è, timewise l'output è rappresentato nella seguente struttura. Il scores valore rappresenta l'attribuzione per ogni timestamp. Il offset valore rappresenta la previsione del modello sui dati di base e descrive il comportamento del modello quando non riceve dati.

Il seguente frammento mostra un esempio di output per un modello che effettua previsioni per due fasi temporali. Pertanto, tutte le attribuzioni sono un elenco di due elementi in cui la prima voce si riferisce alla prima fase temporale prevista.

{ "item_id": "item1", "offset": [1.0, 1.2], "explanations": [ {"timestamp": "2019-09-11 00:00:00", "scores": [0.11, 0.1]}, {"timestamp": "2019-09-12 00:00:00", "scores": [0.34, 0.2]}, {"timestamp": "2019-09-13 00:00:00", "scores": [0.45, 0.3]}, ] } { "item_id": "item2", "offset": [1.0, 1.2], "explanations": [ {"timestamp": "2019-09-11 00:00:00", "scores": [0.51, 0.35]}, {"timestamp": "2019-09-12 00:00:00", "scores": [0.14, 0.22]}, {"timestamp": "2019-09-13 00:00:00", "scores": [0.46, 0.31]}, ] }

Granularità a grana fine

L'esempio seguente mostra i risultati dell'attribuzione quando la granularità è. fine_grained Il offset valore ha lo stesso significato descritto nella sezione precedente. Le attribuzioni vengono calcolate per ogni feature di input in ogni timestamp per una serie temporale di destinazione e le relative serie temporali, se disponibili, e per ogni covariata statica, se disponibile.

{ "item_id": "item1", "offset": [1.0, 1.2], "explanations": [ {"feature_name": "tts_feature_name_1", "timestamp": "2019-09-11 00:00:00", "scores": [0.11, 0.11]}, {"feature_name": "tts_feature_name_1", "timestamp": "2019-09-12 00:00:00", "scores": [0.34, 0.43]}, {"feature_name": "tts_feature_name_2", "timestamp": "2019-09-11 00:00:00", "scores": [0.15, 0.51]}, {"feature_name": "tts_feature_name_2", "timestamp": "2019-09-12 00:00:00", "scores": [0.81, 0.18]}, {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-11 00:00:00", "scores": [0.01, 0.10]}, {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-12 00:00:00", "scores": [0.14, 0.41]}, {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-13 00:00:00", "scores": [0.95, 0.59]}, {"feature_name": "rts_feature_name_1", "timestamp": "2019-09-14 00:00:00", "scores": [0.95, 0.59]}, {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-11 00:00:00", "scores": [0.65, 0.56]}, {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-12 00:00:00", "scores": [0.43, 0.34]}, {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-13 00:00:00", "scores": [0.16, 0.61]}, {"feature_name": "rts_feature_name_2", "timestamp": "2019-09-14 00:00:00", "scores": [0.95, 0.59]}, {"feature_name": "static_covariate_1", "scores": [0.6, 0.1]}, {"feature_name": "static_covariate_2", "scores": [0.1, 0.3]}, ] }

In entrambi i casi fine-grained d'uso, timewise i risultati vengono archiviati in formato JSON Lines (.jsonl).