Shapley Value(夏普利值,沙普利值

夏普利值是一种衡量合作博弈中各个参与者对于整体胜利的贡献的方法。在合作博弈中,多个参与者共同合作,以实现共同的目标或获得共同的奖励。夏普利值的核心思想是根据每个参与者对于整个合作过程的贡献程度来分配奖励或收益。

夏普利值的计算方法是,对于参与者的每一种可能的加入顺序,计算该参与者加入后对于整个合作过程的贡献,然后将这些贡献值加权平均。这种加权平均的权重是参与者加入的顺序,即先加入的参与者对于最终结果的贡献程度更高。

夏普利值的优点在于,它可以准确地衡量每个参与者对于整个合作过程的贡献程度,从而实现公平地分配奖励或收益的目的。它被广泛应用于经济学、社会学、政治学等领域中。

计算方法

假设现在有三个人一起合作,分别是老板,工程师,打工仔

人员 赚的钱
老板 1
工程师 1
打工仔 0
老板+工程师 3
老板+打工仔 2
老板+工程师+打工仔 5
工程师+打工仔 2

那么老板的夏普利值怎么算呢

首先将可能有的序列都列出来,一共有 A 3 3 = 6 A^3_3=6 A33​=6种序列

序列 计算贡献 老板的边际贡献 权重 夏普利值
老板,工程师,打工仔
老板,打工仔,工程师
工程师,老板,打工仔
工程师,打工仔,老板
打工仔,工程师,老板
打工仔,老板,工程师

第二部分就是计算贡献了,由于我们是计算老板的夏普利值,我们关注老板就可以了,老板的贡献等于他之前的排序(包括他)的钱,减去他之前的排序(不包括他)的值,这样说的话可能有点难理解,但是举例子就好了,例如有序列{打工仔,工程师,老板},那么计算边际贡献就相当于

v ( 打工仔,工程师,老板 ) − v ( 打工仔,工程师 ) = 5 − 1 = 4 v(打工仔,工程师,老板)-v(打工仔,工程师)=5-1=4 v(打工仔,工程师,老板)−v(打工仔,工程师)=5−1=4

所以我们有

序列 计算贡献 老板的边际贡献 权重 夏普利值
老板,工程师,打工仔 v(老板) 1 1/6
老板,打工仔,工程师 v(老板) 1 1/6
工程师,老板,打工仔 v(工程师,老板)-v(老板) 3-1=2 1/6
工程师,打工仔,老板 v(工程师,打工仔,老板)-v(工程师,打工仔) 5-2=3 1/6
打工仔,工程师,老板 v(打工仔,工程师,老板)-v(打工仔,工程师) 5-2=3 1/6
打工仔,老板,工程师 v(打工仔,老板)-v(打工仔) 2-1=1 1/6

夏普利值的计算就使用下面的公式计算

夏普利值 = 老板的边际贡献 ∗ 权重 夏普利值=老板的边际贡献*权重 夏普利值=老板的边际贡献∗权重

这里的老板的夏普利值为

1 6 + 1 6 + 2 6 + 3 6 + 3 6 + 1 6 = 11 6 \frac{1}{6}+\frac{1}{6}+\frac{2}{6}+\frac{3}{6}+\frac{3}{6}+\frac{1}{6}=\frac{11}{6} 61​+61​+62​+63​+63​+61​=611​

使用公式法计算

有没有发现,其实上面有很多重复的运算,例如我们在计算的时候,只会关注我们选定的人的前面(包括选定的人)的情况,而且前面的人(不包括选定的人)的顺序不影响边际贡献的计算,所有利用排列组合工具我们可以有下面的公式。

ϕ i ( v ) = ∑ s ∈ S i w ( ∣ s ∣ ) [ v ( s ) − v ( s / i ) ] \phi_i(v) = \sum_{s\in S_i}w(|s|)[v(s)-v(s/{i})] ϕi​(v)=s∈Si​∑​w(∣s∣)[v(s)−v(s/i)]

其中w为权重公式, ∣ ∗ ∣ |*| ∣∗∣为集合运算符用于求集合里面元素的个数。

w ( ∣ S ∣ ) = ( ∣ s ∣ − 1 ) ! ( n − ∣ s ∣ ! ) n ! w(|S|)=\frac{(|s|-1)!(n-|s|!)}{n!} w(∣S∣)=n!(∣s∣−1)!(n−∣s∣!)​

这里的w其实是一个采样概率,上面为取到集合S的组合可能个数,下面为所有可能的集合情况。

可以看文章《Shapley值特点及其局限的讨论》

假设有n个合作人的集合

I = { 1 , 2 , . . . , n } I=\{1,2,...,n\} I={1,2,...,n}

i则为选择的合作人,例如在上面,选择个体就是老板。

S(i)为所有以i为末尾的序列代表的集合的集合(其实就是包含i的集合的集合,但是这样说能更好的对应上面的老板打工表),例如 I = { 1 , 2 , 3 } I=\{1,2,3\} I={1,2,3}为集合,那么 i i i为1,

S ( i ) = { { 1 } , { 2 , 1 } , { 3 , 1 } , { 3 , 2 , 1 } } S(i)=\{\{1\},\{2,1\},\{3,1\},\{3,2,1\}\} S(i)={{1},{2,1},{3,1},{3,2,1}}

合作人 赚的钱
1 1
2 1
3 0
1+2 3
1+3 2
1+2+3 5
2+3 2

直接用公式算的话是

ϕ i ( v ) = ( 1 − 1 ) ! ( 3 − 1 ) ! 3 ! ∗ ( 1 − 0 ) + ( 2 − 1 ) ! ( 3 − 2 ) ! 3 ! ∗ ( 3 − 1 ) + ( 2 − 1 ) ! ( 3 − 2 ) ! 3 ! ∗ ( 2 − 1 ) + ( 3 − 1 ) ! ( 3 − 3 ) ! 3 ! ∗ ( 5 − 2 ) \phi_i(v) = \frac{(1-1)!(3-1)!}{3!}*(1-0)+\frac{(2-1)!(3-2)!}{3!}*(3-1)+\frac{(2-1)!(3-2)!}{3!}*(2-1)+\frac{(3-1)!(3-3)!}{3!}*(5-2) ϕi​(v)=3!(1−1)!(3−1)!​∗(1−0)+3!(2−1)!(3−2)!​∗(3−1)+3!(2−1)!(3−2)!​∗(2−1)+3!(3−1)!(3−3)!​∗(5−2)

ϕ i ( v ) = 2 6 + 2 6 + 1 6 + 6 6 = 11 6 \phi_i(v) =\frac{2}{6}+\frac{2}{6}+\frac{1}{6}+\frac{6}{6}=\frac{11}6{} ϕi​(v)=62​+62​+61​+66​=611​

我们发现和上面的结果是一样的

夏普利值的性质

  • 对称性:合作获利的分配,不随每个人在合作中的记号或次序变化
  • 有效性:合作各方获利总和等于合作获利
  • 冗员性:如果一个成员对于任何他参与的合作联盟都没有贡献,则他不应当从全体合作中获利
  • 有多种合作时,每种合作的利益分配方式与其他合作结果无关

目前运用的方向

目前好像是有投资领域,还有联邦学习这一块用的比较多,只要是能用到博弈论的好像都能用得上这个。

源码

夏普利值代码

Shapley Value(****夏普利值,沙普利值****)相关推荐

  1. 博弈论夏普利值!提高机器学习可解释性的新方法!

    全文共7141字,预计学习时长21分钟 图源:Unsplash 从"约翰•纳什"到"板球世界杯" 还记得<美丽心灵>的男主(也是现实生活中传奇的一代 ...

  2. 沙普利值(Shapley value)是怎么解释机器学习模型的?

    Shapley value 我们先介绍一下沙普利值.沙普利值来源于合作博弈,cooperative game (coalitional game).区别于传统博弈认为个体之间是相互独立的并分析其纳什均 ...

  3. 两个下拉框相关联ajax,触发第二个下拉框以显示基于从第一个下拉框中选择的值的值ajax...

    我有两个引导程序下拉框.当我们点击另一个下拉菜单时,其中一个会根据用户选择的国家显示来自数据库的所有国家名称,另一个下拉菜单应该选择状态. 当我点击一个下拉菜单时,我做了一个ajax请求来显示国家名称 ...

  4. 四百元值不值——论小米2A与2S

    作为一个米2用户,面对这手机市场极快的更新速度,有些跟不上速度.最近出了小米2A与2S,碰巧有人问值不值的问题,于是就小小的进行了一个研究,跟大家讨论一下. 首先小米2A与2S在我看来就是2的翻版,现 ...

  5. 买了一个软件测试就业班课程,不知道值不值

    本人26岁刚毕业三四年,转行进来,包装个1-2年的经验,还是非常容易落地的. 讲讲我前期要做好哪些准备. 首先要明确的是,26岁入行不算晚,但是也是没有太多的时间容你去试错,所以每一步都必须走对. 2 ...

  6. 使用Powershell如何导出Exchange对象中的多值属性值

    我们经常遇到使用Exchange Powershell去导出邮箱用户属性值到CSV文件中时,会出现某些属性值无法导出问题. 例如下面的例子: ============================= ...

  7. C++基础知识(二)--左值右值--逻辑表达式求值优化--逗号运算符与表示式--输入输出格式控制...

    :一.C++左值右值概念 左值:c++将变量名代表的单元称为左值,而将变量的值称为右值,左值必须是内存中可以访问且可以合法修改的对象,因此只能是变量名,而不能是常量或表达式.即左值可以寻址. 右值:将 ...

  8. python工程师薪资坑吗-入坑Python爬虫值不值?

    点击蓝字"python教程"关注我们哟! 有很多小伙伴,学习了Python的很多知识,比如基础语法.函数,web.爬虫.人工智能等,但是这么多就业方向,一时难选,不知道入坑Pyth ...

  9. java private 变量_java 的private的用法保护成员变量的值,将值判断

    package day02;public class Private_yongfa { String name; private int age;//固定写法 String sex; public v ...

最新文章

  1. 将通讯录导入到摩托罗拉A1800通讯录中
  2. 佛教:关于时间(段)的几种描述
  3. 你应该知道的print
  4. IIS中WEB服务器的日志存放到SQL Server 2005中
  5. java文件处理:文件流、上传、下载
  6. [Linux系统编程/网络编程] 笔记目录
  7. 苹果mac能安装计算机题库吗,苹果电脑能装windows系统吗_苹果电脑安装windows系统的方法...
  8. 代码女神利用Python网络爬虫爬取淘宝评论区数据(用小本本记下来)
  9. unity material以及各种贴图介绍
  10. siteapp–让独立博客变成手机app
  11. matlab插图放大模糊,PPT中怎样简单处理放大后失真的图片
  12. python乘法口诀表打印
  13. 腾讯云实时音视频( TRTC)通话质量监控仪表盘
  14. 游戏‘微信打飞机’ 第二课
  15. 如何使用 Kubernetes 部署 Flink 应用
  16. 布袋除尘器过滤风速多少_布袋除尘器过滤风速一般多大?
  17. 美团2018测开编程题——改卷子魔法表
  18. Probability Through Experiments
  19. PHP的strtotime()
  20. 20170118修改商品流水

热门文章

  1. SecureCRT 密码解密
  2. 没有钢琴也可实现弹奏自由?实时在Jetson上运行单阶段手指关键点模型
  3. IDEA 连接数据库时不成功的解决
  4. 第十八届全国大学生智能汽车竞赛百度创意组来啦
  5. In scan(file = file, what = what, sep = sep, quote = quote, dec = dec,  :   EOF within quoted string
  6. 2017第十九届中国国际光电博览会会刊(参展商名录)
  7. linux流编辑器,linux sed 流编辑器
  8. 视频教程-PS教程-【和东东一起学PS】Photoshop 2020小白到高手(任务驱动式基础+实战教学)-Photoshop
  9. python抓取货币基金数据及基金收益数据分析
  10. 教育行业 | 打造新型获客模式 突破企业流量困局