Comments (4)
Good questions!
- Equation 12 is a further simplification of Equation 11, and depending on what you pass as a background distribution dataset Kernel SHAP could use either approximation (at least as implemented here). Passing a background dataset with just a single sample does exactly what you guessed, it replaces all the features with a 0 in
z'
with the value from the passed background dataset sample, and leaves all the features with a 1 inz'
unchanged. If however you pass many samples then it repeats the process for each background dataset sample and then averages the resulting model outputs to get the expected model output over the samples. In practice you can weight the samples and so pass a set ofk
weighted medians rather than an entire dataset to speed up the process. - Thanks!!! That's a typo from a last-minute notational change I made. It should not be inverted. Fortunately we are still in the NIPS update period so I'll fix that.
from shap.
Okay, that makes sense!
Out of curiosity, what do you think is the best way to approach the "superpixels" simplified features used in the original LIME? Since there doesn't seem to be an obvious definition of what it means to take the "expected" superpixel over the distribution of possible superpixels. And it seems like there are arguments for either setting all of those pixels to the global pixel average, or else the pixel average within that superpixel. My suspicion is that the practical difference isn't dramatic, but I am curious if your intuitions on this problem cause you to lean in one direction or the other.
from shap.
Super pixels are tricky. The ideal would be if you built a conditional generative model that could impute arbitrary parts of an image conditioned on the rest. If you had this then you could draw samples from it and integrate over them without the independence assumption of Eq 11 or the linearity assumption of Eq 12.
In practice that would be computationally challenging and I have not seen anyone do that (since I don't focus on images I have not tried either). So given that as the ideal, I would say do whatever approximation to it that you prefer. I imputed with the average of the surrounding super pixels for my experiments and took that as the single reference value (no integration).
from shap.
This issue has been inactive for two years, so it's been automatically marked as 'stale'.
We value your input! If this issue is still relevant, please leave a comment below. This will remove the 'stale' label and keep it open.
If there's no activity in the next 90 days the issue will be closed.
from shap.
Related Issues (20)
- [Meta issue] Release 0.44.1 HOT 2
- shap installation failed; python version- 3.12.1 HOT 2
- MAINT: notebooks job intermittently failing on CI HOT 3
- ENH: Add Named Entity Recognition (NER) HOT 1
- AttributeError: 'Sequential' object has no attribute 'predict' HOT 1
- BUG: Python kernel crashes at importing SHAP
- Provided model function fails when applied to the provided data set.BUG: HOT 2
- BUG: AttributeError when using CatBoost with columns containing special characters
- BUG: Pytorch DeepExplainer SHAP explanations do not sum up to the model's output HOT 2
- BUG:
- BUG: NaN values created flattened Beeswarms HOT 1
- BUG: XGBRFRegressor invalid number of trees error with shap>=0.42 HOT 3
- BUG: TreeSHAP Interventional explanations segmentation fault HOT 3
- BUG: Problem of dimension during KernelExplainer HOT 6
- ENH: Not showing nan values on Beeswarm or violin plots
- BUG: Discrepancy among SHAP beeswarm and Seaborn swarmplots
- Intrepreting Siamese Network using SHAP values HOT 5
- ENH: Support SeLU activations for Tensorflow DeepExplainer
- BUG: AssertionError: The SHAP explanations do not sum up to the model's output HOT 1
- [Meta-issue] deprecation tracker for upcoming releases HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shap.