Resultados da análise - Amazon SageMaker

Resultados da análise

Depois que o trabalho de processamento do SageMaker Clarify for concluído, você poderá baixar os arquivos de saída para inspecionar ou visualizar os resultados no SageMaker Studio Classic. O tópico a seguir descreve os resultados da análise gerados pelo SageMaker Clarify, como o esquema e o relatório gerados pela análise de desvio, análise de SHAP, análise de explicabilidade por visão computacional e análise de gráficos de dependência parcial (PDPs). Se a análise de configuração contiver parâmetros para calcular várias análises, os resultados serão agregados em uma análise e um arquivo de relatório.

O diretório de saída do trabalho de processamento do SageMaker Clarify contém os seguintes arquivos:

  • analysis.json: Um arquivo que contém métricas de desvio e importância do atributo no formato JSON.

  • report.ipynb: Um caderno estático que contém código para ajudá-lo a visualizar métricas de desvio e a importância dos atributos.

  • explanations_shap/out.csv: Um diretório que é criado e contém arquivos gerados automaticamente com base em suas configurações de análise específicas. Por exemplo, se você ativar o parâmetro save_local_shap_values, os valores de SHAP locais por instância serão salvos no diretório explanations_shap. Como outro exemplo, se sua analysis configuration não contiver um valor para o parâmetro de linha de base do SHAP, o trabalho de explicabilidade do SageMaker Clarify calculará uma linha de base agrupando o conjunto de dados de entrada. Em seguida, ele salvará a linha de base gerada no diretório.

Para obter mais informações, consulte as seções a seguir.

Análise de desvio

O Amazon SageMaker Clarify usa a terminologia documentada em Termos do Amazon SageMaker Clarify para desvio e equidade para discutir desvios e equidade.

Esquema para o arquivo de análise

O arquivo de análise está no formato JSON e é organizado em duas seções: métricas de desvio pré-treinamento e métricas de desvio pós-treinamento. Os parâmetros para métricas de desvio pré-treinamento e pós-treinamento são os seguintes:

  • pre_training_bias_metrics: Parâmetros para métricas de desvio pré-treinamento. Para ter mais informações, consulte Métricas de desvio pré-treinamento e Arquivos de configuração de análise.

    • label: O nome do rótulo de veracidade definido pelo parâmetro label da configuração da análise.

    • label_value_or_threshold: Uma string contendo os valores do rótulo ou o intervalo definido pelo parâmetro label_values_or_threshold da configuração de análise. Por exemplo, se o valor 1 for fornecido para o problema de classificação binária, a string será 1. Se vários valores [1,2] forem fornecidos para o problema de várias classes, a string será 1,2. Se um limite 40 for fornecido para o problema de regressão, a string será interna, como (40, 68], em que 68 é o valor máximo do rótulo no conjunto de dados de entrada.

    • facets: A seção contém vários pares de valores-chave, em que a chave corresponde ao nome da faceta definido pelo parâmetro name_or_index da configuração da faceta e o valor é uma matriz de objetos de faceta. Cada objeto de faceta tem os seguintes membros:

      • value_or_threshold: Uma string contendo os valores da faceta ou o intervalo definido pelo parâmetro value_or_threshold da configuração da faceta.

      • metrics: A seção contém uma matriz de elementos métricos de desvio, e cada elemento métrico de desvio tem os seguintes atributos:

        • name: O nome abreviado da métrica de desvio. Por exemplo, CI.

        • description: O nome completo da métrica de desvio. Por exemplo, Class Imbalance (CI).

        • value: O valor da métrica de desvio ou valor JSON nulo se a métrica de desvio não for calculada por um motivo específico. Os valores ±∞ são representados como strings e -∞, respectivamente.

        • error: Uma mensagem de erro opcional que explica por que a métrica de desvio não foi calculada.

  • post_training_bias_metrics: A seção contém as métricas de desvio pós-treinamento e segue um layout e uma estrutura semelhantes aos da seção de pré-treinamento. Para obter mais informações, consulte Métricas de dados pós-treinamento e desvio do modelo.

Veja a seguir um exemplo de uma configuração de análise que calculará as métricas de desvio pré-treinamento e pós-treinamento.

{ "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 }, ... ] }] } } }

Relatório de análise de desvio

O relatório de análise de desvio inclui várias tabelas e diagramas que contêm explicações e descrições detalhadas. Isso inclui, entre outros, a distribuição dos valores do rótulo, a distribuição dos valores das facetas, o diagrama de performance do modelo de alto nível, uma tabela de métricas de desvio e suas descrições. Para obter mais informações sobre métricas de desvio e como interpretá-las, consulte Saiba como o Amazon SageMaker Clarify ajuda a detectar desvios.

Análise de SHAP

Os trabalhos de processamento do SageMaker Clarify usam o algoritmo SHAP do Kernel para calcular as atribuições de atributos. o trabalho de processamento do SageMaker Clarify produz valores de SHAP locais e globais. Isso ajuda a determinar a contribuição de cada atributo para as predições de modelo. Os valores de SHAP locais representam a importância do atributo para cada instância individual, enquanto os valores de SHAP globais agregam os valores de SHAP locais em todas as instâncias no conjunto de dados. Para obter mais informações sobre valores de SHAP e como interpretá-los, consulte Atributos de atributos que usam valores de Shapley.

Esquema para o arquivo de análise de SHAP

Os resultados da análise do SHAP globais são armazenados na seção de explicações do arquivo de análise, sob o método kernel_shap. Os diferentes parâmetros do arquivo de análise de SHAP são os seguintes:

  • explanations: A seção do arquivo de análise que contém os resultados da análise de importância do atributo.

    • kernal_shap: A seção do arquivo de análise que contém o resultado da análise do SHAP globais.

      • global_shap_values: Uma seção do arquivo de análise que contém vários pares de valores-chave. Cada chave no par de valores-chave representa um nome de atributo do conjunto de dados de entrada. Cada valor no par de valores-chave corresponde ao valor de SHAP global do atributo. O valor de SHAP global é obtido agregando os valores de SHAP por instância do atributo usando a configuração agg_method. Se a configuração use_logit estiver ativada, o valor será calculado usando os coeficientes de regressão logística, que podem ser interpretados como razões logarítmicas.

      • expected_value: A predição média do conjunto de dados da linha de base. Se a configuração use_logit estiver ativada, o valor será calculado usando os coeficientes de regressão logística.

      • global_top_shap_text: Usado para análise de explicabilidade da PLN. Uma seção do arquivo de análise que inclui um conjunto de pares de valores-chave. Os trabalhos de processamento do SageMaker Clarify agregam os valores de SHAP de cada token e, em seguida, selecionam os principais tokens com base em seus valores de SHAP globais. A configuração max_top_tokens define o número de tokens a serem selecionados.

        Cada um dos principais tokens selecionados tem um par de valores-chave. A chave no par de valores-chave corresponde ao nome do atributo de texto do token principal. Cada valor no par de valores-chave são os valores de SHAP globais do token principal. Para obter um exemplo de um par de valor-chave global_top_shap_text, consulte a saída a seguir.

O exemplo a seguir mostra a saída da análise de SHAP de um conjunto de dados tabular.

{ "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 } } } }

O exemplo a seguir mostra a saída da análise de SHAP de um conjunto de dados de texto. A saída correspondente à coluna Comments é um exemplo de saída gerada após a análise de um atributo de texto.

{ "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, ... } } } } }

Esquema para o arquivo de linha de base gerado

Quando uma configuração de linha de base do SHAP não é fornecida, o trabalho de processamento do SageMaker Clarify gera um conjunto de dados de linha de base. O SageMaker Clarify usa um algoritmo de agrupamento baseado em distância para gerar um conjunto de dados de linha de base a partir de clusters criados a partir do conjunto de dados de entrada. O conjunto de dados da linha de base resultante é salvo em um arquivo CSV, localizado em explanations_shap/baseline.csv. Esse arquivo de saída contém uma linha de cabeçalho e várias instâncias com base no parâmetro num_clusters especificado na configuração da análise. O conjunto de dados de linha de base consiste apenas em colunas de atributos. O exemplo a seguir mostra uma linha de base criada pelo agrupamento do conjunto de dados de entrada.

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

Esquema para valores de SHAP locais da análise de explicabilidade do conjunto de dados tabular

Para conjuntos de dados tabulares, se uma única instância de computação for usada, o trabalho de processamento do SageMaker Clarify salvará os valores de SHAP locais em um arquivo CSV chamado explanations_shap/out.csv. Se você usar várias instâncias de computação, os valores de SHAP locais serão salvos em vários arquivos CSV no diretório explanations_shap.

Um arquivo de saída contendo valores de SHAP locais tem uma linha contendo os valores de SHAP locais de cada coluna definida pelos cabeçalhos. Os cabeçalhos seguem a convenção de nomenclatura do Feature_Label, em que o nome do atributo é anexado por um sublinhado, seguido pelo nome da variável de destino.

Para problemas de várias classes, os nomes dos atributos no cabeçalho variam primeiro, depois os rótulos. Por exemplo, dois atributos F1, F2 e duas classes L1 e L2 nos cabeçalhos são F1_L1, F2_L1, F1_L2 e F2_L2. Se a configuração de análise contiver um valor para o parâmetro joinsource_name_or_index, a coluna-chave usada na junção será anexada ao final do nome do cabeçalho. Isso permite o mapeamento dos valores de SHAP locais para instâncias do conjunto de dados de entrada. Veja a seguir um exemplo de arquivo de saída contendo valores de 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 ...

Esquema para valores de SHAP locais da análise de explicabilidade do PLN

Para análises de explicabilidade do PLN, se uma única instância de computação for usada, o trabalho de processamento do SageMaker Clarify salvará os valores de SHAP locais em um arquivo de linhas JSON chamado explanations_shap/out.jsonl. Se você usar várias instâncias de computação, os valores SHAP locais serão salvos em vários arquivos de linhas JSON no diretório explanations_shap.

Cada arquivo contendo valores de SHAP locais tem várias linhas de dados, e cada linha é um objeto JSON válido. O objeto JSON tem os seguintes atributos:

  • explanations: A seção do arquivo de análise que contém uma matriz de explicações do SHAP do Kernel para uma única instância. Cada elemento da matriz tem os seguintes membros:

    • feature_name: O nome do cabeçalho dos atributos fornecidos pela configuração dos cabeçalhos.

    • data_type: O tipo de atributo inferido pelo trabalho de processamento do SageMaker Clarify. Os valores válidos para atributos de texto incluem numerical, categorical e free_text (para atributos de texto).

    • attributions: Uma matriz específica de um atributo de objetos de atribuição. Um atributo de texto pode ter vários objetos de atribuição, cada um para uma unidade definida pela configuração granularity. O objeto de atribuição tem os seguintes membros:

      • attribution: Uma matriz específica de classes de valores de probabilidade.

      • description: (Para atributos de texto) A descrição das unidades de texto.

        • partial_text: A parte do texto explicada pelo trabalho de processamento do SageMaker Clarify.

        • start_idx: Um índice baseado em zero para identificar a localização da matriz que indica o início do fragmento parcial do texto.

Veja a seguir um exemplo de uma única linha de um arquivo de valores de SHAP local, embelezada para melhorar sua legibilidade.

{ "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 } } ] } ] }

Relatório de análise de SHAP

O relatório de análise do SHAP fornece um gráfico de barras com o máximo dos 10 principais valores globais do SHAP. O exemplo de gráfico a seguir mostra os valores de SHAP para os 4 principais atributos.

Gráfico de barras horizontais dos valores globais de SHAP calculados para a variável alvo dos quatro principais atributos.

Análise de explicabilidade da visão computacional (CV)

A explicabilidade da visão computacional do SageMaker Clarify usa um conjunto de dados que consiste em imagens e trata cada imagem como uma coleção de superpixels. Após a análise, o trabalho de processamento do SageMaker Clarify gera um conjunto de dados de imagens em que cada imagem mostra o mapa de calor dos superpixels.

O exemplo a seguir mostra um sinal de limite de velocidade de entrada à esquerda e um mapa de calor mostra a magnitude dos valores de SHAP à direita. Esses valores de SHAP foram calculados por um modelo Resnet-18 de reconhecimento de imagem treinado para reconhecer sinais de trânsito alemães. O conjunto de dados de Referência alemã de reconhecimento de sinais de trânsito (GTSRB) é fornecido no artigo avaliação comparativa de algoritmos de machine learning para reconhecimento de sinais de trânsito. Na saída do exemplo, valores positivos grandes indicam que o superpixel tem uma forte correlação positiva com a predição de modelo. Valores negativos grandes indicam que o superpixel tem uma forte correlação negativa com a predição de modelo. Quanto maior o valor absoluto do valor de SHAP mostrado no mapa de calor, mais forte é a relação entre o superpixel e a predição de modelo.

Imagem de entrada do sinal de limite de velocidade e do mapa de calor resultante dos valores de SHAP de um modelo Resnet-18.

Para obter mais informações, consulte os cadernos de exemplo Explicar a classificação de imagens com o SageMaker Clarify e Explicar os modelos de detecção de objetos com o Amazon SageMaker Clarify.

Análise de gráficos de dependência parcial (PDPs)

Os gráficos de dependência parcial mostram a dependência da resposta alvo prevista em um conjunto de atributos de entrada de interesse. Eles são marginalizados em relação aos valores de todos os outros atributos de entrada e são chamados de atributos do complemento. Intuitivamente, você pode interpretar a dependência parcial como a resposta alvo, que é esperada como uma função para cada atributo de entrada de interesse.

Esquema para o arquivo de análise

Os valores do PDP são armazenados na seção explanations do arquivo de análise sob o método pdp. Os parâmetros para explanations são o seguinte:

  • explanations: A seção dos arquivos de análise que contêm os resultados da análise de importância do atributo.

    • pdp: A seção do arquivo de análise que contém uma matriz de explicações do PDP para uma única instância. Cada elemento da matriz tem os seguintes membros:

      • feature_name: O nome do cabeçalho dos atributos fornecidos pela configuração dos headers.

      • data_type: O tipo de atributo inferido pelo trabalho de processamento do SageMaker Clarify. Os valores válidos para data_type incluem valores numéricos e categóricos.

      • feature_values: Contém os valores presentes no atributo. Se o data_type inferido pelo SageMaker Clarify for categórico, o feature_values conterá todos os valores exclusivos que o atributo poderia ter. Se o data_type inferido pelo SageMaker Clarify for numérico, o feature_values conterá uma lista do valor central dos buckets gerados. O parâmetro grid_resolution determina o número de buckets usados para agrupar os valores da coluna de atributos.

      • data_distribution: Uma matriz de porcentagens, em que cada valor é a porcentagem de instâncias que um bucket contém. O parâmetro grid_resolution determina o número de buckets. Os valores da coluna de atributos são agrupados nesses buckets.

      • model_predictions: Uma matriz de predições de modelo, em que cada elemento da matriz é uma matriz de predições que corresponde a uma classe na saída do modelo.

        label_headers: Os cabeçalhos dos rótulos fornecidos pela configuração label_headers.

      • error: Uma mensagem de erro gerada se os valores do PDP não forem calculados por um motivo específico. Essa mensagem de erro substitui o conteúdo contido nos campos feature_values, data_distributions emodel_predictions.

Veja a seguir um exemplo de saída de um arquivo de análise contendo um resultado de análise do 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"] }, ... ] } }

Relatório de análise do PDP

Você pode gerar um relatório de análise contendo um gráfico do PDP para cada atributo. O gráfico do PDP traça feature_values ao longo do eixo x e traça model_predictions ao longo do eixo y. Para modelos de várias classes, model_predictions é uma matriz, e cada elemento dessa matriz corresponde a uma das classes de predição de modelo.

A seguir está um exemplo de gráfico do PDP para o atributo Age. No exemplo de saída, o PDP mostra o número de valores de atributos que são agrupados nos buckets. O número de buckets é determinado por grid_resolution. Os buckets de valores de atributos são representados de acordo com as predições de modelo. Neste exemplo, os valores mais altos do atributo têm os mesmos valores de predição de modelo.

Gráfico de linhas mostrando como as predições de modelo variam de acordo com feature_values para 10 pontos de grade exclusivos.

Valores assimétricos de Shapley

Os trabalhos de processamento do SageMaker Clarify usam o algoritmo de valor assimétrico de Shapley para calcular as atribuições de explicação do modelo de previsão de séries temporais. Esse algoritmo determina a contribuição dos atributos de entrada em cada intervalo temporal até às predições feitas.

Esquema para o arquivo de análise de valores assimétricos de Shapley

Os resultados do valor assimétrico de Shapley são armazenados em um bucket do Amazon S3. Você pode encontrar a localização desse bucket na seção de explicações do arquivo de análise. A seção contém os resultados da análise de importância do atributo. Os parâmetros a seguir estão incluídos no arquivo de análise de valores assimétricos de Shapley.

  • asymmetric_shapley_value: A seção do arquivo de análise que contém metadados sobre os resultados do trabalho de explicação, incluindo o seguinte:

    • explanation_results_path: A localização do Amazon S3 com os resultados da explicação

    • direction: A configuração fornecida pelo usuário para o valor de configuração de direction

    • granularity: A configuração fornecida pelo usuário para o valor de configuração de granularity

O trecho a seguir mostra os parâmetros mencionados anteriormente em um exemplo de arquivo de análise:

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

As seções a seguir descrevem como a estrutura dos resultados da explicação depende do valor de granularity na configuração.

Granularidade de tempo

Quando a granularidade for timewise, a saída é representada na estrutura a seguir. O valor scores representa a atribuição de cada registro de data e hora. O valor offset representa a predição de modelo sobre os dados da linha de base e descreve o comportamento dele quando ele não recebe dados.

O trecho a seguir mostra um exemplo de saída para um modelo que faz predições para dois intervalos de tempo. Portanto, todas as atribuições são uma lista de dois elementos em que a primeira entrada se refere ao primeiro intervalo de tempo previsto.

{ "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]}, ] }

Granularidade refinada

O exemplo a seguir demonstra os resultados da atribuição quando a granularidade é fine_grained O valor offset tem o mesmo significado descrito na seção anterior. As atribuições são calculadas para cada atributo de entrada em cada timestamp para uma série temporal de destino e uma série temporal relacionada, se houver, e para cada covariável estática, se disponível.

{ "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]}, ] }

Para os casos de uso de timewise e fine-grained, os resultados são armazenados no formato JSON Lines (.jsonl).