# Explanation of how DeepExplainer works to obtain SHAP values in simple terms

I have been using DeepExplainer (DE) to obtain the approximate SHAP values for my MLP model. I am following https://github.com/slundberg/shap and DE's performance is very high in terms of computation time.

Now I'd like learn the logic behind DE more. From the paper (https://arxiv.org/pdf/1704.02685.pdf) it is not clear to me how SHAP values are gotten. I see that a background sample set is given and an expected model output is calculated based on this data and the difference is calculated with the current model's output. This difference is the sum of the SHAP values. However, I don't understand how each contribution is obtained? Could you give an explanation with simple terms?

Many thanks in advance!

• Deeplift and Shapley values run in the backend which get derived pretty much like a coalitional game. Have you gone through this (en.wikipedia.org/wiki/Shapley_value)? – Random Nerd Aug 30 '19 at 12:48

$$\varphi_i(v) = \frac{1}{\text{number of players}} \sum_{\text{coalitions excluding }i} \frac{\text{marginal contribution of }i\text{ to coalition}}{\text{number of coalitions excluding } i \text{ of this size}}$$
Basically beacuse the number of coalitions excluding i grows in complexity with $$\sum_{k=1}^{n-1} k!$$, where n is the number of variables. Some progresses has been made in the direction of evaluating this sum with Monte-Carlo techniques (as mentionned in https://christophm.github.io/interpretable-ml-book/), but those calculations are still intensive.