Gerando conjuntos de dados SHAP durante previsões
Conjuntos de dados da importância de SHAP podem ser gerados quando você executa uma previsão. Você pode usar os cálculos SHAP nesses conjuntos de dados para entender quais recursos são os contribuintes mais importantes para os valores previstos.
Os conjuntos de dados SHAP contêm os cálculos SHAP em nível de linha para os recursos usados para treinar o modelo. Esses valores representam o quanto cada recurso contribui para o valor previsto do alvo, dados todos os outros recursos daquela linha.
Por exemplo, a importância do SHAP pode nos dizer se um recurso torna um cliente mais ou menos propenso a se desligar e quão fortemente isso influencia esse resultado.
Depois de executar sua previsão e gerar os conjuntos de dados, você pode carregar os valores SHAP em um aplicativo Qlik Sense e visualizá-los junto com os valores previstos. Para obter mais detalhes, consulte Visualizando valores SHAP em aplicativos Qlik Sense e Usando valores SHAP em aplicativos do mundo real
Este tópico de ajuda concentra-se na geração de conjuntos de dados SHAP durante previsões por implementações de ML. Para obter informações sobre os gráficos de importância de SHAP mostrados durante o treinamento experimental, consulte Entendendo a importância de SHAP no treinamento de experimento.
Opções disponíveis para gerar conjuntos de dados SHAP
Ao configurar uma previsão, você pode optar por gerar conjuntos de dados SHAP em dois formatos diferentes. Ambas as opções fornecem as mesmas informações, mas são estruturadas de maneiras diferentes.
SHAP
Este é um conjunto de dados no qual os valores SHAP são separados em uma coluna para cada recurso. Esta opção não está disponível para modelos de classificação multiclasse.
Coordenar SHAP
Este é um conjunto de dados no qual todos os valores SHAP são estruturados para estarem contidos em apenas duas colunas: uma coluna de 'recurso' e uma coluna de 'valor'. Esta opção está disponível para todos os tipos de modelo.
Os conjuntos de dados de modelos multiclasse funcionam de maneira um pouco diferente em comparação aos conjuntos de dados de modelos binários. Para cada registro a ser previsto, uma nova linha é criada com o valor SHAP para cada classe possível disponível para previsão pelo modelo. No conjunto de dados, uma coluna adicional também é criada para identificar a classe que o valor de SHAP representa.
Ao carregar previsões e valores SHAP em um aplicativo Qlik Sense e criar um modelo de dados, conjuntos de dados SHAP coordenados podem ser mais fáceis de trabalhar do que conjuntos de dados SHAP.
Exemplos
As tabelas a seguir contêm amostras de conjuntos de dados SHAP e coordenadas SHAP, que foram gerados a partir de um modelo de regressão treinado em cinco recursos. As amostras contêm valores de SHAP para dois registros do conjunto de dados de aplicação (correspondentes a dois IDs de conta).
Esses exemplos destacam a diferença entre como os dados são estruturados.
AccountID | AdditionalFeatureSpend_SHAP | Churned_SHAP | CurrentPeriodUsage_SHAP | HasRenewed_SHAP | NumberOfPenalties_SHAP |
---|---|---|---|---|---|
aa16889 | 1.76830971241 | -0.58154511451721 | -1.106874704361 | -0.36080026626587 | 3.6597540378571 |
aa33396 | 0.80359643697739 | -0.64805734157562 | 0.076582334935665 | 0.38967734575272 | -0.31007811427116 |
AccountID | automl_feature | SHAP_value |
---|---|---|
aa16889 | AdditionalFeatureSpend | 1.76830971241 |
aa16889 | Churned | -0.58154511451721 |
aa16889 | CurrentPeriodUsage | -1.106874704361 |
aa16889 | HasRenewed | -0.36080026626587 |
aa16889 | NumberOfPenalties | 3.6597540378571 |
aa33396 | AdditionalFeatureSpend | 0.80359643697739 |
aa33396 | Churned | -0.64805734157562 |
aa33396 | CurrentPeriodUsage | 0.076582334935665 |
aa33396 | HasRenewed | 0.38967734575272 |
aa33396 | NumberOfPenalties | -0.31007811427116 |
Interpretando valores de previsão SHAP
Ao contrário dos valores no gráfico Importância de SHAP mostrado durante o treinamento experimental, os conjuntos de dados SHAP contêm cálculos SHAP em nível de linha que possuem direcionalidade. Em outras palavras, não são valores absolutos, mas podem ser positivos ou negativos. Ao visualizar os valores em um aplicativo, você pode optar por agregá-los como valores absolutos, dependendo do seu caso de uso.
O valor de SHAP de um registro deve ser analisado em relação ao valor previsto correspondente para esse registro. Dependendo do tipo de modelo (classificação binária, classificação multiclasse ou regressão), a direcionalidade dos valores de SHAP deve ser interpretada de forma ligeiramente diferente.
Modelos de classificação
Com modelos de classificação binária, grandes valores positivos de SHAP indicam maior influência em relação a um dos dois resultados possíveis, e valores altamente negativos indicam maior influência em relação ao outro resultado. Ao usar os dados em um aplicativo, a direcionalidade dos valores de SHAP pode não permitir a análise necessária. Para resolver isso, você pode inverter a direção dos valores de SHAP (por exemplo, multiplicar a coluna inteira por -1). Para obter mais informações sobre a verificação de direção SHAP, consulte Preparações.
Um conjunto de dados SHAP de um modelo multiclasse é estruturado de maneira diferente. Para cada registro a ser previsto, ele inclui uma linha separada para cada classe possível, juntamente com um valor de SHAP correspondente para essa classe. A classe é especificada em uma coluna 'Predicted_class'.
Em seu conjunto de dados SHAP de coordenadas, interprete os valores SHAP das previsões do modelo multiclasse da seguinte maneira:
Um valor SHAP positivo alto indica que o recurso está tendo maior influência para que o resultado seja o 'Predicted_class' especificado.
Um valor SHAP negativo alto indica que o recurso está tendo maior influência para que o resultado não seja o 'Predicted_class' especificado.
Exemplo
O exemplo a seguir demonstra a diferença na estrutura do conjunto de dados entre a saída do modelo de classificação binária e multiclasse.
Digamos que começamos com um conjunto de dados de aplicação que contém uma linha por ID de conta. Cada recurso no qual o modelo é treinado é representado como uma coluna separada.
Um único registro de ID de conta ficaria assim:
AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
---|---|---|---|---|---|
aa16889 | 18 | 33.52 | 210.1 | yes | 4 |
Se treinarmos um modelo de classificação binária para prever o resultado de um campo Churned, haverá dois resultados possíveis: ‘sim’ ou ‘não’. Com base no registro de ID de conta única acima, o conjunto de dados SHAP de coordenadas para este registro seria assim:
AccountID | automl_feature | SHAP_value |
---|---|---|
aa16889 | AdditionalFeatureSpend | -0.049129267835076 |
aa16889 | BaseFee | -1.5363064624041 |
aa16889 | CurrentPeriodUsage | 0.10787960191299 |
aa16889 | HasRenewed | 1.2441783315923 |
aa16889 | NumberOfPenalties | 2.3803616183224 |
Na tabela acima, os valores de SHAP para um único ID de conta são exibidos e divididos por recurso. Uma nova linha é criada para cada recurso e cada recurso recebe um valor de SHAP. A direção e magnitude destes valores de SHAP devem ser avaliadas em relação aos dois resultados possíveis. Idealmente, quanto maior o valor de SHAP, maior será a influência que o recurso terá no resultado com uma interpretação positiva (neste caso, 'sim'). Se esta representação for invertida, você poderá inverter a direção dos valores de SHAP (multiplicá-los por -1) para tornar a análise mais facilmente interpretável.
Para comparação, digamos que treinamos um modelo de classificação multiclasse para prever um campo PlanType categórico (com quatro resultados possíveis - 'Blue Plan', 'Green Plan', 'Purple Plan' e 'Red Plan'). Com base no registro de ID de conta único na primeira tabela, o conjunto de dados SHAP de coordenadas para este registro seria assim:
AccountID | automl_feature | Predicted_class | SHAP_value |
---|---|---|---|
aa16889 | AdditionalFeatureSpend | Blue Plan | 0.004155414339679 |
aa16889 | AdditionalFeatureSpend | Green Plan | 0.0066376343942741 |
aa16889 | AdditionalFeatureSpend | Purple Plan | -0.014411468558894 |
aa16889 | AdditionalFeatureSpend | Red Plan | 0.003618419824941 |
aa16889 | BaseFee | Blue Plan | 0.089301017079318 |
aa16889 | BaseFee | Green Plan | 0.28876498452748 |
aa16889 | BaseFee | Purple Plan | 0.055689421438434 |
aa16889 | BaseFee | Red Plan | -0.43375542304524 |
aa16889 | CurrentPeriodUsage | Blue Plan | -0.0040098954629816 |
aa16889 | CurrentPeriodUsage | Green Plan | -0.27902537442842 |
aa16889 | CurrentPeriodUsage | Purple Plan | -0.21871561841248 |
aa16889 | CurrentPeriodUsage | Red Plan | 0.50175088830388 |
aa16889 | HasRenewed | Blue Plan | -0.011878031228962 |
aa16889 | HasRenewed | Green Plan | 0.036835618725654 |
aa16889 | HasRenewed | Purple Plan | 0.13798314881109 |
aa16889 | HasRenewed | Red Plan | -0.16294073630778 |
aa16889 | NumberOfPenalties | Blue Plan | 0.20519095034486 |
aa16889 | NumberOfPenalties | Green Plan | 0.0015682625647107 |
aa16889 | NumberOfPenalties | Purple Plan | -0.084355421853302 |
aa16889 | NumberOfPenalties | Red Plan | -0.12240379105627 |
Na tabela acima, um único ID de conta é representado com 20 linhas separadas: uma linha para cada recurso, com uma linha para o valor SHAP correspondente a cada resultado possível no destino. A coluna Predicted_class representa o resultado possível (classe) a ser previsto, não necessariamente o resultado previsto real exibido no conjunto de dados de previsão. Em última análise, a classe com o valor de SHAP mais alto torna-se o valor previsto para o registro.
Os valores SHAP nesta tabela são medidas da influência que o recurso especificado (automl_feature) está tendo no resultado, possivelmente sendo a classe especificada (Predicted_class). Um valor positivo grande indica que o recurso está influenciando fortemente o resultado previsto para ser a classe especificada, enquanto um valor negativo grande indica que o recurso está influenciando fortemente o resultado previsto para não ser a classe especificada.
Modelos de regressão
Em um conjunto de dados SHAP gerado a partir de um modelo de regressão, a direção dos valores de SHAP é mais simples de interpretar.
Um valor de SHAP positivo corresponde a um aumento no valor previsto para a linha.
Um valor SHAP negativo corresponde a uma diminuição no valor previsto para a linha.
Cálculo dos valores SHAP
Os valores SHAP são calculados para uma variedade de algoritmos. A SHAP importance é calculada usando dois métodos distintos.
SHAP em árvore: Um método rápido e exato para estimar valores SHAP para modelos de árvores
SHAP linear: Um método para calcular valores SHAP para modelos lineares
Algoritmo | Tipos de modelo compatíveis | Método de cálculo SHAP |
---|---|---|
Classificação por floresta aleatória | Classificação binária, classificação multiclasse | SHAP em árvore |
Classificação XGBoost | Classificação binária, classificação multiclasse | SHAP em árvore |
Classificação do LightGBM | Classificação binária, classificação multiclasse | SHAP em árvore |
Classificação Catboost | Classificação binária, classificação multiclasse | SHAP em árvore |
Regressão logística | Classificação binária, classificação multiclasse | SHAP linear |
Regressão lasso | Classificação binária, classificação multiclasse | SHAP linear |
Regressão de rede elástica | Classificação binária, classificação multiclasse | SHAP linear |
Gaussiano Naive Bayes | Classificação binária, classificação multiclasse | SHAP não calculado |
Regressão Catboost | Regressão | SHAP em árvore |
Regressão do LightGBM | Regressão | SHAP em árvore |
Regressão linear | Regressão | SHAP linear |
Regressão por floresta aleatória | Regressão | SHAP em árvore |
Regressão SGD | Regressão | SHAP linear |
Regressão XGBoost | Regressão | SHAP em árvore |