SHAP values for beginners | What they mean and their applications
HTML-код
- Опубликовано: 22 авг 2024
- SHAP is the most powerful Python package for understanding and debugging your machine-learning models. We learn to interpret SHAP values for both continuous and binary target variables. We also explore the applications of SHAP. This includes debugging models, providing human-friendly
explanations and data exploration.
NOTE: SHAP course is no longer free but you will still get the XAI course for free :)
SHAP course: adataodyssey.c...
XAI course: adataodyssey.c...
Newsletter signup: mailchi.mp/409...
Using SHAP to Debug a PyTorch Image Regression Model (no-paywall link): towardsdatasci...
Medium: / conorosullyds
Twitter: / conorosullyds
Mastodon: sigmoid.social...
Website: adataodyssey.com/
NOTE: SHAP course is no longer free but you will still get the XAI course for free :)
SHAP course: adataodyssey.com/courses/shap-with-python/
XAI course: adataodyssey.com/courses/xai-with-python/
Newsletter signup: mailchi.mp/40909011987b/signup
This is a very clear video about shap!!
Love to see a fellow South African in this line of work!
Howzit! Will keep the videos coming :)
@@adataodyssey Sweet! I followed you on linkedin for any other posts outside of RUclips. I was just curious, how does Ireland's grading system work for masters, I see you have a 1.1. I have no idea what that means having only studied in SA lol :P
@@fouried96 that's 75% or above. They don't distinguish beyond that. The Irish are not so big on grading :D
@@adataodysseyCongrats! I am busy following this SHAP series. I'm looking to find the best features for this kaggle comp for a multiclass classification problem where I'm using XGBoost. I was wondering, are you on Kaggle?
Excellent explanation, just what I needed. Thank you.
I’m glad you found it useful, Innocent :)
Hey Amazing explanation , I wanted to know more about the interpretation of SHAP Summary plot in terms of Survial Analysis
Thanks Aakriti! I don't know anything about survival analysis I'm afraid... If you are building models using well know packages (e.g. sklearn, XGBoost) then you should be able to use SHAP. I have this video on the more technical coding details. Let me know if that helps!
ruclips.net/video/L8_sVRhBDLU/видео.html
wonderful explanation.
Thank you for the kind comment!
Excellent video ❤❤❤❤❤❤
Thank you ☺️ I’m glad it could help
This is awesome!
Thanks!
Shap means something a little different in South Africa. Love the content though👍🏼
Haha shap shap bra!
Very well explained! I have a question regarding SHAP dependency plots. On the right-Y axis, SHAP selects a particular interacting feature by default and I know we can manually change the interacting feature. Does the default selection by SHAP explainer tell us that that particular feature is the feature that interacts with the main feature the MOST as compared to other features? In other words, can we say that the main feature depends on (or interact with) the default interacting feature while making predictions?
Yes, I wasn't aware of this but it seems like it is true:
shap-lrjball.readthedocs.io/en/latest/example_notebooks/plots/dependence_plot.html
Does it have to be about prediction?
I just want to understand which features/independent variables are most important when my independent variables are highly correlated. I've heard people talking about "contribution".
No, you can also interpret a model used for analysis. In ML, when we say "prediction" we mean the output of the model. We use this term even if we are not trying to predict the future.
Hello. Thanks for the tutorial. Regarding your XAI and SHAP courses, is there an order to how we should take the courses. Should we take the XAI before SHAP or vice versa. Thanks
No problem! It is better to take XAI first then SHAP. XAI covers more of the basics in the field and other useful model agnostic methods. But the SHAP course still gives some basics so it is not necessary to do the entire XAI course (or even any of it) if all you care about it learning SHAP :)
@@adataodysseyAwesome. Thank you.
Can you make a video on how recruitment decision is made?
Do you mean how automated decisions are made or decisions for data scientists in general?
If I have one hot encoded on the categorical values, How should I know which main features are contributing ?
This is a great question! You have two options (see the articles below). Either you can add up the SHAP values for the individual one-hot encodings or use CatBoost. I also go over these concepts in more detail in my course.
towardsdatascience.com/shap-for-categorical-features-7c63e6a554ea?sk=2eca9ff9d28d1c8bfde82f6784bdba19
towardsdatascience.com/shap-for-categorical-features-with-catboost-8315e14dac1?sk=ef720159150a19b111d8740ab0bbac6d
How can we determine which interpretable models are appropriate for our deep learning models? For example, I have a CNN model for Malaria prediction, however, I am unsure whether LIME or SHAP is a better tool for interpreting my model. Could you please guide me through this situation?
For deep learning, you might want to look into a model specific method such as gradcam. Are you using images or tabular data?
If you are using tabular data, I would change the model to XGBoost or random forest. Then use both LIME and SHAP. There are also other methods like ALEs, PDPs, ICE Plots and Freedman's H-statistic. It is also a good idea to use multiple methods.
Thank you for your reply. @@adataodyssey
I want to be able to understand how the features affect the predictions along a 2D curve where the points are sequential, but it seems SHAP is only useful when there’s a single prediction not a curve :(
You could try using PDPs or ICE Plots for this. Or aggregate SHAP values using a dependence plot
Can this method be applied in multilabel classification?
Yes! I have a video on this exact topic: ruclips.net/video/2xlgOu22YgE/видео.html&lc=UgwSqpAiiG_ho6hDqDd4AaABAg
👏
Can shap value used for feature selection?
Yes! You can use the mean SHAP plot. I discuss it in this video: ruclips.net/video/L8_sVRhBDLU/видео.html
@@adataodyssey Thank you for your answer. I have another question, what is the difference between using SHAP values compared to using feature importance for feature selection? Does using SHAP values improve the model's performance more?
Jumping between what you are explaining and yourself is distracting
Thanks for the feedback!