Generar conjuntos de datos SHAP durante las predicciones
Se pueden generar conjuntos de datos de importancia de SHAP cuando se ejecuta una predicción. Puede utilizar los cálculos SHAP en estos conjuntos de datos para comprender qué características contribuyen más importante a los valores pronosticados.
Los conjuntos de datos SHAP contienen los cálculos SHAP a nivel de fila para las funciones utilizadas para entrenar el modelo. Estos valores representan cuánto contribuye cada característica al valor previsto del objetivo, dadas todas las demás características de esa fila.
Por ejemplo, la importancia de SHAP puede decirnos si una característica hace que un cliente sea más o menos propenso a abandonar y con qué fuerza influye en ese resultado.
Cuando haya ejecutado su predicción y generado los conjuntos de datos, puede cargar los valores SHAP en una app de Qlik Sense y visualizarlos junto con los valores predichos. Para más detalles, vea Visualizar valores de SHAP en apps de Qlik Sense y Utilización de los valores SHAP en aplicaciones reales
Este tema de ayuda se centra en la generación de conjuntos de datos SHAP durante las predicciones mediante implementaciones de ML. Para obtener información sobre los gráficos de importancia de SHAP que se muestran durante el entrenamiento del experimento, consulte Comprensión de la importancia de SHAP en el entrenamiento de experimentos.
Opciones disponibles para generar conjuntos de datos SHAP
Al configurar una predicción, puede optar por generar conjuntos de datos SHAP en dos formatos diferentes. Ambas opciones proporcionan la misma información, pero está estructurada de diferentes maneras.
SHAP
Este es un conjunto de datos en el que los valores SHAP están separados en una columna para cada característica. Esta opción no está disponible para modelos de clasificación multiclase.
SHAP de coordenadas
Este es un conjunto de datos en el que todos los valores SHAP están estructurados para estar contenidos en solo dos columnas: una columna de "característica" y una columna de "valor". Esta opción está disponible para todos los tipos de modelos.
Los conjuntos de datos de modelos multiclase funcionan de manera ligeramente diferente en comparación con los conjuntos de datos de modelos binarios. Por cada registro que se va a predecir, se crea una nueva fila con el valor SHAP para cada clase posible disponible para predecir mediante el modelo. En el conjunto de datos, también se crea una columna adicional para identificar la clase que representa el valor SHAP.
Al cargar predicciones y valores SHAP en una app de Qlik Sense y crear un modelo de datos, puede ser más fácil trabajar con conjuntos de datos SHAP coordinados que con conjuntos de datos SHAP.
Ejemplos
Las tablas siguientes contienen muestras de SHAP y conjuntos de datos SHAP coordinados, que se generaron a partir de un modelo de regresión entrenado en cinco características. Las muestras contienen valores SHAP para dos registros del conjunto de datos de aplicación (correspondientes a dos ID de cuenta).
Estos ejemplos resaltan la diferencia entre cómo se estructuran los datos.
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 |
Interpretación de los valores de predicción SHAP
A diferencia de los valores del gráfico de Importancia de SHAP que se muestra durante el entrenamiento del experimento, los conjuntos de datos de SHAP contienen cálculos de SHAP a nivel de fila que tienen direccionalidad. Es decir, no son valores absolutos, sino que pueden ser positivos o negativos. Al visualizar los valores en una aplicación, puede optar por agregarlos como valores absolutos, según su caso de uso.
El valor SHAP de un registro debe analizarse con respecto al valor previsto correspondiente para ese registro. Dependiendo del tipo de modelo (clasificación binaria, clasificación multiclase o regresión), la direccionalidad de los valores SHAP debe interpretarse de forma ligeramente diferente.
Modelos de clasificación
Con los modelos de clasificación binaria, los valores SHAP positivos grandes indican una mayor influencia hacia uno de los dos resultados posibles, y los valores muy negativos indican una mayor influencia hacia el otro resultado. Al utilizar los datos en una aplicación, es posible que la direccionalidad de los valores SHAP no permita el análisis que necesita. Para solucionar esto, puede invertir la dirección de los valores SHAP (por ejemplo, multiplicar toda la columna por -1). Para obtener más información sobre la verificación de dirección SHAP, consulte Preparativos.
Un conjunto de datos SHAP de un modelo multiclase está estructurado de manera diferente. Por cada registro que se ha de predecir, incluye una fila aparte para cada clase posible, junto con un valor SHAP correspondiente para esa clase. La clase se especifica en una columna "Predicted_class".
En su conjunto de datos SHAP de coordenadas, interprete los valores SHAP de las predicciones del modelo multiclase de la siguiente manera:
Un valor SHAP positivo alto indica que la característica tiene una mayor influencia para que el resultado sea la "Predicted_class" especificada.
Un valor SHAP negativo alto indica que la característica tiene una mayor influencia para que el resultado no sea la "Predicted_class" especificada.
Ejemplo
El siguiente ejemplo demuestra la diferencia en la estructura del conjunto de datos entre el resultado del modelo de clasificación binaria y multiclase.
Supongamos que comenzamos con un conjunto de datos de aplicación que contiene una fila por ID de cuenta. Cada característica en la que se entrena el modelo se representa como una columna aparte.
Un registro de ID de cuenta único se vería así:
AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
---|---|---|---|---|---|
aa16889 | 18 | 33.52 | 210.1 | yes | 4 |
Si entrenamos un modelo de clasificación binaria para predecir el resultado de un campo Churned (abandono de clientes), habrá dos resultados posibles: "sí" o "no". Según el registro de ID de cuenta única anterior, el conjunto de datos SHAP de coordenadas para este registro se vería así:
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 |
En la tabla anterior, se muestran los valores SHAP para una única ID de cuenta y están desglosados por característica. Se crea una nueva fila por cada característica y a cada característica se le asigna un valor SHAP. La dirección y magnitud de estos valores SHAP deben evaluarse en relación con los dos resultados posibles. Idealmente, cuanto mayor sea el valor SHAP, mayor será la influencia que tendrá la característica en el resultado con una interpretación positiva (en este caso, "sí"). Si, en cambio, se invierte esta representación, puede invertir la dirección de los valores SHAP (multiplicarlos por -1) para que el análisis sea más fácilmente interpretable.
A modo de comparación, digamos que entrenamos un modelo de clasificación multiclase para predecir un campo PlanType categórico (con cuatro resultados posibles: "Blue Plan", "Green Plan", "Purple Plan" y "Red Plan"). Según el registro de ID de cuenta única en la primera tabla, el conjunto de datos SHAP de coordenadas para este registro se vería así:
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 |
En la tabla anterior, un único ID de cuenta se representa con 20 filas separadas: una fila por cada característica, con una fila para el valor SHAP correspondiente a cada resultado posible en el objetivo. La columna Predicted_class representa el posible resultado (clase) que buscamos predecir, no necesariamente el resultado real previsto que se muestra en el conjunto de datos de predicción. En última instancia, la clase con el valor SHAP más alto se convierte en el valor previsto para el registro.
Los valores SHAP en esta tabla son medidas de la influencia que tiene la característica especificada (automl_feature) en el resultado que posiblemente sea la clase especificada (Predicted_class). Un valor positivo grande indica que la característica está influyendo fuertemente en que el resultado previsto sea la clase especificada, mientras que un valor negativo grande indica que la característica está influyendo fuertemente en que el resultado previsto no sea la clase especificada.
Modelos de regresión
En un conjunto de datos SHAP generado a partir de un modelo de regresión, la dirección de los valores SHAP es más sencilla de interpretar.
Un valor SHAP positivo corresponde a un aumento en el valor previsto para la fila.
Un valor SHAP negativo corresponde a una disminución en el valor previsto para la fila.
Calcular los valores de SHAP
Los valores SHAP se calculan para una variedad de algoritmos. La importancia de SHAP se calcula mediante dos métodos distintos:
Árbol SHAP: Un método rápido y exacto para estimar los valores SHAP de los modelos arbóreos
SHAP lineal: Un método para calcular los valores SHAP de los modelos lineales
Algoritmo | Tipos de modelos admitidos | Método de cálculo de SHAP |
---|---|---|
Clasificación Random Forest | Clasificación binaria, clasificación multiclase | Árbol SHAP |
Clasificación XGBoost | Clasificación binaria, clasificación multiclase | Árbol SHAP |
Clasificación LightGBM | Clasificación binaria, clasificación multiclase | Árbol SHAP |
Clasificación Catboost | Clasificación binaria, clasificación multiclase | Árbol SHAP |
Regresión logística | Clasificación binaria, clasificación multiclase | SHAP lineal |
Regresión de lazo | Clasificación binaria, clasificación multiclase | SHAP lineal |
Regresión neta elástica | Clasificación binaria, clasificación multiclase | SHAP lineal |
Naive Bayes gausiano | Clasificación binaria, clasificación multiclase | SHAP no calculado |
Regresión Catboost | Regresión | Árbol SHAP |
Regresión LightGBM | Regresión | Árbol SHAP |
Regresión lineal | Regresión | SHAP lineal |
Regresión Random Forest | Regresión | Árbol SHAP |
Regresión SGD | Regresión | SHAP lineal |
Regresión XGBoost | Regresión | Árbol SHAP |