es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Shap: La barra de colores no se muestra en el gráfico de resumen.

Cuando se muestra summary_plot, la barra de colores no se muestra.

shap.summary_plot(shap_values, X_train)

Gráfico resumen

He intentado cambiar plot_size. Cuando el gráfico es más alto, la barra de colores aparece, pero es muy pequeña – no se ve como debería.

shap.summary_plot(shap_values, X_train, plot_size=0.7)

Gráfico resumen más alto

Aquí tienes un ejemplo de una barra de colores con el aspecto adecuado.

Gráfico resumen adecuado

¿Alguien sabe si esto se puede solucionar de alguna manera?

Cómo reproducir:

import pandas as pd
import shap
import sklearn
from sklearn.ensemble import RandomForestRegressor

# Un dataset clásico de precios de viviendas
X, y = shap.datasets.boston()

# Un modelo lineal simple
model = RandomForestRegressor(max_depth=6, random_state=0, n_estimators=10)
model.fit(X, y)
shap_values = shap.TreeExplainer(model).shap_values(X)
shap.summary_plot(shap_values, X)

En este caso, la barra de colores se muestra, pero es muy pequeña. He elegido este ejemplo para facilitar la recuperación de los datos.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Posible solución para el problema de la barra de color faltante o pequeña en el resumen gráfico del módulo shap:

    1. Intenta ajustar el tamaño de la figura usando el parámetro figsize en shap.summary_plot, por ejemplo, shap.summary_plot(shap_values, X_train, figsize=(8,6)). Esto puede permitir que se muestre una barra de color más grande.
    2. Establece el parámetro plot_type en 'bar' en lugar del valor predeterminado 'dot', por ejemplo, shap.summary_plot(shap_values, X_train, plot_type='bar'). Esto mostrará las magnitudes de los valores SHAP como barras verticales e incluirá una barra de color correspondiente en el lado derecho del gráfico.
    3. Utiliza el parámetro colorbar=True para forzar la visualización de una barra de color en todos los casos, por ejemplo, shap.summary_plot(shap_values, X_train, colorbar=True). Esto puede dar como resultado una barra de color pequeña, pero se puede combinar con otras soluciones, como ajustar el tamaño de la figura.

    Ten en cuenta que las soluciones anteriores no son necesariamente excluyentes entre sí y se pueden combinar según sea necesario para lograr el resultado de visualización deseado.

Comments are closed.