The mathematics behind Shapley Values

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 มี.ค. 2023
  • Shapley values are a fair way to divide the value of a game amongst its players. We explain the mathematics behind the Shapley value formula. To understand why it is fair, we also discuss the Shapley value axioms that the formula is derived from. The formula may seem scary but you will find it has an intuitive explanation.
    *NOTE*: You will now get the XAI course for free if you sign up (not the SHAP course)
    SHAP course: adataodyssey.com/courses/shap...
    XAI course: adataodyssey.com/courses/xai-...
    Newsletter signup: mailchi.mp/40909011987b/signup
    Read the companion article (no-paywall link): towardsdatascience.com/from-s...
    Medium: / conorosullyds
    Twitter: / conorosullyds
    Mastodon: sigmoid.social/@conorosully
    Website: adataodyssey.com/

ความคิดเห็น • 59

  • @adataodyssey
    @adataodyssey  3 หลายเดือนก่อน

    *NOTE*: You will now get the XAI course for free if you sign up (not the SHAP course)
    SHAP course: adataodyssey.com/courses/shap-with-python/
    XAI course: adataodyssey.com/courses/xai-with-python/
    Newsletter signup: mailchi.mp/40909011987b/signup

  • @santizdr
    @santizdr 22 ชั่วโมงที่ผ่านมา

    Best channel to dig deep into XAI.
    It would be great a video about the state of art of XAI applied on LLMs.

  • @HenryCagnini
    @HenryCagnini 3 หลายเดือนก่อน +1

    That's a great video to explain the concept of Shapley values. Many thanks!

    • @adataodyssey
      @adataodyssey  3 หลายเดือนก่อน

      Thanks Henry! I’m glad you found it useful :)

  • @abstractqqq
    @abstractqqq 11 หลายเดือนก่อน +9

    Good job sir. Very few in the ML (industry) will go this deep. Seeing more like-minded people always feel great.

    • @adataodyssey
      @adataodyssey  11 หลายเดือนก่อน +1

      Thank you! I always feel a bit uncomfortable if I don't have some sort of an understanding of the theory :)

  • @mugiwxrx6282
    @mugiwxrx6282 10 หลายเดือนก่อน +1

    thank you sir, that seems more clear in my mind !

    • @adataodyssey
      @adataodyssey  10 หลายเดือนก่อน

      I’m glad it helped!

  • @umarkhan-hu7yt
    @umarkhan-hu7yt 2 หลายเดือนก่อน

    Dear Odyssey you are doing great. Keep continue and hit hard on all XAI models for a layman.

    • @adataodyssey
      @adataodyssey  2 หลายเดือนก่อน

      Thank you Umar! Will do :)

  • @shadmohammed618
    @shadmohammed618 3 หลายเดือนก่อน

    Great explanation, thanks very much. 🙂

    • @adataodyssey
      @adataodyssey  3 หลายเดือนก่อน

      No problem Shad! I’m glad you found it useful

  • @v-ba
    @v-ba 11 วันที่ผ่านมา

    Great explanation, thank you very much

  • @miguelgarciaortegon
    @miguelgarciaortegon 2 หลายเดือนก่อน

    Great explanation, thank you!

    • @adataodyssey
      @adataodyssey  2 หลายเดือนก่อน +1

      I'm glad you found it useful Miguel :)

  • @silver_soul98
    @silver_soul98 2 หลายเดือนก่อน

    Bro that was a nice explanation. thanks so much.

    • @adataodyssey
      @adataodyssey  2 หลายเดือนก่อน

      No problem :) I’m glad it was useful

  • @elenagolovach384
    @elenagolovach384 10 หลายเดือนก่อน

    Thanks very much

    • @adataodyssey
      @adataodyssey  10 หลายเดือนก่อน

      No problem, Elena!

  • @lakshman587
    @lakshman587 6 หลายเดือนก่อน

    The time machine thing really got me hahaha!!
    I was wondering how can individual values be calculated!!
    Thanks for clear explanation!!

    • @adataodyssey
      @adataodyssey  6 หลายเดือนก่อน +1

      No problem Lakshman! Are there any other related concepts you're interested in learning about?

    • @lakshman587
      @lakshman587 6 หลายเดือนก่อน

      @@adataodyssey I would like to learn about ChatGPT like how transformers work.

    • @adataodyssey
      @adataodyssey  6 หลายเดือนก่อน +1

      @@lakshman587 This is a bit out of my comfort zone tbh. My content is more aimed towards computer vision and explainable AI. I was considering doing a tutorial on how you can use the GPT API though!

    • @lakshman587
      @lakshman587 6 หลายเดือนก่อน

      @@adataodyssey Ok No problem, can we have a video about how diverse counterfacuals work under the hood, we currently are using DiCE package from interpretml repo.
      I would like to know how these counterfacuals are getting generated!

    • @adataodyssey
      @adataodyssey  6 หลายเดือนก่อน +1

      @@lakshman587 will look into that!

  • @smithanair787
    @smithanair787 ปีที่แล้ว +2

    Great video! Can you make a video on how exactly the Kernel SHAP and TreeSHAP works?

    • @adataodyssey
      @adataodyssey  ปีที่แล้ว +1

      Thank you Smitha! I will consider that. But, to be honest, it will take me some time to fully understand the algorithms first.

    • @smithanair787
      @smithanair787 ปีที่แล้ว

      @@adataodyssey Thank you!

    • @adataodyssey
      @adataodyssey  ปีที่แล้ว

      @@smithanair787 by the way, the course goes into a bit more detail on the difference between kernelSHAP and treeSHAP. Otherwise you might find this article helpful: towardsdatascience.com/kernelshap-vs-treeshap-e00f3b3a27db

  • @hasnainayub2369
    @hasnainayub2369 3 หลายเดือนก่อน

    Great explanation! I have a question though. Why don't the shap values for each feature (from the waterfall plot) add up to the predicted output at that particular observation?

    • @adataodyssey
      @adataodyssey  3 หลายเดือนก่อน

      They do if you also add the average prediction across all the instances in the dataset:
      f(x) = E[f(x)] + sum(shap values)
      You can see the average prediction, i.e. E[f(x)], on the bottom of the waterfall plot :)

    • @hasnainayub2369
      @hasnainayub2369 3 หลายเดือนก่อน

      Got it ! Thanks mate @@adataodyssey

  • @Empobaer
    @Empobaer ปีที่แล้ว +3

    Great video, formula was well explained! Though, I do have a question. What is the Intuition behind P(C1-C0) = 2/6 at 7:11 ? Because intuitively I would have thought there is only one way how player 1 can start its new coalition and thus I would have thought the weight should be 1/6. I see that if we look into the formula on how to calculate the weights, we obtain (p-|S|-1)!=2 and thus (1*2)/6=1/3, but I still miss the intuition behind why we need the (p-|Sl-1)!. Where am I thinking wrong?

    • @adataodyssey
      @adataodyssey  ปีที่แล้ว +1

      Great question! Keep in mind that to receive the full value of the game all 3 players need to participate. So, after P1 joins, there are 2 ways for the full coalition to form -- P2 joins then P3 or P3 joins then P2. In other words, there will be 2 scenarios where P1 makes a marginal contribution to a team of no players. Does that make sense?

    • @adataodyssey
      @adataodyssey  ปีที่แล้ว +1

      If not, then this article may help. It calculates the values in a slightly different way which may be more intuitive to you.
      www.analyticsvidhya.com/blog/2019/11/shapley-value-machine-learning-interpretability-game-theory/

    • @Empobaer
      @Empobaer ปีที่แล้ว

      ​@@adataodyssey Thank you for your fast reply, indeed the blog post was very useful for an intuitive understanding! Anyways your series on SHAP and Shapley values was a very helpful introduction. Now I only need to fully understand Kernel SHAP, which will probably take a bit longer :)!

  • @yelancho
    @yelancho หลายเดือนก่อน

    Appreciate a lot Prof Odyssey!Shaply values is now a more clear concept in my mind!

    • @adataodyssey
      @adataodyssey  หลายเดือนก่อน +1

      Thanks Ye! I'm glad you found it useful :)

  • @adityababel3998
    @adityababel3998 7 หลายเดือนก่อน

    Hello, can you make a video explaining the calculation of TreeSHAP??

    • @adataodyssey
      @adataodyssey  7 หลายเดือนก่อน

      Hi Aditya, this is already on my list of videos to do! I want to make a video about both Kernel SHAP and tree SHAP that go more in-depth into the algorithms.

  • @dennisestenson7820
    @dennisestenson7820 6 หลายเดือนก่อน +1

    I really don't like that this subject is presented and studied as "games" when the underlying math is so incredibly enlightening and important.

    • @adataodyssey
      @adataodyssey  6 หลายเดือนก่อน +5

      This is a term that comes from "game theory". Rest assured that the "games" it deals with are very serious! Perhaps the example I've chosen is a bit silly but I was hoping that it would help the target audience relate to the concepts :)

  • @QuantizedFields
    @QuantizedFields 7 หลายเดือนก่อน

    This is a very good explanation. However, I found it a bit confusing when you were referring to "Player-1" as "You". Because it is not clear who I am from the animation, am I "Player-1" or "Player-2" ? It would be better if you simply refer to the animation/picture and say "Player-1" or "Player-2" instead of "You". Thanks for your great work!

    • @adataodyssey
      @adataodyssey  7 หลายเดือนก่อน

      Thanks for the input Daniya! When it comes to technical content, it is difficult to strike a balance between making it interesting and easy to understand. My goal was to get the audience engaged but I see how this can be confusing.

  • @abdelbaki8625
    @abdelbaki8625 10 วันที่ผ่านมา

    what is the article reference for this information i need it for my studies emergency, please

    • @adataodyssey
      @adataodyssey  8 วันที่ผ่านมา

      th-cam.com/users/redirect?event=video_description&redir_token=QUFFLUhqbktFYXFNVHVzc3NsTWpaYkc4Y3l3alZ0N3dmZ3xBQ3Jtc0trX2c3WmlOUVQwYW1USmJsaDh4YnpLV191dk5tOEdnOUtnVF9vZm5BbG8yTmRTaU56RXZNSE12Nkh2MjRITUZSLUZINUNPWmM3WFRlbnVGZWlscDFLZnFOZy1Xb0JiYm1RMnlQbVU2MEJ4R0hoUmJxMA&q=https%3A%2F%2Ftowardsdatascience.com%2Ffrom-shapley-to-shap-understanding-the-math-e7155414213b%3Fsk%3D329a1f042a0167162487f7bb3f0ffd46&v=UJeu29wq7d0

  • @TheOzpad
    @TheOzpad ปีที่แล้ว +1

    Lekker vid

  • @mathieucordier9248
    @mathieucordier9248 8 หลายเดือนก่อน

    Does Shap Value is adapted for imbalanced data set ? Because one assumption is that we consider equality of chance for players combination (at 6:00).

    • @adataodyssey
      @adataodyssey  8 หลายเดือนก่อน

      That's a good question! I haven't really thought about that.
      In ML we don't assume equal chance for all feature values. We use the empirical distributions of the features. So you don't have to worry about that assumption for unbalanced features.
      For unbalanced targets, I'd say you should be fine as long as the model is still making accurate predictions. E.g. if it is always predicting one class then the SHAP values won't be meaningful.

  • @hasnainayub2369
    @hasnainayub2369 3 หลายเดือนก่อน

    Could you please explain P(C1-C0) = 1/3 ? (at 7:12). The rest is very well explained.

    • @adataodyssey
      @adataodyssey  3 หลายเดือนก่อน

      Remember, to get the prize money all players must eventually join the coalition. So, there are 2 ways that P1 can contribute to a coalition with no players (i.e. C0):
      - P1 joins then P2 then P3
      - P1 joins the P3 then P2
      So they make the marginal contribution C1 - C0 in 2/6 = 1/3 ways the coalition of 3 players can form.

    • @hasnainayub2369
      @hasnainayub2369 3 หลายเดือนก่อน

      @@adataodyssey thank you so much ! How did i not see that :/

    • @adataodyssey
      @adataodyssey  3 หลายเดือนก่อน

      @@hasnainayub2369 don't stress! It took me forever to understand

  • @cheeseybox
    @cheeseybox 6 หลายเดือนก่อน

    Ur a legend

    • @adataodyssey
      @adataodyssey  6 หลายเดือนก่อน

      Coming from you cheese vision, I take that as a great compliment!

  • @abdelbaki8625
    @abdelbaki8625 11 วันที่ผ่านมา +1

    I don't understand

  • @seanjohn6956
    @seanjohn6956 หลายเดือนก่อน

    just stick to the explanations no need for the jarring adlibs

    • @adataodyssey
      @adataodyssey  หลายเดือนก่อน

      That's boring...