Saltar al contenido principal Saltar al contenido complementario

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.

SHAP dataset sample
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
Coordinate SHAP dataset sample
AccountIDautoml_featureSHAP_value
aa16889AdditionalFeatureSpend1.76830971241
aa16889Churned-0.58154511451721
aa16889CurrentPeriodUsage-1.106874704361
aa16889HasRenewed-0.36080026626587
aa16889NumberOfPenalties3.6597540378571
aa33396AdditionalFeatureSpend0.80359643697739
aa33396Churned-0.64805734157562
aa33396CurrentPeriodUsage0.076582334935665
aa33396HasRenewed0.38967734575272
aa33396NumberOfPenalties-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í:

Single record from a dataset on which predictions will be generated
AccountIDAdditionalFeatureSpendBaseFeeCurrentPeriodUsageHasRenewedNumberOfPenalties
aa1688918 33.52210.1yes4

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í:

Sample from coordinate SHAP dataset for binary classification model prediction
AccountIDautoml_featureSHAP_value
aa16889AdditionalFeatureSpend-0.049129267835076
aa16889BaseFee-1.5363064624041
aa16889CurrentPeriodUsage0.10787960191299
aa16889HasRenewed1.2441783315923
aa16889NumberOfPenalties2.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í:

Sample from coordinate SHAP dataset for multiclass classification model prediction
AccountIDautoml_featurePredicted_classSHAP_value
aa16889AdditionalFeatureSpendBlue Plan0.004155414339679
aa16889AdditionalFeatureSpendGreen Plan0.0066376343942741
aa16889AdditionalFeatureSpendPurple Plan-0.014411468558894
aa16889AdditionalFeatureSpendRed Plan0.003618419824941
aa16889BaseFeeBlue Plan0.089301017079318
aa16889BaseFeeGreen Plan0.28876498452748
aa16889BaseFeePurple Plan0.055689421438434
aa16889BaseFeeRed Plan-0.43375542304524
aa16889CurrentPeriodUsageBlue Plan-0.0040098954629816
aa16889CurrentPeriodUsageGreen Plan-0.27902537442842
aa16889CurrentPeriodUsagePurple Plan-0.21871561841248
aa16889CurrentPeriodUsageRed Plan0.50175088830388
aa16889HasRenewedBlue Plan-0.011878031228962
aa16889HasRenewedGreen Plan0.036835618725654
aa16889HasRenewedPurple Plan0.13798314881109
aa16889HasRenewedRed Plan-0.16294073630778
aa16889NumberOfPenaltiesBlue Plan0.20519095034486
aa16889NumberOfPenaltiesGreen Plan0.0015682625647107
aa16889NumberOfPenaltiesPurple Plan-0.084355421853302
aa16889NumberOfPenaltiesRed 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

Algoritmos disponibles por tipo de modelo y método de cálculo SHAP
AlgoritmoTipos de modelos admitidosMétodo de cálculo de SHAP
Clasificación Random Forest Clasificación binaria, clasificación multiclaseÁrbol SHAP
Clasificación XGBoostClasificación binaria, clasificación multiclaseÁrbol SHAP
Clasificación LightGBMClasificación binaria, clasificación multiclaseÁrbol SHAP
Clasificación CatboostClasificación binaria, clasificación multiclaseÁrbol SHAP
Regresión logísticaClasificación binaria, clasificación multiclaseSHAP lineal
Regresión de lazoClasificación binaria, clasificación multiclaseSHAP lineal
Regresión neta elásticaClasificación binaria, clasificación multiclaseSHAP lineal
Naive Bayes gausianoClasificación binaria, clasificación multiclaseSHAP no calculado
Regresión CatboostRegresiónÁrbol SHAP
Regresión LightGBMRegresiónÁrbol SHAP
Regresión linealRegresiónSHAP lineal
Regresión Random ForestRegresiónÁrbol SHAP
Regresión SGDRegresiónSHAP lineal
Regresión XGBoostRegresiónÁrbol SHAP

Más información

¿Esta página le ha sido útil?

No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.