

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à.

# File di configurazione dell’analisi
<a name="clarify-processing-job-configure-analysis"></a>

Per analizzare i dati e i modelli per verificarne la spiegabilità e le distorsioni utilizzando Clarify, è necessario configurare un processo di elaborazione. SageMaker Parte della configurazione per questo processo di elaborazione include la configurazione di un file di analisi. Il file di analisi specifica i parametri per l'analisi dei bias e la spiegabilità. Per informazioni su come configurare un processo di elaborazione e un file di analisi, consulta [Configurazione di un processo di elaborazione SageMaker Clarify](clarify-processing-job-configure-parameters.md).

La presente guida descrive lo schema e i parametri per questo file di configurazione dell'analisi. Questa guida include anche esempi di file di configurazione dell’analisi per il calcolo delle metriche sui bias per un set di dati tabulare e per la generazione di spiegazioni relative a problemi di elaborazione del linguaggio naturale (NLP), visione artificiale (CV) e serie temporali (TS).

Puoi creare il file di configurazione dell'analisi o utilizzare [SageMaker Python SDK](https://sagemaker.readthedocs.io/) per generarne uno per te con l'API. [SageMaker ClarifyProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.clarify.SageMakerClarifyProcessor) La visualizzazione del contenuto del file può essere utile per comprendere la configurazione sottostante utilizzata dal job SageMaker Clarify.

**Topics**
+ [Schema per il file di configurazione dell'analisi](#clarify-processing-job-configure-schema)
+ [File di configurazione dell'analisi di esempio](#clarify-processing-job-configure-analysis-examples)

## Schema per il file di configurazione dell'analisi
<a name="clarify-processing-job-configure-schema"></a>

La sezione seguente descrive lo schema per il file di configurazione dell'analisi, inclusi i requisiti e le descrizioni dei parametri.

### Schema per il file di configurazione dell'analisi
<a name="clarify-processing-job-configure-schema-requirements"></a>

 Il processo di elaborazione SageMaker Clarify prevede che il file di configurazione dell'analisi sia strutturato con i seguenti requisiti:
+ Il nome di input dell'elaborazione deve essere `analysis_config.`.
+ Il file di configurazione dell'analisi è in formato JSON e codificato in. UTF-8
+ Il file di configurazione dell'analisi è un oggetto Amazon S3.

È possibile specificare parametri aggiuntivi nel file di configurazione dell'analisi. La sezione seguente fornisce varie opzioni per personalizzare il processo di elaborazione di SageMaker Clarify in base al caso d'uso e ai tipi di analisi desiderati.

### Parametri per i file di configurazione dell'analisi
<a name="clarify-processing-job-configure-analysis-parameters"></a>

È possibile specificare parametri nel file di configurazione dell'analisi.
+ **version**: (facoltativo) la stringa della versione dello schema del file di configurazione dell'analisi. Se non viene fornita una versione, SageMaker Clarify utilizza l'ultima versione supportata. Attualmente la sola versione supportata è `1.0`.
+ **dataset\_type**: il formato del set di dati. Il formato del set di dati di input può essere uno dei seguenti valori:
  + Tabulare
    + `text/csv` per CSV
    + `application/jsonlines`per il formato [SageMaker denso AI JSON Lines](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html#cm-jsonlines)
    + `application/json` per JSON
    + `application/x-parquet` per Apache Parquet
    + `application/x-image` per attivare la spiegabilità dei problemi di visione artificiale
  + Spiegazioni del modello di previsione delle serie temporali
    + `application/json` per JSON
+ **dataset\_uri**: (facoltativo) l'Uniform Resource Identifier (URI) del set di dati principale. Se fornite un prefisso URI S3, il processo di elaborazione SageMaker Clarify raccoglie in modo ricorsivo tutti i file S3 che si trovano sotto il prefisso. È possibile fornire un prefisso URI S3 o un URI S3 a un file manifesto di immagini per problemi di visione artificiale. Se fornito, `dataset_uri` ha la precedenza sull'input del processo di elaborazione del set di dati. **Per qualsiasi tipo di formato, ad eccezione dei casi d'uso di immagini e serie temporali, il processo di elaborazione SageMaker Clarify carica il set di dati di input in un frame di dati tabulare, come set di dati tabulare.** Questo formato consente all' SageMaker intelligenza artificiale di manipolare e analizzare facilmente il set di dati di input.
+ **headers**: (facoltativo)
  + **Tabular**: un array di stringhe che contiene i nomi delle colonne di un set di dati tabulare. Se non viene fornito un valore, il processo di elaborazione SageMaker Clarify `headers` legge le intestazioni dal set di dati. Se il set di dati non ha intestazioni, il processo di elaborazione di Clarify genera automaticamente nomi segnaposto basati sull’indice delle colonne a base zero. Ad esempio, i nomi segnaposto per la prima e la seconda colonna saranno **column\_0** e **column\_1**, e così via.
**Nota**  
Per convenzione, se `dataset_type` è `application/jsonlines` o `application/json`, `headers` dovrebbe contenere i seguenti nomi nell’ordine specificato:  
nomi delle funzionalità
nome dell’etichetta (se `label` è specificato)
nome dell’etichetta previsto (se `predicted_label` è specificato)
Un esempio per `headers` per un tipo di set di dati `application/jsonlines` se `label` è specificato è: `["feature1","feature2","feature3","target_label"]`.
  + **Time series:** un elenco di nomi di colonne nel set di dati. Se non viene fornito, Clarify genera intestazioni da utilizzare internamente. Per i casi di spiegabilità delle serie temporali, fornisci le intestazioni nel seguente ordine:

    1. id elemento

    1. timestamp

    1. serie temporali di destinazione

    1. tutte le colonne delle serie temporali correlate

    1. tutte le colonne covariate statiche
+ **label**: (facoltativo) una stringa o un indice intero a base zero. Se fornito, `label` viene utilizzato per individuare l'etichetta Ground Truth, nota anche come etichetta osservata o attributo di destinazione in un set di dati tabulare. L'etichetta Ground Truth viene utilizzata per calcolare i parametri di bias. Il valore di `label` viene specificato in base al valore del parametro `dataset_type` nel modo seguente.
  + Se `dataset_type` è **text/csv**, `label` può essere specificato in uno dei seguenti modi:
    + Un nome colonna valido
    + Un indice che si trova all'interno dell'intervallo delle colonne del set di dati
  + Se `dataset_type` è **application/parquet**, `label` deve essere un nome colonna valido.
  + Se `dataset_type` è **application/jsonlines**, `label` deve essere un'espressione [JMESPath](https://jmespath.org/) scritta per estrarre l'etichetta Ground Truth dal set di dati. Per convenzione, se `headers` è specificato, deve contenere il nome dell'etichetta.
  + Se `dataset_type` è **application/json**, `label` deve essere un'espressione [JMESPath](https://jmespath.org/) scritta per estrarre l'etichetta Ground Truth per ogni record nel set di dati. L'espressione JMESPath dovrebbe produrre un elenco di etichette in cui l'etichetta ith corrisponde al record ith.
+ **predicted\_label**: (facoltativo) una stringa o un indice intero a base zero. Se fornito, `predicted_label` viene utilizzato per individuare la colonna contenente l'etichetta prevista in un set di dati tabulare. L'etichetta prevista viene utilizzata per calcolare i **parametri di bias** post-addestramento. Il parametro `predicted_label` è facoltativo se il set di dati non include l'etichetta prevista. Se per il calcolo sono necessarie etichette previste, il processo di elaborazione di SageMaker Clarify otterrà le previsioni dal modello.

  Il valore di `predicted_label` viene specificato in base al valore di `dataset_type` come segue:
  + Se `dataset_type` è **text/csv**, `predicted_label` può essere specificato come segue:
    + Un nome colonna valido. Se `predicted_label_dataset_uri` è specificato, ma `predicted_label` non viene fornito, il nome dell'etichetta prevista di default è "predicted\_label". 
    + Un indice che si trova all'interno dell'intervallo delle colonne del set di dati. Se `predicted_label_dataset_uri` è specificato, l'indice viene utilizzato per individuare la colonna dell'etichetta prevista nel set di dati dell'etichetts prevista.
  + Se dataset\_type è **application/x-parquet**, `predicted_label` deve essere un nome colonna valido.
  + Se dataset\_type è **application/jsonlines**, `predicted_label` deve essere un'espressione [JMESPath](https://jmespath.org/) valida scritta per estrarre l'etichetta prevista dal set di dati. Per convenzione, se `headers` è specificato, deve contenere il nome dell'etichetta prevista. 
  + Se `dataset_type` è **application/json**, `predicted_label` deve essere un'espressione [JMESPath](https://jmespath.org/) scritta per estrarre l'etichetta prevista per ogni record nel set di dati. L'espressione JMESPath dovrebbe produrre un elenco di etichette previste in cui l'etichetta ith è per il record ith.
+ **features**: (facoltativo) obbligatorio per casi d’uso non relativi a serie temporali se `dataset_type` è `application/jsonlines` o `application/json`. Un'espressione della stringa JMESPath scritta per individuare le funzionalità nel set di dati di input. Per `application/jsonlines`, verrà applicata un'espressione JMESPath a ciascuna riga per estrarre le funzionalità di quel record. Per `application/json`, verrà applicata un'espressione JMESPath all'intero set di dati di input. L'espressione JMESPath deve estrarre un elenco di elenchi o un 2D array/matrix di funzionalità in cui la riga i contiene le caratteristiche correlate a tali elenchi nel record. Per un `dataset_type` di `text/csv` o `application/x-parquet`, tutte le colonne, tranne le colonne dell'etichetta Ground Truth e dell'etichetta prevista, vengono assegnate automaticamente come funzionalità.
+ **predicted\_label\_dataset\_uri**: (facoltativo) applicabile solo quando dataset\_type è `text/csv`. L'URI S3 per un set di dati contenente le etichette previste utilizzate per calcolare i **parametri di bias** post-addestramento. Il processo di elaborazione di SageMaker Clarify caricherà le previsioni dall'URI fornito invece di ottenere le previsioni dal modello. In questo caso, `predicted_label` è necessario per individuare la colonna dell'etichetta prevista nel set di dati dell'etichetta prevista. Se il set di dati dell'etichetta prevista o il set di dati principale è suddiviso in più file, `joinsource_name_or_index` deve specificare una colonna identificativa per unire i due set di dati. 
+ **predicted\_label\_headers**: (facoltativo) applicabile solo quando `predicted_label_dataset_uri` è specificato. Una matrice di stringhe contenente i nomi colonne del set di dati dell'etichetta prevista. Oltre all'intestazione dell'etichetta prevista, `predicted_label_headers` può contenere anche l'intestazione della colonna identificativa per unire il set di dati dell'etichetta prevista e il set di dati principale. Per ulteriori informazioni, consulta la descrizione del parametro `joinsource_name_or_index`.
+ **joinsource\_name\_or\_index**: (facoltativo) il nome o l’indice a base zero della colonna nei set di dati tabulari da utilizzare come colonna identificativa durante l’esecuzione di un join interno. Questa colonna viene utilizzata solo come identificatore. Non viene utilizzata per altri calcoli come l'analisi di bias o l'analisi dell'attribuzione delle funzionalità. È necessario un valore di `joinsource_name_or_index` nei seguenti casi:
  + Esistono più set di dati di input e ognuno è suddiviso in più file.
  + L'elaborazione distribuita viene attivata impostando il processo di elaborazione SageMaker Clarify su un valore [InstanceCount](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ProcessingClusterConfig.html#sagemaker-Type-ProcessingClusterConfig-InstanceCount)maggiore di. `1`
+ **excluded\_columns**: (facoltativo) una matrice di nomi o indici di colonne a base zero da escludere dall'invio al modello come input per le previsioni. L'etichetta Ground Truth e l'etichetta prevista vengono già escluse automaticamente. Questa funzionalità non è supportata per le serie temporali.
+ **probability\_threshold**: (facoltativo) un numero a virgola mobile al di sopra del quale viene selezionata un'etichetta o un oggetto. Il valore predefinito è `0.5`. Il processo di elaborazione SageMaker Clarify si utilizza `probability_threshold` nei seguenti casi:
  + Nell'analisi dei bias post-addestramento, `probability_threshold` converte la previsione di un modello numerico (valore di probabilità o punteggio) in un'etichetta binaria, se il modello è un classificatore binario. Un punteggio superiore alla soglia viene convertito in `1`. Un punteggio uguale o inferiore alla soglia viene convertito in `0`.
  + Nei problemi di spiegabilità della visione artificiale, se model\_type è **OBJECT\_DETECTION**, `, probability_threshold` filtra gli oggetti con punteggi di attendibilità inferiori al valore di soglia.
+ **label\_values\_or\_threshold**: (facoltativo) obbligatorio per l’analisi dei bias. Una matrice di valori delle etichette o un numero di soglia, che indica un risultato positivo per le etichette Ground Truth e prevista per i parametri di bias. Per ulteriori informazioni, consulta i valori positivi delle etichette in [Amazon SageMaker chiarisce i termini relativi a parzialità ed equità](clarify-detect-data-bias.md#clarify-bias-and-fairness-terms). Se l'etichetta è numerica, la soglia viene applicata come limite inferiore per selezionare il risultato positivo. Per impostare `label_values_or_threshold` per diversi tipi di problemi, fai riferimento ai seguenti esempi:
  + Per un problema di classificazione binaria, l'etichetta ha due valori possibili, `0` e `1`. Se il valore dell'etichetta `1` è favorevole a un gruppo demografico osservato in un campione, allora `label_values_or_threshold` deve essere impostato su `[1]`.
  + Per un problema di classificazione multiclasse, l'etichetta ha tre valori possibili: **bird**, **cat** e **dog**. Se gli ultimi due definiscono un gruppo demografico favorito dai bias, allora `label_values_or_threshold` deve essere impostato su `["cat","dog"]`.
  + Per un problema di regressione, il valore dell'etichetta è continuo e va da `0` a `1`. Se un valore maggiore di `0.5` deve indicare che un campione ha un risultato positivo, allora `label_values_or_threshold` deve essere impostato su `0.5`.
+ **facet**: (facoltativo) obbligatorio per l’analisi dei bias. Una matrice di oggetti facet, composti da attributi sensibili in base ai quali viene misurato il bias. È possibile utilizzare i facet per comprendere le caratteristiche di bias del set di dati e del modello anche se il modello viene addestrato senza utilizzare attributi sensibili. Per ulteriori informazioni, consulta **Facet** in [Amazon SageMaker chiarisce i termini relativi a parzialità ed equità](clarify-detect-data-bias.md#clarify-bias-and-fairness-terms). Questo oggetto facet include i seguenti campi:
  + **name\_or\_index**: (facoltativo) il nome o l’indice a base zero della colonna degli attributi sensibili in un set di dati tabulare. Se `facet_dataset_uri` è specificato, l'indice si riferisce al set di dati facet anziché al set di dati principale.
  + **value\_or\_threshold**: (facoltativo) obbligatorio se `facet` è numerico e `label_values_or_threshold` viene applicato come limite inferiore per selezionare il gruppo sensibile. Una matrice di valori facet o un numero di soglia che indica il gruppo demografico sensibile favorito dal bias. Se il tipo di dati facet è categorico e `value_or_threshold` non viene fornito, i parametri di bias vengono calcolati come un gruppo per ogni valore univoco (anziché per tutti i valori). Per impostare `value_or_threshold` per tipi di dati `facet` diversi, fai riferimento ai seguenti esempi:
    + Per un tipo di dati facet binario, la funzionalità ha due valori possibili: `0` e`1`. Se desideri calcolare i parametri di bias per ogni valore, puoi omettere `value_or_threshold` o impostarlo su una matrice vuota.
    + Per un tipo di dati facet categorico, la funzionalità ha tre valori possibili: **bird**, **cat** e **dog**. Se i primi due definiscono un gruppo demografico favorito dai bias, allora `value_or_threshold` deve essere impostato su `["bird", "cat"]`. In questo esempio, i campioni del set di dati sono suddivisi in due gruppi demografici. Il facet del gruppo avvantaggiato ha valore **bird** oppure **cat**, mentre il facet del gruppo svantaggiato ha valore **dog**.
    + Per un tipo di dati facet numerico, il valore della funzionalità è continuo e va da `0` a `1`. Ad esempio, se un valore maggiore di `0.5` deve indicare un campione come favorito, allora `value_or_threshold` deve essere impostato su. `0.5` In questo esempio, i campioni del set di dati sono suddivisi in due gruppi demografici. Il facet del gruppo avvantaggiato ha un valore maggiore di `0.5`, mentre il facet del gruppo svantaggiato ha un valore inferiore o uguale a `0.5`.
+ **group\_variable**: (facoltativo) il nome o l’indice a base zero della colonna che indica il sottogruppo da utilizzare per la metrica sui bias [Disparità demografica condizionale (CDD)](clarify-data-bias-metric-cddl.md) o [Disparità demografica condizionale nelle etichette previste (CDDPL)](clarify-post-training-bias-metric-cddpl.md).
+ **facet\_dataset\_uri**: (facoltativo) applicabile solo quando dataset\_type è `text/csv`. L'URI S3 per un set di dati contenente attributi sensibili per l'analisi dei bias. È possibile utilizzare i facet per comprendere le caratteristiche di bias del set di dati e del modello anche se il modello viene addestrato senza utilizzare attributi sensibili.
**Nota**  
Se il set di dati facet o il set di dati principale è suddiviso in più file, `joinsource_name_or_index` deve specificare una colonna identificativa per unire i due set di dati. È necessario utilizzare il parametro `facet` per identificare ogni facet nel set di dati facet.
+ **facet\_headers**: (facoltativo) applicabile solo quando è specificato `facet_dataset_uri`. Un array di stringhe che contiene i nomi delle colonne per il set di dati facet e, facoltativamente, l’intestazione della colonna identificativa per eseguire il join del set di dati facet e del set di dati principale. Consulta `joinsource_name_or_index`.
+ **time\_series\_data\_config**: (facoltativo) specifica la configurazione da utilizzare per l’elaborazione dei dati di una serie temporale. 
  + **item\_id**: una stringa o un indice intero a base zero. Questo campo viene utilizzato per individuare l’ID elemento nel set di dati di input condiviso.
  + **timestamp**: una stringa o un indice intero a base zero. Questo campo viene utilizzato per individuare un timestamp nel set di dati di input condiviso.
  + **dataset\_format**: i valori possibili sono `columns`, `item_records` o `timestamp_records`. Questo campo viene utilizzato per descrivere il formato di un set di dati JSON, che è l’unico formato supportato per la spiegabilità delle serie temporali.
  + **target\_time\_series**: una stringa JMESPath o un indice intero a base zero. Questo campo viene utilizzato per individuare la serie temporale di destinazione nel set di dati di input condiviso. Se questo parametro è una stringa, tutti gli altri parametri tranne `dataset_format` devono essere stringhe o elenchi di stringhe. Se questo parametro è un numero intero, tutti gli altri parametri tranne `dataset_format` devono essere numeri interi o elenchi di numeri interi.
  + **related\_time\_series**: (facoltativo) un array di espressioni JMESPath. Questo campo viene utilizzato per individuare tutte le serie temporali correlate nel set di dati di input condiviso, se presenti.
  + **static\_covariates**: (facoltativo) un array di espressioni JMESPath. Questo campo viene utilizzato per individuare tutti i campi delle covariate statiche nel set di dati di input condiviso, se presenti.

  Per alcuni esempi, consulta [Esempi di configurazione dei set di dati di serie temporali](clarify-processing-job-data-format-time-series.md#clarify-processing-job-data-format-time-series-ex).
+ **methods**: un oggetto contenente uno o più metodi di analisi e i relativi parametri. Se un metodo viene omesso, non viene né utilizzato per l'analisi né riportato.
  + **pre\_training\_bias**: includi questo metodo se desideri calcolare i parametri di bias prima dell'addestramento. La descrizione dettagliata dei metriche è disponibile in [Pre-training Metriche di distorsione](clarify-measure-data-bias.md). L'oggetto ha i seguenti parametri:
    + **methods**: una matrice che contiene tutti i parametri di bias pre-addestramento che si desidera calcolare, inclusi nell'elenco seguente. Imposta `methods` su **all** per calcolare tutti i parametri di bias pre-addestramento. Ad esempio, la matrice `["CI", "DPL"]` calcolerà **Squilibrio di classe** e **Differenza nelle proporzioni delle etichette**.
      + `CI` per [Squilibrio di classe (CI)](clarify-bias-metric-class-imbalance.md)
      + `DPL` per [Differenza nelle proporzioni delle etichette (DPL)](clarify-data-bias-metric-true-label-imbalance.md)
      + `KL` per [Kullback-Leibler Divergenza (KL)](clarify-data-bias-metric-kl-divergence.md)
      + `JS` per [Jensen-Shannon Divergenza (JS)](clarify-data-bias-metric-jensen-shannon-divergence.md)
      + `LP` per [Lp-norma (LP)](clarify-data-bias-metric-lp-norm.md)
      + `TVD` per [Distanza di variazione totale (TVD)](clarify-data-bias-metric-total-variation-distance.md)
      + `KS` per [Kolmogorov-Smirnov (KS)](clarify-data-bias-metric-kolmogorov-smirnov.md)
      + `CDDL` per [Disparità demografica condizionale (CDD)](clarify-data-bias-metric-cddl.md)
  + **post\_training\_bias**: includi questo metodo se desideri calcolare i parametri di bias pre-addestramento. La descrizione dettagliata dei metriche è disponibile in [Post-training Metriche di distorsione dei dati e dei modelli](clarify-measure-post-training-bias.md). L'oggetto `post_training_bias` ha i parametri riportati di seguito.
    + **methods**: una matrice che contiene tutti i parametri di bias post-addestramento che si desidera calcolare, inclusi nell'elenco seguente. Imposta `methods` su **all** per calcolare tutti i parametri di bias post-addestramento. Ad esempio, la matrice `["DPPL", "DI"]` calcola **Differenza nelle proporzioni positive delle etichette previste** e **Impatto disparato**. I metodi disponibili sono i seguenti.
      + `DPPL` per [Differenza nelle proporzioni positive delle etichette previste (DPPL)](clarify-post-training-bias-metric-dppl.md)
      + `DI` per [Impatto diversificato (DI)](clarify-post-training-bias-metric-di.md)
      + `DCA` per [Differenza nell'accettazione condizionale (DCAcc)](clarify-post-training-bias-metric-dcacc.md)
      + `DCR` per [Differenza nel rifiuto condizionale (DCR)](clarify-post-training-bias-metric-dcr.md)
      + `SD` per [Differenza di specificità (SD)](clarify-post-training-bias-metric-sd.md)
      + `RD` per [Differenza di richiamo (RD)](clarify-post-training-bias-metric-rd.md)
      + `DAR` per [Differenza nelle percentuali di accettazione (DAR)](clarify-post-training-bias-metric-dar.md)
      + `DRR` per [Differenza nelle percentuali di rifiuto (DRR)](clarify-post-training-bias-metric-drr.md)
      + `AD` per [Differenza di precisione (AD)](clarify-post-training-bias-metric-ad.md)
      + `TE` per [Parità di trattamento (TE)](clarify-post-training-bias-metric-te.md)
      + `CDDPL` per [Disparità demografica condizionale nelle etichette previste (CDDPL)](clarify-post-training-bias-metric-cddpl.md)
      + `FT` per [Fliptest controfattuale (FT)](clarify-post-training-bias-metric-ft.md)
      + `GE` per [Entropia generalizzata (GE)](clarify-post-training-bias-metric-ge.md)
  + **shap**: includi questo metodo se desideri calcolare i valori SHAP. Il processo di elaborazione SageMaker Clarify supporta l'algoritmo Kernel SHAP. L'oggetto `shap` ha i parametri riportati di seguito.
    + **baseline**: (facoltativo) il set di dati della baseline SHAP, noto anche come set di dati in background. I requisiti aggiuntivi per il set di dati della baseline in un set di dati tabulare o in un problema di visione artificiale sono i seguenti. Per ulteriori informazioni sulle baseline SHAP, consulta [Linee di base SHAP per la spiegabilità](clarify-feature-attribute-shap-baselines.md).
      + Per un set di dati **tabulare**, `baseline` può consistere in dati della baseline locali o l'URI S3 di un file della baseline. Se non `baseline` viene fornito, il processo di elaborazione SageMaker Clarify calcola una linea di base raggruppando il set di dati di input. Di seguito sono riportati i requisiti per la baseline:
        + Il formato deve essere uguale a quello del set di dati specificato da `dataset_type`.
        + La baseline può contenere solo funzionalità che il modello può accettare come input.
        + Il set di dati della baseline può avere una o più istanze. Il numero di istanze della baseline influisce direttamente sia sulla dimensione del set di dati sintetico che sulla durata del processo.
        + Se `text_config` è specificato, il valore della baseline di una colonna di testo è una stringa utilizzata per sostituire l'unità di testo specificata da `granularity`. Ad esempio, un segnaposto comune è "[MASK]", che viene utilizzato per rappresentare una parola o una parte di testo mancante o sconosciuta. 

        Gli esempi seguenti mostrano come impostare dati della baseline locali per diversi parametri `dataset_type`:
        + Se `dataset_type` è `text/csv` o `application/x-parquet`, il modello accetta quattro funzionalità numeriche e la baseline ha due istanze. In questo esempio, se un record ha tutti valori di funzionalità zero e l'altro record ha tutti i valori di funzionalità uno, la baseline deve essere impostata su `[[0,0,0,0],[1,1,1,1]]`, senza alcuna intestazione.
        + Se `dataset_type` è `application/jsonlines` e `features` è la chiave per un elenco di quattro valori di funzionalità numeriche. Inoltre, in questo esempio, se la baseline ha un record di tutti i valori zero, allora `baseline` deve essere `[{"features":[0,0,0,0]}]`.
        + Se `dataset_type` è `application/json`, il set di dati `baseline` deve avere la stessa struttura e lo stesso formato del set di dati di input.
      + Per problemi di **visione artificiale**, `baseline` può essere l'URI S3 di un'immagine utilizzato per mascherare funzionalità (segmenti) dall'immagine di input. Il processo di elaborazione SageMaker Clarify carica l'immagine della maschera e la ridimensiona alla stessa risoluzione dell'immagine di input. Se non viene fornita la linea di base, il processo di elaborazione SageMaker Clarify genera un'immagine maschera di [rumore bianco](https://en.wikipedia.org/wiki/White_noise) con la stessa risoluzione dell'immagine di input.
    + **features\_to\_explain**: (facoltativo) una matrice di stringhe o indici a base zero di colonne di funzionalità per cui calcolare i valori SHAP. Se `features_to_explain` non viene fornito, i valori SHAP vengono calcolati per tutte le colonne delle funzionalità. Queste colonne di funzionalità non possono includere la colonna dell'etichetta o la colonna dell'etichetta prevista. Il parametro `features_to_explain` è supportato solo per set di dati tabulari con colonne numeriche e categoriche.
    + **num\_clusters**: (facoltativo) il numero di cluster in cui è suddiviso il set di dati per calcolare il set di dati di base. Ogni cluster viene utilizzato per calcolare un'istanza della baseline. Se non `baseline` è specificato, il processo di elaborazione SageMaker Clarify tenta di calcolare il set di dati di base dividendo il set di dati tabulare in un numero ottimale di cluster tra e. `1` `12` Il numero di istanze della baseline influisce direttamente sull'esecuzione dell'analisi SHAP.
    + **num\_samples**: (facoltativo) il numero di campioni da utilizzare nell'algoritmo SHAP del kernel. Se non `num_samples` viene fornito, il processo di elaborazione SageMaker Clarify sceglie il numero automaticamente. Il numero di campioni influisce direttamente sia sulla dimensione del set di dati sintetico che sulla durata del processo.
    + **seed**: (facoltativo) un numero intero utilizzato per inizializzare il generatore di numeri pseudo casuali nell'esplicatore SHAP per generare valori SHAP coerenti per lo stesso lavoro. Se seed non è specificato, ogni volta che viene eseguito lo stesso processo, il modello può generare valori SHAP leggermente diversi. 
    + **use\_logit**: (facoltativo) un valore booleano che indica che si desidera che la funzione logit venga applicata alle previsioni del modello. L'impostazione predefinita è `false`. Se `use_logit` è `true`, i valori SHAP vengono calcolati utilizzando i coefficienti di regressione logistica, che possono essere interpretati come rapporti log-odd.
    + **save\_local\_shap\_values**: (facoltativo) un valore booleano che indica che desideri includere i valori SHAP locali di ogni record del set di dati nel risultato dell'analisi. L’impostazione predefinita è `false`.

      Se il set di dati principale è suddiviso in più file o è attivata l'elaborazione distribuita, specifica anche una colonna identificativa utilizzando il parametro `joinsource_name_or_index`. La colonna identificativa e i valori SHAP locali vengono salvati nel risultato dell'analisi. In questo modo, è possibile mappare ogni record ai relativi valori SHAP locali.
    + **agg\_method**: (facoltativo) il metodo utilizzato per aggregare i valori SHAP locali (i valori SHAP di ogni istanza) di tutte le istanze ai valori SHAP globali (i valori SHAP dell'intero set di dati). L'impostazione predefinita è `mean_abs`. I seguenti metodi possono essere utilizzati per aggregare i valori SHAP.
      + **mean\_abs**: la media dei valori SHAP locali assoluti di tutte le istanze.
      + **mean\_sq**: la media dei valori SHAP locali quadratici di tutte le istanze.
      + **mediana**: la mediana dei valori SHAP locali di tutte le istanze.
    + **text\_config**: necessario per la spiegabilità dell’elaborazione del linguaggio naturale. Includi questa configurazione se desideri trattare le colonne di testo come testo e se le spiegazioni dovrebbero essere fornite per le singole unità di testo. Per un esempio di configurazione dell’analisi per la spiegabilità dell’elaborazione del linguaggio naturale, consulta [Configurazione di analisi per la spiegabilità dell'elaborazione del linguaggio naturale](#clarify-analysis-configure-nlp-example).
      + **granularità**: l'unità di granularità per l'analisi delle colonne di testo. I valori validi sono `token`, `sentence` o `paragraph`. **Ogni unità di testo è considerata una funzionalità** e i valori SHAP locali vengono calcolati per ogni unità.
      + **lingua**: la lingua delle colonne di testo. I valori validi sono **chinese**, **danish**, **dutch**, **english**, **french**, **german**, **greek**, **italian**, **japanese**, **lithuanian**, **multi-language**, **norwegian bokmål**, **polish**, **portuguese**, **romanian**, **russian**, **spanish**, **afrikaans**, **albanian**, **arabic**, **armenian**, **basque**, **bengali**, **bulgarian**, **catalan**, **croatian**, **czech**, **estonian**, **finnish**, **gujarati**, **hebrew**, **hindi**, **hungarian**, **icelandic**, **indonesian**, **irish**, **kannada**, **kyrgyz**, **latvian**, **ligurian**, **luxembourgish**, **macedonian**, **malayalam**, **marathi**, **nepali**, **persian**, **sanskrit**, **serbian**, **setswana**, **sinhala**, **slovak**, **slovenian**, **swedish**, **tagalog**, **tamil**, **tatar**, **telugu**, **thai**, **turkish**, **ukrainian**, **urdu**, **vietnamese**, **yoruba**. Inserisci `multi-language` per una combinare più lingue.
      + **max\_top\_tokens**: (facoltativo) il numero massimo di token principali, in base ai valori SHAP globali. L'impostazione predefinita è `50`. È possibile che un token appaia più volte nel set di dati. Il processo di elaborazione SageMaker Clarify aggrega i valori SHAP di ciascun token, quindi seleziona i token principali in base ai rispettivi valori SHAP globali. I valori SHAP globali dei token principali selezionati sono inclusi nella sezione `global_top_shap_text` del file analysis.json.
      + Il valore SHAP locale di aggregazione.
    + **image\_config**: necessario per la spiegabilità della visione artificiale. Includi questa configurazione se disponi di un set di dati di input composto da immagini e desideri analizzarle per verificarne la spiegabilità in un problema di visione artificiale.
      + **model\_type**: il tipo di modello. I valori validi includono:
        + `IMAGE_CLASSIFICATION` di un modello di classificazione delle immagini
        + `OBJECT_DETECTION` di un modello per il rilevamento di oggetti
      + **max\_objects**: applicabile solo quando model\_type è **OBJECT\_DETECTION**. Il numero massimo di oggetti, ordinato in base al punteggio di attendibilità, rilevato dal modello di visione artificiale. Tutti gli oggetti con un punteggio di attendibilità inferiore al massimo max\_objects vengono filtrati. L'impostazione predefinita è `3`.
      + **context**: applicabile solo quando model\_type è **OBJECT\_DETECTION**. Indica se l'area intorno al riquadro di delimitazione dell'oggetto rilevato è mascherata o meno dall'immagine di base. I valori validi sono: `0` per mascherare tutto o `1` per non mascherare nulla. L'impostazione predefinita è 2.
      + **iou\_threshold**: applicabile solo quando `model_type` è **OBJECT\_DETECTION**. Il parametro minimo di intersezione over union (IOU) per valutare le previsioni rispetto al rilevamento originale. Un parametro IOU elevato corrisponde a una grande sovrapposizione tra la casella di rilevamento della verità prevista e della Ground Truth. L'impostazione predefinita è `0.5`.
      + **num\_segments**: (facoltativo) un numero intero che determina il numero approssimativo di segmenti da etichettare nell'immagine di input. Ogni segmento dell'immagine è considerato una funzionalità e per ogni segmento vengono calcolati i valori SHAP locali. L'impostazione predefinita è `20`.
      + **segment\_compactness**: (facoltativo) un numero intero che determina la forma e la dimensione dei segmenti di immagine generati dal metodo [scikit-image slic](https://scikit-image.org/docs/dev/api/skimage.segmentation.html#skimage.segmentation.slic). L'impostazione predefinita è `5`.
  + **pdp**: includi questo metodo per calcolare i grafici di dipendenza parziale (PDP). Per un esempio di configurazione dell’analisi per generare PDP, consulta [Calcola grafici di dipendenza parziale (PDP)](#clarify-analysis-configure-csv-example-pdp).
    + **funzionalità**: obbligatorio se il metodo `shap` non è richiesto. Una matrice di nomi o indici di funzionalità per calcolare e tracciare grafici PDP.
    + **top\_k\_features**: (facoltativo) specifica il numero di funzionalità principali utilizzate per generare grafici PDP. Se non `features` viene fornito, ma il `shap` metodo è richiesto, il processo di elaborazione di SageMaker Clarify sceglie le funzionalità principali in base alle relative attribuzioni SHAP. L'impostazione predefinita è `10`.
    + **grid\_resolution**: il numero di bucket in cui dividere l'intervallo di valori numerici. Questo specifica la granularità della griglia per i grafici PDP.
  + **asymmetric\_shapley\_value**: includi questo metodo per calcolare le metriche di spiegabilità per i modelli di previsione delle serie temporali. Il processo di elaborazione SageMaker Clarify supporta l'algoritmo asimmetrico dei valori Shapley. I valori asimmetrici di Shapley sono una variante del valore di Shapley senza l’assioma di simmetria. Per ulteriori informazioni, consulta [Valori asimmetrici di Shapley: integrazione delle informazioni causali nella spiegabilità indipendente dal modello](https://arxiv.org/abs/1910.06358). Utilizza questi valori per determinare in che modo le funzionalità contribuiscono al risultato della previsione. I valori asimmetrici di Shapley tengono conto delle dipendenze temporali dei dati di serie temporali che i modelli di previsione utilizzano come input.

    L’algoritmo include i seguenti parametri:
    + **direction**: i tipi disponibili sono `chronological`, `anti_chronological` e `bidirectional`. La struttura temporale può essere esplorata in ordine cronologico, anticronologico o entrambi. Le spiegazioni cronologiche vengono create aggiungendo in modo iterativo informazioni sin dalla prima fase. Anti-chronologicalle spiegazioni aggiungono informazioni a partire dall'ultimo passaggio e procedendo a ritroso. Quest’ultimo ordine può essere più adatto per i bias di novità, ad esempio per la previsione dei prezzi delle azioni.
    + **granularity**: la granularità della spiegazione da utilizzare. Di seguito vengono riportate le opzioni di granularità disponibili:
      + **timewise**: le spiegazioni `timewise` non sono costose e forniscono informazioni mirate su fasi temporali specifiche, ad esempio per capire in che misura le informazioni del n° giorno nel passato hanno contribuito alla previsione del giorno m° nel futuro. Le attribuzioni risultanti non spiegano singolarmente le covariate statiche e non fanno distinzione tra serie temporali di destinazione e correlate.
      + **fine\_grained**: le spiegazioni `fine_grained` sono più impegnative a livello computazionale, ma forniscono una suddivisione completa di tutte le attribuzioni delle variabili di input. Il metodo calcola spiegazioni approssimative per ridurre il runtime. Per ulteriori informazioni, consulta il parametro seguente, `num_samples`.
**Nota**  
Le spiegazioni `fine_grained` supportano solo l’ordine `chronological`.
    + **num\_samples**: (facoltativo) questo argomento è obbligatorio per le spiegazioni `fine_grained`. Più elevato è il numero, più precisa è l’approssimazione. Questo numero deve adattarsi alla dimensionalità delle funzionalità di input. Una regola pratica consiste nell’impostare questa variabile su *(1 \+ max (numero di serie temporali correlate, numero di covariate statiche))^2* se il risultato non è troppo grande.
    + **baseline**: (facoltativo) la configurazione baseline per sostituire i valori fuori dalla coalizione per i set di dati corrispondenti (nota anche come dati in background). Il frammento di codice seguente mostra un esempio di configurazione baseline.

      ```
      {
          "related_time_series": "zero",
          "static_covariates": {
              {{<item_id_1>}}: [0, 2],
              {{<item_id_2>}}: [-1, 1]
          },
          "target_time_series": "zero"
      }
      ```
      + Per i dati temporali come le serie temporali di destinazione o le serie temporali correlate, i tipi di valori baseline possono essere:
        + `zero`: tutti i valori non appartenenti alla coalizione vengono sostituiti con 0,0.
        + `mean`: tutti i valori non appartenenti alla coalizione vengono sostituiti dalla media di una serie temporale.
      + Per le covariate statiche, una voce baseline deve essere fornita solo quando la richiesta del modello accetta valori di covariate statiche, nel qual caso questo campo è obbligatorio. La baseline deve essere fornita per ogni elemento sotto forma di elenco. Ad esempio, se hai un set di dati con due covariate statiche, la configurazione baseline potrebbe essere la seguente:

        ```
        "static_covariates": {
            {{<item_id_1>}}: [1, 1],
            {{<item_id_2>}}: [0, 1]
        }
        ```

        Nell'esempio precedente, {{<item\_id\_1>}} e {{<item\_id\_2>}} sono gli id degli elementi del set di dati.
  + **report**: (facoltativo) utilizza questo oggetto per personalizzare il report di analisi. Questo parametro non è supportato per i processi di spiegazione delle serie temporali. Ci sono tre copie dello stesso report come parte del risultato dell'analisi: report Jupyter Notebook, report HTML e report PDF. L'oggetto ha i seguenti parametri:
    + **name**: nome del file di report. Ad esempio, se `name` è **MyReport**, allora i file di report sono `MyReport.ipynb`, `MyReport.html`, e `MyReport.pdf`. L'impostazione predefinita è `report`.
    + **title**: (facoltativo) stringa del titolo del report. L'impostazione predefinita è **SageMaker AI Analysis Report**.
+ **predittore**: obbligatorio se l'analisi richiede previsioni dal modello. Ad esempio, quando viene richiesto il metodo `shap`, `asymmetric_shapley_value`, `pdp` o `post_training_bias`, ma le etichette previste non vengono fornite come parte del set di dati di input. Di seguito sono riportati i parametri da utilizzare insieme a `predictor`:
  + **model\_name: il nome** del modello di SageMaker intelligenza artificiale creato dall'API. [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) **Se specificate `model_name` al posto di endpoint\_name, il processo di elaborazione di SageMaker Clarify crea un endpoint temporaneo con il nome del modello, noto come endpoint ombra, e ottiene le previsioni dall'endpoint.** Il processo elimina l'endpoint shadow dopo aver completato i calcoli. Se il modello è multi-modello, devi specificare il parametro `target_model`. Per ulteriori informazioni sugli endpoint multi-modello, consulta [Multi-model punti finali](multi-model-endpoints.md).
  + **endpoint\_name\_prefix**: (facoltativo) un prefisso di nome personalizzato per l'endpoint shadow. Applicabile se fornisci `model_name` invece di `endpoint_name`. Ad esempio, fornisci `endpoint_name_prefix` se desideri limitare l'accesso all'endpoint in base al nome dell'endpoint. Il prefisso deve corrispondere al modello e la sua lunghezza massima è. [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html#sagemaker-CreateEndpoint-request-EndpointName)`23` L'impostazione predefinita è `sm-clarify`.
  + **initial\_instance\_count**: specifica il numero di istanze dell'endpoint shadow. Obbligatorio se fornisci model\_name anziché endpoint\_name. Il valore di `initial_instance_count` può essere diverso da quello [InstanceCount](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_ProcessingClusterConfig.html#sagemaker-Type-ProcessingClusterConfig-InstanceCount)del lavoro, ma consigliamo un rapporto 1:1.
  + **instance\_type**: specifica il tipo di istanza dell'endpoint shadow. Obbligatorio se fornisci `model_name` invece di `endpoint_name`. Ad esempio, `instance_type` può essere impostato su "ml.m5.large". In alcuni casi, il valore specificato per `instance_type` può aiutare a ridurre il tempo di inferenza del modello. Ad esempio, per funzionare in modo efficiente, i modelli di elaborazione del linguaggio naturale e i modelli di visione artificiale richiedono in genere un tipo di istanza GPU (Graphics Processing Unit).
  + **endpoint\_name: il nome** del tuo endpoint SageMaker AI creato dall'API. [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) Se fornito, `endpoint_name` ha la precedenza sul parametro `model_name`. L'utilizzo di un endpoint esistente riduce il tempo di bootstrap dell'endpoint shadow, ma può anche causare un aumento significativo del carico per quell'endpoint. Inoltre, alcuni metodi di analisi (come `shap` e `pdp`) generano set di dati sintetici che vengono inviati all'endpoint. Ciò può far sì che i parametri o i dati acquisiti dell'endpoint vengano contaminati da dati sintetici, che potrebbero non riflettere accuratamente l'utilizzo nel mondo reale. Per questi motivi, in genere non è consigliabile utilizzare un endpoint di produzione esistente per l'analisi di Clarify. SageMaker 
  + **target\_model** — Il valore della stringa che viene passato al TargetModel parametro dell'API AI. SageMaker [InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#RequestSyntax) Necessario se il modello (specificato dal parametro model\_name) o l'endpoint (specificato dal parametro endpoint\_name) sono multi-modello. Per ulteriori informazioni sugli endpoint multi-modello, consulta [Multi-model punti finali](multi-model-endpoints.md).
  + **custom\_attributes**: (facoltativo) una stringa che consente di fornire informazioni aggiuntive su una richiesta di inferenza inviata all'endpoint. Il valore della stringa viene passato al `CustomAttributes` parametro dell' SageMaker API AI. [InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#RequestSyntax)
  + **content\_type**: il formato di input del modello da utilizzare per ottenere previsioni dall'endpoint. Se fornito, viene passato al `ContentType` parametro dell'[InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#RequestSyntax)API SageMaker AI. 
    + Per la spiegabilità della visione artificiale, i valori validi sono **image/jpeg**, **image/png** o **application/x-npy**. Se `content_type` non viene specificato, il valore predefinito è **image/jpeg**.
    + Per la spiegabilità della previsione delle serie temporali, il valore accettato è **application/json**.
    + Per altri tipi di spiegabilità, i valori validi sono **text/csv**, **application/jsonlines,** e **application/json**. È richiesto un valore per `content_type` se `dataset_type` è **application/x-parquet**. Altrimenti, il valore predefinito di `content_type` è quello del parametro `dataset_type`.
  + **accept\_type**: il formato di output del modello da utilizzare per ottenere previsioni dall'endpoint. Il valore per `accept_type` viene passato al `Accept` parametro dell'[InvokeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_runtime_InvokeEndpoint.html#RequestSyntax)API SageMaker AI.
    + Per la spiegabilità della visione artificiale, se `model_type` è "OBJECT\_DETECTION", il valore predefinito di `accept_type` è **application/json**.
    + Per la spiegabilità della previsione delle serie temporali, il valore accettato è **application/json**.
    + Per altri tipi di spiegabilità, i valori validi sono **text/csv**, **application/jsonlines** e **application/json**. Se non viene fornito un valore per `accept_type`, il valore predefinito di `accept_type` è il valore del parametro `content_type`.
  + **content\_template**: una stringa modello utilizzata per costruire l'input del modello dai record del set di dati. Il parametro `content_template` viene utilizzato e richiesto solo se il valore del parametro `content_type` è `application/jsonlines` o `application/json` 

    Quando il parametro `content_type` è `application/jsonlines`, la stringa modello deve avere un solo segnaposto, `$features`, che viene sostituito dall'elenco delle funzionalità in fase di runtime. Ad esempio, se la stringa modello è `"{\"myfeatures\":$features}"` e se un record ha tre valori di funzionalità numeriche:`1`, `2` e `3`, il record verrà inviato al modello come `{"myfeatures":[1,2,3]}` JSON Line. 

    Quando `content_type` è `application/json`, la stringa modello può avere un segnaposto `$record` o `records`. Se il segnaposto è `record`, un singolo record viene sostituito con un record a cui è applicata la stringa modello in `record_template`. In questo caso, al modello verrà inviato un solo record alla volta. Se il segnaposto è `$records`, i record vengono sostituiti da un elenco di record, ciascuno con una stringa modello fornita da `record_template`.
  + **record\_template**: una stringa modello da utilizzare per costruire ogni record dell'input del modello dalle istanze del set di dati. Viene utilizzato e richiesto solo quando `content_type` è `application/json` La stringa modello può contenere:
    + Un segnaposto parametro `$features` che viene sostituito da una matrice di valori di funzionalità. Un segnaposto opzionale aggiuntivo può sostituire i nomi delle intestazioni delle colonne di funzionalità in `$feature_names`. Questo segnaposto opzionale verrà sostituito da una serie di nomi di funzionalità.
    + Esattamente un segnaposto `$features_kvp` che viene sostituito da coppie chiave-valore, nome e valore della funzionalità.
    + Una funzionalità nella configurazione `headers`. Ad esempio, il nome di una funzionalità `A`, annotato dalla sintassi del segnaposto `"${A}"` verrà sostituito dal valore della funzionalità di `A`.

    Il valore di `record_template` viene utilizzato con `content_template` per costruire l'input del modello. Segue un esempio di configurazione che mostra come costruire un input del modello utilizzando contenuti e record modello.

    Nel seguente esempio di codice, le intestazioni e le funzionalità sono definite come segue.
    + ``headers`:["A", "B"]`
    + ``features`:[[0,1], [3,4]]`

    L'input del modello di esempio è:

    ```
    {
        "instances": [[0, 1], [3, 4]],
        "feature_names": ["A", "B"]
    }
    ```

    Di seguito sono riportati come esempio i valori dei parametri `content_template` e `record_template`, per costruire l'input del modello dell'esempio precedente.
    + `content_template: "{\"instances\": $records, \"feature_names\": $feature_names}"`
    + `record_template: "$features"`

     Nel seguente esempio di codice, le intestazioni e le funzionalità sono definite come segue.

    ```
    [
        { "A": 0, "B": 1 },
        { "A": 3, "B": 4 },
    ]
    ```

    Di seguito sono riportati come esempio i valori dei parametri ` content_template` e `record_template`, per costruire l'input del modello dell'esempio precedente. 
    + `content_template: "$records"`
    + `record_template: "$features_kvp"`

    Segue un esempio di codice alternativo per costruire l'input del modello dell'esempio precedente.
    + `content_template: "$records"`
    + `record_template: "{\"A\": \"${A}\", \"B\": \"${B}\"}"`

     Nel seguente esempio di codice, le intestazioni e le funzionalità sono definite come segue.

    ```
    { "A": 0, "B": 1 }
    ```

    I valori dei parametri content\_template e record\_template di esempio da costruire sopra: segue l'input del modello di esempio precedente.
    + `content_template: "$record"`
    + `record_template: "$features_kvp"`

    Per ulteriori esempi, consulta [Richieste degli endpoint per i dati di serie temporali](clarify-processing-job-data-format-time-series-request-jsonlines.md).
  + **label**: (facoltativo) un indice intero a base zero o una stringa di espressioni JMESPath utilizzati per estrarre le etichette previste dall’output del modello per l’analisi dei bias. Se il modello è multiclasse e il parametro `label` estrae tutte le etichette previste dall'output del modello, si applica quanto segue. Questa funzionalità non è supportata per le serie temporali.
    + Il parametro `probability` è necessario per ottenere le probabilità (o i punteggi) corrispondenti dall'output del modello.
    + Viene scelta l'etichetta prevista del punteggio più alto.

    Il valore di `label` viene specificato in base al valore del parametro accept\_type, come segue.
    + Se `accept_type` è **text/csv**, allora `label` è l'indice di tutte le etichette previste nell'output del modello.
    + Se `accept_type` è **application/jsonlines** o**application/json**, allora `label` è un'espressione JMESPath che viene applicata all'output del modello per ottenere le etichette previste.
  + **label\_headers**: (facoltativo) un array di valori che l’etichetta può assumere nel set di dati. Se viene richiesta l'analisi del bias, il parametro `probability` è necessario anche per ottenere i valori di probabilità (punteggi) corrispondenti dall'output del modello e viene scelta l'etichetta prevista del punteggio più alto. Se viene richiesta l'analisi della spiegabilità, le intestazioni delle etichette vengono utilizzate per abbellire il report di analisi. È richiesto un valore di `label_headers`, per la spiegabilità della visione artificiale. Ad esempio, per un problema di classificazione multiclasse, se l'etichetta ha tre valori possibili, **bird**, **cat** e **dog**, allora `label_headers` deve essere impostato su `["bird","cat","dog"]`.
  + **probability**: (facoltativo) un indice intero a base zero o una stringa di espressioni JMESPath utilizzati per estrarre le probabilità (punteggi) per l’analisi della spiegabilità (ma non per la spiegabilità delle serie temporali) o per scegliere l’etichetta prevista per l’analisi dei bias. Il valore di `probability` viene specificato in base al valore del parametro `accept_type`, come segue.
    + Se `accept_type` è **text/csv**, `probability` è l'indice delle probabilità (punteggi) nell'output del modello. Se `probability` non viene fornito, l'intero output del modello viene considerato come probabilità (punteggi).
    + Se `accept_type` consiste di dati JSON (**application/jsonlines** o **application/json**), `probability` dovrebbe essere un'espressione JMESPath utilizzata per estrarre le probabilità (punteggi) dall'output del modello.
  + **time\_series\_predictor\_config:** (facoltativo) utilizzato solo per la spiegabilità delle serie temporali. Utilizzato per indicare al processore SageMaker Clarify come analizzare correttamente i dati a partire dai dati passati come URI S3 in. `dataset_uri`
    + **forecast**: un’espressione JMESPath utilizzata per estrarre il risultato della previsione.

## File di configurazione dell'analisi di esempio
<a name="clarify-processing-job-configure-analysis-examples"></a>

Le sezioni seguenti contengono esempi di file di configurazione dell’analisi per dati in formato CSV e JSON Lines, nonché per la spiegabilità dell’elaborazione del linguaggio naturale (NLP), della visione artificiale (CV) e delle serie temporali (TS).

### Configurazione di analisi per un set di dati CSV
<a name="clarify-analysis-configure-csv-example"></a>

I seguenti esempi mostrano come configurare l'analisi del bias della spiegabilità per un set di dati tabulare in formato CSV. In questi esempi, il set di dati in entrata ha quattro colonne di funzionalità e una colonna di etichette binarie, `Target`. Il contenuto del set di dati è il seguente. Un valore di etichetta pari a `1` indica un risultato positivo. Il set di dati viene fornito al job SageMaker Clarify dall'input di elaborazione. `dataset`

```
"Target","Age","Gender","Income","Occupation"
0,25,0,2850,2
1,36,0,6585,0
1,22,1,1759,1
0,48,0,3446,1
...
```

Le successive sezioni mostrano come calcolare i parametri di bias prima e dopo l'addestramento, i valori SHAP e i grafici PDP che mostrano l'importanza delle funzionalità per un set di dati in formato CSV. 

#### Calcola tutti i parametri di bias pre-addestramento
<a name="clarify-analysis-configure-csv-example-metrics"></a>

Questa configurazione di esempio mostra come misurare se il set di dati del campione precedente è orientato favorevolmente verso campioni con un valore **Gender** di `0`. La seguente configurazione di analisi indica al processo di elaborazione SageMaker Clarify di calcolare tutte le metriche di distorsione pre-addestramento per il set di dati.

```
{
    "dataset_type": "text/csv",
    "label": "Target",
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        }
    }
}
```

#### Calcola tutti i parametri di bias post-addestramento
<a name="clarify-analysis-configure-csv-example-postmetrics"></a>

Puoi calcolare i parametri di bias pre-addestramento prima dell'addestramento. Tuttavia, è necessario disporre di un modello addestrato per calcolare i parametri di bias post-addestramento. L'output di esempio seguente proviene da un modello di classificazione binaria che genera dati in formato CSV. In questo output di esempio, ogni riga contiene due colonne. La prima colonna contiene l'etichetta prevista e la seconda colonna contiene il valore di probabilità per quell'etichetta. 

```
0,0.028986845165491
1,0.825382471084594
...
```

Il seguente esempio di configurazione indica al processo di elaborazione SageMaker Clarify di calcolare tutte le possibili metriche di distorsione utilizzando il set di dati e le previsioni dall'output del modello. Nell'esempio, il modello viene distribuito su un endpoint AI. SageMaker `your_endpoint`

**Nota**  
Nell'esempio di codice seguente, i parametri `content_type` e `accept_type` non sono impostati. Pertanto, utilizzano automaticamente il valore del parametro dataset\_type, che è `text/csv`.

```
{
    "dataset_type": "{{text/csv}}",
    "label": "{{Target}}",
    "label_values_or_threshold": {{[1]}},
    "facet": [
        {
            "name_or_index": "{{Gender}}",
            "value_or_threshold": {{[0]}}
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "{{all}}"
        },
        "post_training_bias": {
            "methods": "{{all}}"
        }
    },
    "predictor": {
        "endpoint_name": "{{your_endpoint}}",
        "label": {{0}}
    }
}
```

#### Calcola i valori SHAP
<a name="clarify-analysis-configure-csv-example-shap"></a>

Il seguente esempio di configurazione di analisi indica al processo di calcolare i valori SHAP, designando la colonna `Target` come etichette e tutte le altre colonne come funzionalità.

```
{
    "dataset_type": "{{text/csv}}",
    "label": "{{Target}}",
    "methods": {
        "shap": {
            "num_clusters": {{1}}
        }
    },
    "predictor": {
        "endpoint_name": "{{your_endpoint}}",
        "probability": {{1}}
    }
}
```

In questo esempio, il parametro SHAP `baseline` è omesso e il valore del parametro `num_clusters` è `1`. Questo indica al processore SageMaker Clarify di calcolare un campione di base SHAP. In questo esempio, la probabilità è impostata su `1`. Ciò indica al processo di elaborazione SageMaker Clarify di estrarre il punteggio di probabilità dalla seconda colonna dell'output del modello (utilizzando l'indicizzazione a base zero).

#### Calcola grafici di dipendenza parziale (PDP)
<a name="clarify-analysis-configure-csv-example-pdp"></a>

L'esempio seguente mostra come visualizzare l'importanza della funzionalità `Income` nel report di analisi utilizzando i PDP. Il parametro report indica al processo di elaborazione SageMaker Clarify di generare un report. Una volta completato il processo, il report generato viene salvato come report.pdf nella posizione `analysis_result`. Il parametro `grid_resolution` divide l'intervallo dei valori della funzionalità in bucket `10`. Insieme, i parametri specificati nell'esempio seguente indicano al processo di elaborazione SageMaker Clarify di generare un report contenente un grafico PDP per `Income` i segmenti sull'asse x. `10` L'asse y mostrerà l'impatto marginale di `Income` sulle predizioni.

```
{
    "dataset_type": "text/csv",
    "label": "Target",
    "methods": {
        "pdp": {
            "features": ["{{Income}}"],
            "grid_resolution": {{10}}
        },
        "report": {
            "name": "{{report}}"
        }
    },
    "predictor": {
        "endpoint_name": "{{your_endpoint}}",
        "probability": {{1}}
    },
}
```

#### Calcola sia i parametri di bias che l'importanza delle funzionalità
<a name="clarify-analysis-configure-csv-example-fi"></a>

 È possibile combinare tutti i metodi degli esempi di configurazione precedenti in un unico file di configurazione di analisi e calcolarli tutti con un unico processo. L'esempio seguente mostra una configurazione di analisi con tutte le fasi combinate. 

In questo esempio, il parametro `probability` è impostato su `1` per indicare che le probabilità sono contenute nella seconda colonna (utilizzando l'indicizzazione a base zero). Tuttavia, poiché l'analisi delle distorsioni richiede un'etichetta prevista, il parametro `probability_threshold` è impostato su `0.5` per convertire il punteggio di probabilità in un'etichetta binaria. In questo esempio, il parametro `top_k_features` del metodo `pdp` dei grafici di dipendenza parziale è impostato su `2`. Ciò consente al processo di elaborazione di SageMaker Clarify di calcolare i grafici di dipendenza parziali (PDP) per le funzionalità principali con i valori SHAP globali più elevati. `2` 

```
{
    "dataset_type": "text/csv",
    "label": "{{Target}}",
    "probability_threshold": {{0.5}},
    "label_values_or_threshold": [{{1}}],
    "facet": [
        {
            "name_or_index": "{{Gender}}",
            "value_or_threshold": [{{0}}]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "{{all}}"
        },
        "post_training_bias": {
            "methods": "{{all}}"
        },
        "shap": {
            "num_clusters": {{1}}
        },
        "pdp": {
            "top_k_features": {{2}},
            "grid_resolution": {{10}}
        },
        "report": {
            "name": "{{report}}"
        }
    },
    "predictor": {
        "endpoint_name": "{{your_endpoint}}",
        "probability": {{1}}
    }
}
```

Invece di distribuire il modello su un endpoint, è possibile fornire il nome del modello di SageMaker intelligenza artificiale al processo di elaborazione Clarify utilizzando il parametro. SageMaker `model_name` Il seguente esempio mostra come specificare un modello denominato **your\_model**. Il processo di elaborazione SageMaker Clarify creerà un endpoint shadow utilizzando la configurazione.

```
{
     ...
    "predictor": {
        "model_name": "{{your_model}}",
        "initial_instance_count": {{1}},
        "instance_type": "{{ml.m5.large}}",
        "probability": {{1}}
    }
}
```

### Configurazione di analisi per un set di dati JSON Lines
<a name="clarify-analysis-configure-JSONLines-example"></a>

I seguenti esempi mostrano come configurare l'analisi del bias e l'analisi della spiegabilità per un set di dati tabulare in formato JSON Lines. In questi esempi, il set di dati in entrata contiene gli stessi dati della sezione precedente, ma sono nel formato denso SageMaker AI JSON Lines. Ogni riga è un oggetto JSON valido. La chiave "Features" si riferisce a una serie di valori di funzionalità e la chiave "Label" si riferisce all'etichetta Ground Truth. Il set di dati viene fornito al job SageMaker Clarify dall'input di elaborazione «dataset». Per ulteriori informazioni su righe JSON, consultare [Formato della richiesta JSONLINES](cdf-inference.md#cm-jsonlines).

```
{"Features":[25,0,2850,2],"Label":0}
{"Features":[36,0,6585,0],"Label":1}
{"Features":[22,1,1759,1],"Label":1}
{"Features":[48,0,3446,1],"Label":0}
...
```

Le successive sezioni mostrano come calcolare i parametri di bias prima e dopo l'addestramento, i valori SHAP e i grafici PDP che mostrano l'importanza della funzionalità per un set di dati in formato JSON Lines.

#### Calcola i parametri di bias pre-addestramento
<a name="clarify-analysis-configure-JSONLines-pretraining"></a>

Specifica l'etichetta, le funzionalità, il formato e i metodi per misurare i parametri di bias pre-addestramento per un valore `Gender` di `0`. Nell'esempio seguente, il parametro `headers` fornisce innanzitutto i nomi delle funzionalità. Il nome dell'etichetta viene fornito per ultimo. Per convenzione, l'ultima intestazione è quella dell'etichetta. 

Il `features` parametro è impostato sull'espressione JMESPath «Features» in modo che il processo di elaborazione SageMaker Clarify possa estrarre la serie di funzionalità da ogni record. Il `label` parametro è impostato sull'espressione JMESPath «Label» in modo che il processo di elaborazione di SageMaker Clarify possa estrarre l'etichetta di verità fondamentale da ogni record. Utilizza un nome di facet per specificare l'attributo sensibile, come segue.

```
{
    "dataset_type": "{{application/jsonlines}}",
    "headers": [{{"Age","Gender","Income","Occupation","Target"}}],
    "label": "{{Label}}",
    "features": "{{Features}}",
    "label_values_or_threshold": [{{1}}],
    "facet": [
        {
            "name_or_index": "{{Gender}}",
            "value_or_threshold": [{{0}}]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "{{all}}"
        }
    }
}
```

#### Calcola tutti i parametri di bias
<a name="clarify-analysis-configure-JSONLines-bias"></a>

È necessario disporre di un modello esperto per calcolare i parametri di bias post-addestramento. L'esempio seguente proviene da un modello di classificazione binaria che genera dati JSON Lines nel formato dell'esempio. Ogni riga dell'output del modello è un oggetto JSON valido. La `predicted_label` chiave si riferisce all'etichetta prevista e la `probability` chiave si riferisce al valore di probabilità.

```
{"predicted_label":0,"probability":0.028986845165491}
{"predicted_label":1,"probability":0.825382471084594}
...
```

È possibile distribuire il modello su un SageMaker endpoint AI denominato. `your_endpoint` Il seguente esempio di configurazione di analisi indica al processo di elaborazione di SageMaker Clarify di calcolare tutte le possibili metriche di distorsione sia per il set di dati che per il modello. In questo esempio, i parametri `content_type` e `accept_type` non sono impostati. Pertanto, utilizzano automaticamente il valore del parametro dataset\_type, che è `application/jsonlines`. Il processo di elaborazione SageMaker Clarify utilizza il `content_template` parametro per comporre l'input del modello, sostituendo il segnaposto con una serie di funzionalità. `$features`

```
{
    "dataset_type": "{{application/jsonlines}}",
    "headers": [{{"Age","Gender","Income","Occupation","Target"}}],
    "label": "{{Label}}",
    "features": "{{Features}}",
    "label_values_or_threshold": [{{1}}],
    "facet": [
        {
            "name_or_index": "{{Gender}}",
            "value_or_threshold": [{{0}}]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "{{all}}"
        },
        "post_training_bias": {
            "methods": "{{all}}"
        }
    },
    "predictor": {
        "endpoint_name": "{{your_endpoint}}",
        "content_template": "{{{\"Features\":$features}}}",
        "label": "{{predicted_label}}"
    }
}
```

#### Calcola i valori SHAP
<a name="clarify-analysis-configure-JSONLines-shap"></a>

Poiché l'analisi SHAP non necessita di un'etichetta Ground Truth, il parametro `label` viene omesso. In questo esempio, anche il parametro `headers` è omesso. Pertanto, il processo di elaborazione SageMaker Clarify deve generare segnaposti utilizzando nomi generici come `column_0` o `column_1` per le intestazioni delle funzionalità e per l'intestazione di un'etichetta. `label0` È possibile specificare i valori per `headers` e `label`, in modo da migliorare la leggibilità del risultato dell'analisi. Poiché il parametro di probabilità è impostato sull'espressione JMESPath `probability`, il valore di probabilità verrà estratto dall'output del modello. Di seguito è riportato un esempio per calcolare i valori SHAP.

```
{
    "dataset_type": "{{application/jsonlines}}",
    "features": "{{Features}}",
    "methods": {
        "shap": {
            "{{num_clusters}}": 1
        }
    },
    "predictor": {
        "endpoint_name": "{{your_endpoint}}",
        "content_template": "{{{\"Features\":$features}}}",
        "probability": "{{probability}}"
    }
}
```

#### Calcola grafici di dipendenza parziale (PDP)
<a name="clarify-analysis-configure-JSONLines-pdp"></a>

L'esempio seguente mostra come visualizzare l'importanza di "Income" nel PDP. In questo esempio, le intestazioni delle funzionalità non vengono fornite. Pertanto, il parametro `features` del metodo `pdp` deve utilizzare un indice a base zero per fare riferimento alla posizione della colonna di funzionalità. Il parametro `grid_resolution` divide l'intervallo dei valori della funzionalità in bucket `10`. Insieme, i parametri dell'esempio indicano al processo di elaborazione SageMaker Clarify di generare un report contenente un grafico PDP per i segmenti sull'asse x. `Income` `10` L'asse y mostrerà l'impatto marginale di `Income` sulle predizioni.

```
{
    "dataset_type": "{{application/jsonlines}}",
    "features": "{{Features}}",
    "methods": {
        "pdp": {
            "features": [{{2}}],
            "grid_resolution": {{10}}
        },
        "report": {
            "name": "{{report}}"
        }
    },
    "predictor": {
        "endpoint_name": "{{your_endpoint}}",
        "content_template": "{{{\"Features\":$features}}}",
        "probability": "{{probability}}"
    }
}
```

#### Calcola sia i parametri di bias che l'importanza delle funzionalità
<a name="clarify-analysis-configure-JSONLines-fi-metrics"></a>

È possibile combinare tutti i metodi precedenti in un unico file di configurazione di analisi e calcolarli tutti con un unico processo. L'esempio seguente mostra una configurazione di analisi con tutte le fasi combinate. In questo esempio, il parametro `probability` è impostato. Tuttavia, poiché l'analisi dei bias richiede un'etichetta prevista, il parametro `probability_threshold` è impostato su `0.5` per convertire il punteggio di probabilità in un'etichetta binaria. In questo esempio, il parametro `top_k_features` del metodo `pdp` è impostato su `2`. Ciò consente al processo di elaborazione di SageMaker Clarify di calcolare i PDP per le funzionalità principali con i valori SHAP globali più elevati. `2`

```
{
    "dataset_type": "{{application/jsonlines}}",
    "headers": [{{"Age","Gender","Income","Occupation","Target"}}],
    "label": "{{Label}}",
    "features": "{{Features}}",
    "probability_threshold": {{0.5}},
    "label_values_or_threshold": [{{1}}],
    "facet": [
        {
            "name_or_index": "{{Gender}}",
            "value_or_threshold": [{{0}}]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "{{all}}"
        },
        "post_training_bias": {
            "methods": "{{all}}"
        },
        "shap": {
            "num_clusters": {{1}}
        },
        "pdp": {
            "top_k_features": {{2}},
            "grid_resolution": {{10}}
        },
        "report": {
            "name": "{{report}}"
        }
    },
    "predictor": {
        "endpoint_name": "{{your_endpoint}}",
        "content_template": "{{{\"Features\":$features}}}",
        "probability": "{{probability}}"
    }
}
```

### Configurazione di analisi per un set di dati JSON
<a name="clarify-analysis-configure-JSON-example"></a>

I seguenti esempi mostrano come configurare l'analisi del bias della spiegabilità per un set di dati tabulare in formato JSON. In questi esempi, il set di dati in entrata contiene gli stessi dati della sezione precedente, ma sono nel formato AI JSON denso. SageMaker Per ulteriori informazioni su righe JSON, consultare [Formato della richiesta JSONLINES](cdf-inference.md#cm-jsonlines).

L'intera richiesta di input ha una sintassi JSON valida, dove la struttura esterna è un elenco e ogni elemento è il dato di un record. All'interno di ogni record, la chiave `Features` si riferisce a una serie di valori di funzionalità e la chiave `Label` si riferisce all'etichetta Ground Truth. Il set di dati viene fornito al job SageMaker Clarify tramite l'input di elaborazione. `dataset`

```
[
    {"Features":[25,0,2850,2],"Label":0},
    {"Features":[36,0,6585,0],"Label":1},
    {"Features":[22,1,1759,1],"Label":1},
    {"Features":[48,0,3446,1],"Label":0},
    ...
]
```

Le successive sezioni mostrano come calcolare i parametri di bias prima e dopo l'addestramento, i valori SHAP e i grafici PDP che mostrano l'importanza delle funzionalità per un set di dati in formato JSON Lines.

#### Calcola i parametri di bias pre-addestramento
<a name="clarify-analysis-configure-JSON-example-pretraining"></a>

Specifica l'etichetta, le funzionalità, il formato e i metodi per misurare i parametri di bias pre-addestramento per un valore `Gender` di `0`. Nell'esempio seguente, il parametro `headers` fornisce innanzitutto i nomi delle funzionalità. Il nome dell'etichetta viene fornito per ultimo. Nei set di dati JSON, l'ultima intestazione è quella di etichetta.

Il parametro `features` è impostato sull'espressione JMESPath che estrae una matrice o una matrice 2D. Ogni riga di questa matrice deve contenere l'elenco di `Features` in ogni record. Il parametro `label` è impostato sull'espressione JMESPath che estrae un elenco di etichette Ground Truth. Ogni elemento di questo elenco deve contenere l'etichetta di un record. 

Utilizza un nome di facet per specificare l'attributo sensibile, come segue.

```
{
    "dataset_type": "application/json",
    "headers": ["Age","Gender","Income","Occupation","Target"],
    "label": "[*].Label",
    "features": "[*].Features",
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        }
    }
}
```

#### Calcola tutti i parametri di bias
<a name="clarify-analysis-configure-JSON-example-bias"></a>

È necessario disporre di un modello addestrato per calcolare i parametri di bias post-addestramento. Il seguente esempio di codice proviene da un modello di classificazione binaria che genera dati JSON nel formato dell'esempio. Nell'esempio, ogni elemento sotto `predictions` è l'output di previsione per un record. L'esempio di codice contiene la chiave `predicted_label`, che si riferisce all'etichetta prevista, e la chiave `probability`, che si riferisce al valore di probabilità.

```
{
    "predictions": [
        {"predicted_label":0,"probability":0.028986845165491},
        {"predicted_label":1,"probability":0.825382471084594},
        ...
    ]
}
```

È possibile distribuire il modello su un endpoint SageMaker AI denominato. `your_endpoint` 

Nel seguente esempio, i parametri `content_type` e `accept_type` non sono impostati. Pertanto, `content_type` e `accept_type` vengono impostati automaticamente sul valore del parametro `dataset_type`, che è `application/json`. Il processo di elaborazione di SageMaker Clarify utilizza quindi il `content_template` parametro per comporre l'input del modello. 

Nell'esempio seguente, l'input del modello è composto sostituendo il segnaposto `$records` con una matrice di record. Quindi, il parametro `record_template` compone la struttura JSON di ogni record e sostituisce il segnaposto `$features` con la matrice di funzionalità di ogni record.

Il seguente esempio di configurazione di analisi indica al processo di elaborazione SageMaker Clarify di calcolare tutte le possibili metriche di distorsione sia per il set di dati che per il modello.

```
{
    "dataset_type": "application/json",
    "headers": ["Age","Gender","Income","Occupation","Target"],
    "label": "[*].Label",
    "features": "[*].Features",
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        },
        "post_training_bias": {
            "methods": "all"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "$records",
        "record_template": "{\"Features\":$features}",
        "label": "predictions[*].predicted_label"
    }
}
```

#### Calcola i valori SHAP
<a name="clarify-analysis-configure-JSON-example-shap"></a>

Non è necessario specificare un'etichetta per l'analisi SHAP. Nel seguente esempio, il parametro `headers` non è impostato. Pertanto, il processo di elaborazione SageMaker Clarify genererà segnaposti utilizzando nomi generici come `column_0` o `column_1` per le intestazioni delle funzionalità e per l'intestazione di un'etichetta. `label0` È possibile specificare i valori per `headers` e `label`, in modo da migliorare la leggibilità del risultato dell'analisi. 

Nel seguente esempio di configurazione, il parametro di probabilità è impostato su un'espressione JMESPath che estrae le probabilità da ogni previsione per ogni record. Di seguito è riportato un esempio per calcolare i valori SHAP.

```
{
    "dataset_type": "application/json",
    "features": "[*].Features",
    "methods": {
        "shap": {
            "num_clusters": 1
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "$records",
        "record_template": "{\"Features\":$features}",
        "probability": "predictions[*].probability"
    }
}
```

#### Calcola grafici di dipendenza parziale (PDP)
<a name="clarify-analysis-configure-JSON-example-pdp"></a>

L'esempio seguente mostra come visualizzare l'importanza delle funzionalità nei PDP. Nell'esempio, le intestazioni delle funzionalità non vengono fornite. Pertanto, il parametro `features` del metodo `pdp` deve utilizzare un indice a base zero per fare riferimento alla posizione della colonna di funzionalità. Il parametro `grid_resolution` divide l'intervallo dei valori della funzionalità in bucket `10`. 

Insieme, i parametri dell'esempio seguente indicano al processo di elaborazione SageMaker Clarify di generare un report contenente un grafico PDP per i segmenti sull'asse x. `Income` `10` L'asse y mostra l'impatto marginale di `Income` sulle predizioni.

La seguente configurazione di esempio mostra come visualizzare l'importanza di `Income` nei PDP.

```
{
    "dataset_type": "application/json",
    "features": "[*].Features",
    "methods": {
        "pdp": {
            "features": [2],
            "grid_resolution": 10
        },
        "report": {
            "name": "report"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "$records",
        "record_template": "{\"Features\":$features}",
        "probability": "predictions[*].probability"
    }
}
```

#### Calcola sia i parametri di bias che l'importanza delle funzionalità
<a name="clarify-analysis-configure-JSON-example-bias-fi"></a>

Puoi combinare tutti i metodi di configurazione precedenti in un unico file di configurazione dell'analisi e calcolarli tutti in un unico processo. L'esempio seguente mostra una configurazione di analisi con tutte le fasi combinate. 

In questo esempio, il parametro `probability` è impostato. Poiché l'analisi dei bias richiede un'etichetta prevista, il parametro `probability_threshold` viene impostato su `0.5`, che viene utilizzato per convertire il punteggio di probabilità in un'etichetta binaria. In questo esempio, il parametro `top_k_features` del metodo `pdp` è impostato su `2`. Ciò consente al processo di elaborazione di SageMaker Clarify di calcolare i PDP per le funzionalità principali con i valori SHAP globali più elevati. `2`

```
{
    "dataset_type": "application/json",
    "headers": ["Age","Gender","Income","Occupation","Target"],
    "label": "[*].Label",
    "features": "[*].Features",
    "probability_threshold": 0.5,
    "label_values_or_threshold": [1],
    "facet": [
        {
            "name_or_index": "Gender",
            "value_or_threshold": [0]
        }
    ],
    "methods": {
        "pre_training_bias": {
            "methods": "all"
        },
        "post_training_bias": {
            "methods": "all"
        },
        "shap": {
            "num_clusters": 1
        },
        "pdp": {
            "top_k_features": 2,
            "grid_resolution": 10
        },
        "report": {
            "name": "report"
        }
    },
    "predictor": {
        "endpoint_name": "your_endpoint",
        "content_template": "$records",
        "record_template": "{\"Features\":$features}",
        "probability": "predictions[*].probability"
    }
}
```

### Configurazione di analisi per la spiegabilità dell'elaborazione del linguaggio naturale
<a name="clarify-analysis-configure-nlp-example"></a>

L'esempio seguente mostra un file di configurazione di analisi per il calcolo dell'importanza della funzionalità per l'elaborazione del linguaggio naturale (NLP). In questo esempio, il set di dati in entrata è un set di dati tabulare in formato CSV, con una colonna dell'etichetta binaria e due colonne di funzionalità, come mostrato in seguito. Il set di dati viene fornito al job SageMaker Clarify dal parametro di input di elaborazione. `dataset`

```
0,2,"They taste gross"
1,3,"Flavor needs work"
1,5,"Taste is awful"
0,1,"The worst"
...
```

In questo esempio, un modello di classificazione binaria è stato addestrato sul precedente set di dati. Il modello accetta dati CSV e restituisce un singolo punteggio compreso tra `0` e `1`, come mostrato in seguito.

```
0.491656005382537
0.569582343101501
...
```

Il modello viene utilizzato per creare un modello di SageMaker intelligenza artificiale denominato «your\_model». La seguente configurazione di analisi mostra come eseguire un'analisi di spiegabilità basata su token utilizzando il modello e il set di dati. Il parametro `text_config` attiva l'analisi della spiegabilità dell'elabroazione del linguaggio naturale. Il parametro `granularity` indica che l'analisi deve analizzare i token. 

In inglese, ogni token è una parola. L'esempio seguente mostra anche come fornire un'istanza SHAP locale di base utilizzando una valutazione media di 4. Uno speciale token maschera "[MASK]" viene utilizzato per sostituire un token (parola) in "Commenti". Questo esempio utilizza anche un tipo di istanza di endpoint GPU per accelerare l'inferenza.

```
{
    "dataset_type": "{{text/csv}}",
    "headers": [{{"Target","Rating","Comments"}}]
    "label": "{{Target}}",
    "methods": {
        "shap": {
            "text_config": {
                "granularity": "{{token}}",
                "language": "{{english}}"
            }
            "baseline": [[{{4,"[MASK]"}}]],
        }
    },
    "predictor": {
        "model_name": "{{your_nlp_model}}",
        "initial_instance_count": {{1}},
        "instance_type": "{{ml.g4dn.xlarge}}"
    }
}
```

### Configurazione di analisi per la spiegabilità della visione artificiale
<a name="clarify-analysis-configure-computer-vision-example"></a>

L'esempio seguente mostra un file di configurazione di analisi per il calcolo dell'importanza della funzionalità per la visione artificiale. In questo esempio, il set di dati di input è costituito da immagini JPEG. Il set di dati viene fornito al job SageMaker Clarify dal parametro di input di elaborazione. `dataset` L'esempio mostra come configurare un'analisi di spiegabilità utilizzando un SageMaker modello di classificazione delle immagini. In questo esempio, un modello denominato `your_cv_ic_model` è stato addestrato a classificare gli animali nelle immagini JPEG di input.

```
{
    "dataset_type": "{{application/x-image}}",
    "methods": {
        "shap": {
             "image_config": {
                "model_type": "{{IMAGE_CLASSIFICATION}}",
                 "num_segments": {{20}},
                "segment_compactness": {{10}}
             }
        },
        "report": {
            "name": "{{report}}"
        }
    },
    "predictor": {
        "model_name": "{{your_cv_ic_model}}",
        "initial_instance_count": {{1}},
        "instance_type": "{{ml.p2.xlarge}}",
        "label_headers": [{{"bird","cat","dog"}}]
    }
}
```

Per ulteriori informazioni sulla classificazione delle immagini, consulta [Classificazione delle immagini - MXNet](image-classification.md).

In questo esempio, un [modello di rilevamento di oggetti SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/object-detection.html) `your_cv_od_model` viene addestrato sulle stesse immagini JPEG per identificare gli animali su di esse. Il prossimo esempio mostra come generare spiegazioni per il rilevamento di oggetti.

```
{
    "dataset_type": "{{application/x-image}}",
    "probability_threshold": {{0.5}},
    "methods": {
        "{{shap}}": {
             "image_config": {
                "model_type": "{{OBJECT_DETECTION}}",
                 "max_objects": {{3}},
                "context": {{1.0}},
                "iou_threshold": {{0.5}},
                 "num_segments": {{20}},
                "segment_compactness": {{10}}
             }
        },
        "report": {
            "name": "{{report}}"
        }
    },
    "predictor": {
        "model_name": "{{your_cv_od_model}}",
        "initial_instance_count": {{1}},
        "instance_type": "{{ml.p2.xlarge}}",
        "label_headers": [{{"bird","cat","dog"}}]
    }
}
```

### Configurazione dell’analisi per la spiegabilità dei modelli di previsione delle serie temporali
<a name="clarify-analysis-configure-time-series-example"></a>

L’esempio seguente mostra un file di configurazione dell’analisi per il calcolo dell’importanza della funzionalità per una serie temporale (TS). In questo esempio, il set di dati in entrata è un set di dati di serie temporali in formato JSON con un set di funzionalità di covariate dinamiche e statiche. Il set di dati viene fornito al job SageMaker Clarify dal parametro di input di elaborazione del set di dati. `dataset_uri`

```
[
    {
        "item_id": "item1",
        "timestamp": "2019-09-11",
        "target_value": 47650.3,
        "dynamic_feature_1": 0.4576,
        "dynamic_feature_2": 0.2164,
        "dynamic_feature_3": 0.1906,
        "static_feature_1": 3,
        "static_feature_2": 4
    },
    {
        "item_id": "item1",
        "timestamp": "2019-09-12",
        "target_value": 47380.3,
        "dynamic_feature_1": 0.4839,
        "dynamic_feature_2": 0.2274,
        "dynamic_feature_3": 0.1889,
        "static_feature_1": 3,
        "static_feature_2": 4
    },
    {
        "item_id": "item2",
        "timestamp": "2020-04-23",
        "target_value": 35601.4,
        "dynamic_feature_1": 0.5264,
        "dynamic_feature_2": 0.3838,
        "dynamic_feature_3": 0.4604,
        "static_feature_1": 1,
        "static_feature_2": 2
    },
]
```

Le sezioni seguenti spiegano come calcolare le attribuzioni delle funzionalità per un modello di previsione con l’algoritmo con valori asimmetrici di Shapley per un set di dati JSON. 

#### Calcolo delle spiegazioni per i modelli di previsione delle serie temporali
<a name="clarify-processing-job-configure-analysis-feature-attr"></a>

L’esempio seguente di configurazione dell’analisi mostra le opzioni utilizzate dal processo per calcolare le spiegazioni per i modelli di previsione delle serie temporali.

```
{
    'dataset_type': 'application/json',
    'dataset_uri': 'DATASET_URI',
    'methods': {
        'asymmetric_shapley_value': {
            'baseline': {
                "related_time_series": "zero",
                "static_covariates": {
                    "item1": [0, 0], "item2": [0, 0]
                },
                "target_time_series": "zero"
            },
            'direction': 'chronological',
            'granularity': 'fine_grained',
            'num_samples': 10
        },
        'report': {'name': 'report', 'title': 'Analysis Report'}
    },
    'predictor': {
        'accept_type': 'application/json',
        'content_template': '{"instances": $records}',
        'endpoint_name': 'ENDPOINT_NAME', 
        'content_type': 'application/json',              
        'record_template': '{
            "start": $start_time, 
            "target": $target_time_series, 
            "dynamic_feat": $related_time_series, 
            "cat": $static_covariates
        }',
        'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'}
    },
    'time_series_data_config': {
        'dataset_format': 'timestamp_records',
        'item_id': '[].item_id',
        'related_time_series': ['[].dynamic_feature_1', '[].dynamic_feature_2', '[].dynamic_feature_3'],
        'static_covariates': ['[].static_feature_1', '[].static_feature_2'],
        'target_time_series': '[].target_value',
        'timestamp': '[].timestamp'
    }
}
```

##### Configurazione della spiegabilità delle serie temporali
<a name="clarify-processing-job-configure-analysis-feature-attr-tsconfig"></a>

L’esempio precedente utilizza `asymmetric_shapley_value` in `methods` per definire gli argomenti di spiegabilità delle serie temporali come baseline, direzione, granularità e numero di campioni. I valori baseline sono impostati per tutti e tre i tipi di dati: serie temporali correlate, covariate statiche e serie temporali di destinazione. Questi campi indicano al processore SageMaker Clarify di calcolare le attribuzioni delle funzionalità per un elemento alla volta.

##### Configurazione del predittore
<a name="clarify-processing-job-configure-analysis-feature-attr-predictconfig"></a>

È possibile controllare completamente la struttura del payload inviata dal processore SageMaker Clarify utilizzando la sintassi JMESPath. Nell’esempio precedente, la configurazione `predictor` indica a Clarify di aggregare i record in `'{"instances": $records}'`, dove ogni record è definito con gli argomenti forniti per `record_template` nell’esempio. Nota che `$start_time`, `$target_time_series`, `$related_time_series` e `$static_covariates` sono token interni utilizzati per mappare i valori del set di dati ai valori delle richieste degli endpoint.

Allo stesso modo, l’attributo `forecast` in `time_series_predictor_config` viene utilizzato per estrarre la previsione del modello dalla risposta dell’endpoint. Ad esempio, la risposta in batch dell’endpoint potrebbe essere la seguente:

```
{
    "predictions": [
        {"mean": [13.4, 3.6, 1.0]}, 
        {"mean": [23.0, 4.7, 3.0]}, 
        {"mean": [3.4, 5.6, 2.0]}
    ]
}
```

Supponiamo di specificare la seguente configurazione del predittore di serie temporali:

```
'time_series_predictor_config': {'forecast': 'predictions[*].mean[:2]'}
```

Il valore di previsione viene analizzato come descritto di seguito:

```
[
    [13.4, 3.6],
    [23.0, 4.7],
    [3.4, 5.6]
]
```

##### Dati di configurazione
<a name="clarify-processing-job-configure-analysis-feature-attr-dataconfig"></a>

Utilizzate l'`time_series_data_config`attributo per indicare al processore SageMaker Clarify di analizzare correttamente i dati dai dati passati come URI S3 in. `dataset_uri` 