So I am generating a shap summary plot like so:
explainer = shap.KernelExplainer(model, X_test[:100,:])
shap_values = explainer.shap_values(X_test[:100,:])
fig = shap.summary_plot(shap_values, features=X_test[:100,:], feature_names=feature_names, show=False)
plt.savefig('test.png')
This works okay and creates a plot that looks like:
This looks okay but there is a couple problems. From reading up on shap summary_plots i frequently see ones that look like this:
As you can see - this looks a bit different from mine. Based on the text at the bottom of both summary_plots it looks like mine is showing the average shap value for each features whereas the ones i see online are just showing each individual data point for each feature - in other words the ones i see online appear more granular.
How can i create a summary_plot that does not show the average impact for each feature but just each data point? I figured there must be a boolean param to summary_plot() like use_average or something but can't find anything.
Also, as you can see on my summary_plot - only 20 features are being included on the y axis. My model actually has around 100 features and I would like to include all of them in the summary_plot if possible. I figured shap defaults to showing 20 but am hoping there is a way to increase this number.

