SHAP (SHapley Additive exPlanations)

原文:HTML
翻译:我


Lundberg and Lee(2016)的SHAP(SHapley Additive ExPlanations)是一种解释个体预测的方法。 SHAP基于游戏理论上的最佳Shapley值。

SHAP拥有自己的一章,而不是Shapley值的子章节,有两个原因。首先,SHAP的作者提出了KernelSHAP,这是一种受局部代用模型( local surrogate models)启发的、基于核函数(kernel-based)的Shapley值估计方法。并且他们提出了TreeSHAP,一种基于树型模型的高效估计方法。其次,SHAP带有许多基于Shapley值聚合(aggregations)的全局解释方法。本章将对新的估计方法和全局解释方法进行解释。

我建议先阅读有关Shapley值和局部模型(LIME)的章节。


1. Definition

SHAP的目标是通过计算每个特征对预测x的贡献来解释实例x的预测。SHAP解释方法根据联盟博弈理论计算Shapley值。数据实例的特征值充当联盟(集合)中的参与者。 Shapley值告诉我们如何在特征之间公平地分配“支出”(即预测)。玩家可以是单个特征值,例如,用于表格数据。玩家也可以是一组特征值。比如要解释一幅图像,可以将像素归为超级像素,并将预测值分布在其中。SHAP带来的一个创新是,Shapley值的解释是以一种加法特征归因方法,一种线性模型来表示的。这种观点将LIME和Shapley值连接起来。SHAP将解释具体化为:

g

(

z

)

=

?

0

+

j

=

1

M

?

j

z

j

g(z')=\phi_0+\sum_{j=1}^M\phi_jz_j'

g(z′)=?0?+j=1∑M??j?zj′?

其中g是解释模型,

z

{

0

,

1

}

M

z'\in\{0,1\}^M

z′∈{0,1}M 是联盟向量(coalition vector),M是最大联盟规模(coalition size),

?

j

R

\phi_j\in\mathbb{R}

?j?∈R是特征

j

j

j 的特征归属,Shapley值。在SHAP论文中,我所谓的“联盟向量(coalition vector)”被称为“简化特征(simplified features)”。我想之所以选择这个名字,是因为对于图像数据等来说,图像并不是在像素层面上表示,而是聚集到超级像素上。我相信,把z看作是描述联盟是有帮助的。在联盟向量中,1表示相应的特征值 “存在(present)”,0表示 “不存在(absent)”。如果你知道Shapley值的话,这听起来应该很熟悉。为了计算Shapley值,我们模拟只有一些特征值在发挥作用(“存在”),而一些特征值没有发挥作用(“不存在”)。将其表示为联盟的线性模型是计算

?

\phi

? 的一个技巧。对于x这个感兴趣的实例,联盟向量x’是所有1’的向量,即所有特征值都是 "存在"的。该公式简化为:

g

(

x

)

=

?

0

+

j

=

1

M

?

j

g(x')=\phi_0+\sum_{j=1}^M\phi_j

g(x′)=?0?+j=1∑M??j?

你可以在Shapley值一章中找到这个用类似符号表示的公式。更多关于实际估算的内容在后面。我们先来谈谈

?

?

? 的特性,然后再讨论它们的估算细节。

Shapley值是唯一满足效率、对称性、虚值和可加性(Efficiency, Symmetry, Dummy and Additivity)等特性的解。SHAP也满足这些特性,因为它计算的是Shapley值。在SHAP论文中,你会发现SHAP特性和Shapley特性之间的差异。SHAP描述了以下三个理想的属性。

  • 1) Local accuracy

    f

    (

    x

    )

    =

    g

    (

    x

    )

    =

    ?

    0

    +

    j

    =

    1

    M

    ?

    j

    x

    j

    f(x)=g(x')=\phi_0+\sum_{j=1}^M\phi_jx_j'

    f(x)=g(x′)=?0?+j=1∑M??j?xj′?
    如果定义

    ?

    0

    =

    E

    X

    (

    f

    ^

    (

    x

    )

    )

    \phi_0=E_X(\hat{f}(x))

    ?0?=EX?(f^?(x)) 并设置所有

    x

    j

    x_j'

    xj′? 为 1,这是Shapley效率属性。仅使用不同的名称并使用联合向量。

    f

    (

    x

    )

    =

    ?

    0

    +

    j

    =

    1

    M

    ?

    j

    x

    j

    =

    E

    X

    (

    f

    ^

    (

    X

    )

    )

    +

    j

    =

    1

    M

    ?

    j

    f(x)=\phi_0+\sum_{j=1}^M\phi_jx_j'=E_X(\hat{f}(X))+\sum_{j=1}^M\phi_j

    f(x)=?0?+j=1∑M??j?xj′?=EX?(f^?(X))+j=1∑M??j?

  • 2) Missingness

    x

    j

    =

    0

    ?

    ?

    j

    =

    0

    x_j'=0\Rightarrow\phi_j=0

    xj′?=0??j?=0
    Missingness说,缺失的特征得到的归属为零。注意

    x

    j

    x_j'

    xj′? 指联盟,其中值为0表示不存在特征值。在联盟符号中,所有特征值

    x

    j

    x_j'

    xj′? 解释的实例应该是’1’。0的存在将意味着感兴趣的实例缺少特征值。此属性不在“常规” Shapley值的属性中。那么,为什么我们需要SHAP?Lundberg 称其为 “minor book-keeping property”。从理论上讲,缺失的特征可以具有任意的Shapley值,而不会损害局部精度属性,因为它是与

    x

    j

    =

    0

    x_j'=0

    xj′?=0 相乘的。Missingness属性强制缺少的特征获得Shapley值0。实际上,这仅与恒定特征有关。

  • 3) Consistency

    f

    x

    (

    z

    )

    =

    f

    (

    h

    x

    (

    z

    )

    )

    f_x(z')=f(h_x(z'))

    fx?(z′)=f(hx?(z′)) 和

    z

    ?

    j

    z_{\setminus{}j}'

    z?j′? 表示

    z

    j

    =

    0

    z_j'=0

    zj′?=0。对于满足的两个模型f和f’:

    f

    x

    (

    z

    )

    ?

    f

    x

    (

    z

    ?

    j

    )

    f

    x

    (

    z

    )

    ?

    f

    x

    (

    z

    ?

    j

    )

    f_x'(z')-f_x'(z_{\setminus{}j}')\geq{}f_x(z')-f_x(z_{\setminus{}j}')

    fx′?(z′)?fx′?(z?j′?)≥fx?(z′)?fx?(z?j′?)
    对于所有输入

    z

    {

    0

    ,

    1

    }

    M

    z'\in\{0,1\}^M

    z′∈{0,1}M, 然后:

    ?

    j

    (

    f

    ,

    x

    )

    ?

    j

    (

    f

    ,

    x

    )

    \phi_j(f',x)\geq\phi_j(f,x)

    ?j?(f′,x)≥?j?(f,x)
    一致性属性说的是,如果一个模型的变化使得一个特征值的边际贡献增加或保持不变(不考虑其他特征),那么Shapley值也会增加或保持不变。从一致性出发,Shapley属性线性、虚拟和对称性(Linearity, Dummy and Symmetry)也随之而来,如Lundberg和Lee的附录中所述。


2. KernelSHAP

KernelSHAP会为实例估算x每个特征值对预测的贡献。 KernelSHAP包含5个步骤:
- 样本联盟
我们可以通过反复抛硬币来创建一个随机联盟(集合),直到我们有一个0和1的连锁。例如,(1,0,1,0)的向量意味着我们有一个第一和第三特征的联盟。K个采样联盟成为回归模型的数据集。回归模型的目标是联盟的预测。("等等!"你说,“模型还没有在这些二元联盟数据上进行训练,不能对它们进行预测。” ) 为了从特征值的联盟到有效的数据实例,我们需要一个函数

h

x

(

z

)

=

z

h_x(z')=z

hx?(z′)=z,其中

h

x

:

{

0

,

1

}

M

R

p

h_x:\{0,1\}^M\rightarrow\mathbb{R}^p

hx?:{0,1}M→Rp,函数

h

x

h_x

hx? 将1映射到我们要说明的实例x的对应值。对于表格数据,它将0映射到我们从数据中抽样的另一个实例的值。这意味着我们将 “特征值不存在"等同于"特征值被数据中的随机特征值取代”。对于表格数据,下图直观地展示了从联盟到特征值的映射。

在这里插入图片描述
对于表格数据,

h

x

h_x

hx? 将

X

C

X_C

XC? 和

X

S

X_S

XS? 视为独立的,并对边际分布进行积分。

f

(

h

x

(

z

)

)

=

E

X

C

[

f

(

x

)

]

f(h_x(z'))=E_{X_C}[f(x)]

f(hx?(z′))=EXC??[f(x)]

从边际分布中取样意味着忽略了存在和不存在特征之间的依赖结构。因此,KernelSHAP和所有基于换元的解释方法一样,都存在着同样的问题。估计将过多的权重放在不可能的实例上。结果会变得不可靠。但从边际分布中采样是必要的。如果不存在的特征值会从条件分布中抽样,那么结果值就不再是Shapley值。结果值将违反Dummy的Shapley公理,即一个对结果没有贡献的特征值应该是Shapley值为零。

对于图像,下图描述了可能的映射函数:
在这里插入图片描述
与LIME最大的区别是回归模型中实例的权重。LIME根据实例与原始实例的接近程度对实例进行加权。联盟向量中的0越多,LIME中的权重越小。SHAP根据联盟在Shapley值估计中获得的权重对采样实例进行加权。小联盟(很少的1)和大联盟(即许多1)得到的权重最大。其背后的直觉是:如果我们能孤立地研究单个特征的影响,我们就能了解到最多的信息。如果一个联盟由一个单一特征组成,我们就可以学习特征对预测的孤立的主要影响。如果一个联盟由除一个特征外的所有特征组成,我们可以了解这个特征的总效应(主效应加上特征的相互作用)。如果一个联盟由一半的特征组成,我们对单个特征的贡献了解甚少,因为有许多可能的联盟有一半的特征。为了实现符合Shapley的权重,Lundberg等人提出了SHAP kernel

π

x

(

z

)

=

(

M

?

1

)

(

M

z

)

z

(

M

?

z

)

\pi_{x}(z')=\frac{(M-1)}{\binom{M}{|z'|}|z'|(M-|z'|)}

πx?(z′)=(∣z′∣M?)∣z′∣(M?∣z′∣)(M?1)?

这里,M为最大联盟规模,而

z

|z'|

∣z′∣ 为实例z’中存在特征的数量。Lundberg和Lee表明,用这个核的权重进行线性回归可以得到Shapley值。如果你将SHAP核与LIME一起用在联盟数据上,LIME也会估计出Shapley值!

我们可以在联盟的抽样上更聪明一些。最小和最大的联盟占据了大部分的权重。我们通过使用一些抽样预算K来包含这些高权重的联盟,而不是盲目地抽样,来获得更好的Shapley值估计。我们从所有可能的具有1和M-1特征的联盟开始,这使得总共有2M个联盟。当我们有足够的预算剩余时(当前预算为K - 2M),我们可以包含具有2个特征的联盟和具有M-2个特征的联盟,以此类推。从剩余的联盟规模中,我们用重新调整后的权重进行采样。

我们有数据,目标和权重。建立加权线性回归模型的一切:

g

(

z

)

=

?

0

+

j

=

1

M

?

j

z

j

g(z')=\phi_0+\sum_{j=1}^M\phi_jz_j'

g(z′)=?0?+j=1∑M??j?zj′?

我们通过优化以下损失函数L来训练线性模型g:

L

(

f

,

g

,

π

x

)

=

z

Z

[

f

(

h

x

(

z

)

)

?

g

(

z

)

]

2

π

x

(

z

)

L(f,g,\pi_{x})=\sum_{z'\in{}Z}[f(h_x(z'))-g(z')]^2\pi_{x}(z')

L(f,g,πx?)=z′∈Z∑?[f(hx?(z′))?g(z′)]2πx?(z′)
其中Z是训练数据。这就是我们通常对线性模型进行优化的平方误差之和。模型的估计系数,

?

j

\phi_j

?j? 是Shapley值。

由于我们是在线性回归的环境中,我们也可以利用标准的工具进行回归。例如,我们可以添加正则化项来使模型变得稀疏。如果我们在损失L上加一个L1的惩罚,我们可以创建稀疏的解释。(不过我不太确定产生的系数是否还能成为有效的Shapley值)


3. TreeSHAP

Lundberg等人(2018)提出了TreeSHAP,这是SHAP的一个变种,用于基于树的机器学习模型,如决策树、随机森林和梯度提升树。TreeSHAP是作为KernelSHAP的一个快速、特定模型的替代方案引入的,但事实证明,它可能会产生不直观的特征归因。

TreeSHAP使用条件期望定义值函数

E

X

S

X

C

(

f

(

x

)

x

S

)

E_{X_S|X_C}(f(x)|x_S)

EXS?∣XC??(f(x)∣xS?) 而不是边际期望。条件期望的问题在于,对预测函数f没有影响的特征可以获取不同于零的TreeSHAP估计。当特征与实际上对预测有影响的另一个特征相关时,可能会发生非零估计。

TreeSHAP快多少?与精确的KernelSHAP相比,它计算的复杂度从

O

(

T

L

2

M

)

O(TL2^M)

O(TL2M)减少到了

O

(

T

L

D

2

)

O(TLD^2)

O(TLD2)。其中T是树的数目,L是任何树的最大叶子数,D是任何树的最大深度。

TreeSHAP使用条件期望

E

X

S

X

C

(

f

(

x

)

x

S

)

E_{X_S|X_C}(f(x)|x_S)

EXS?∣XC??(f(x)∣xS?) 评估影响。如果我们对所有特征进行条件限制–如果S是所有特征的集合–那么来自实例x所在节点的预测将是预期预测。如果我们不对任何特征做任何条件–如果S是空的–我们将使用所有终端节点预测的加权平均值。如果S包含一些特征,但不是全部特征,我们忽略不可到达节点的预测。不可到达意味着通向这个节点的决策路径与

x

S

x_S

xS?中的值相矛盾。从剩余的终端节点中,我们按节点大小(即该节点的训练样本数)加权平均预测。其余终端节点的平均值,经每个节点的实例数加权后,就是给定S的x的预期预测值。问题是,我们必须对特征值的每个可能的子集S应用这个过程。TreeSHAP的计算方式是多项式时间,而不是指数式。基本思路是同时将所有可能的子集S推到树下。对于每个决策节点,我们必须跟踪子集的数量。这取决于父节点中的子集和分裂特征。例如,当树中的第一次拆分是在特征x3上,那么所有包含特征x3的子集都会去一个节点(x去的那个节点)。不包含特征x3的子集会去两个节点,权重降低。不幸的是,不同大小的子集有不同的权重。算法必须跟踪每个节点中子集的总体权重。这使得算法变得复杂。关于TreeSHAP的细节,我参考原论文。计算可以扩展到更多的树。多亏了Shapley值的Additivity属性 一个树集合的Shapley值是各个树的Shapley值的(加权)平均值。

接下来,我们将看一下SHAP的解释。


4. Examples

我用100棵树训练了一个随机森林分类器,以预测子宫颈癌的风险。我们将使用SHAP来解释各个预测。我们可以使用快速的TreeSHAP估计方法来代替较慢的KernelSHAP方法,因为随机森林是一个树的集合。但是本例不依赖条件分布,而是使用边际分布。这在软件包中有所描述,但在原文中没有。Python TreeSHAP函数在使用边际分布时速度较慢,但仍然比KernelSHAP快,因为它与数据中的行呈线性缩放。

因为我们在这里使用的是边际分布,所以解释和Shapley值章节中的解释是一样的。但随着Python shap包的使用,就会有不同的可视化效果。你可以将Shapley值这样的特征属性可视化为 “力”。每个特征值都是一个增加或减少预测的力。预测从基线开始。Shapley值的基线是所有预测的平均值。在图中,每个Shapley值是一个箭头,推动增加(正值)或减少(负值)预测。这些力量在数据实例的实际预测中相互平衡。

下图显示了宫颈癌数据集中两名女性的SHAP解释力图:
在这里插入图片描述
这些是对单个预测的解释。Shapley值可以组合成全局解释。如果我们对每个实例运行SHAP,我们就会得到一个Shapley值的矩阵。这个矩阵每个数据实例有一行,每个特征有一列。我们可以通过分析这个矩阵中的Shapley值来解释整个模型。

我们从SHAP特征重要性开始。


5. SHAP Feature Importance

SHAP特征重要性背后的想法很简单:具有较大绝对Shapley值的特征很重要。由于我们需要全局重要性,因此我们在数据中对每个特征的绝对Shapley值取平均值:

I

j

=

i

=

1

n

?

j

(

i

)

I_j=\sum_{i=1}^n{}|\phi_j^{(i)}|

Ij?=i=1∑n?∣?j(i)?∣

接下来,我们按照重要性递减的方式对特征进行排序并绘制。下图是之前训练的用于预测宫颈癌的随机森林的SHAP特征重要性。
在这里插入图片描述
图5.51:SHAP特征重要性以Shapley绝对值的平均值衡量。使用激素避孕药的年数是最重要的特征,平均改变了预测的绝对癌症概率2.4个百分点(x轴上为0.024)。

SHAP特征重要性是替代置换特征重要性(Permutation feature importance)的一种方法。两种重要性测量之间有很大的区别。特征重要性是基于模型性能的下降。SHAP是基于特征属性的大小。

特征重要性图很有用,但不包含重要性以外的信息。要获得更多信息,我们接下来将看一下摘要图。


6. SHAP Summary Plot

摘要图将特征重要性与特征效应结合起来。摘要图上的每个点是一个特征和一个实例的Shapley值。y轴上的位置由特征决定,x轴上的位置由Shapley值决定。颜色从低到高代表特征的值。重叠点在y轴方向上是有抖动的,所以我们可以了解每个特征的Shapley值的分布情况。特征根据其重要性进行排序。
在这里插入图片描述
图5.52:SHAP摘要图。服用激素避孕药的年数低会降低预测的癌症风险,年数多则会增加风险。定期提醒:所有的效应都是描述模型的行为,而不是现实世界中的因果关系。

在摘要图中,我们首先看到特征值与对预测的影响之间的关系。但是要查看关系的确切形式,我们必须查看SHAP依赖图。


7. SHAP Dependence Plot

SHAP特征依赖性可能是最简单的全局解释图:1)选择一个特征。2)对于每个数据实例,在x轴上绘制一个点,特征值在x轴上,y轴上绘制相应的Shapley值。3)完成。

从数学上讲,该图包含以下几点:

{

(

x

j

(

i

)

,

?

j

(

i

)

)

}

i

=

1

n

\{(x_j^{(i)},\phi_j^{(i)})\}_{i=1}^n

{(xj(i)?,?j(i)?)}i=1n?。

下图为SHAP特征对激素避孕药的多年依赖性。
在这里插入图片描述
图5.53:使用激素避孕药年限的SHAP依赖性图。与0年相比,几年降低了预测的概率,而年数多则增加了预测的癌症概率。

SHAP依赖性图是部分依赖性图(PDP)和累积局部效应(ALE)的替代方案。PDP和ALE图显示的是平均效应,而SHAP依赖性图在y轴上也显示了方差。特别是在交互作用的情况下,SHAP依赖性图在y轴上会更加分散。可以通过突出这些特征交互作用来改进依赖性图。


8. SHAP Interaction Values

相互作用效应是在考虑了单个特征效应之后的附加组合特征效应。博弈论中的Shapley相互作用指数定义为:

?

i

,

j

=

S

?

?

{

i

,

j

}

S

!

(

M

?

S

?

2

)

!

2

(

M

?

1

)

!

δ

i

j

(

S

)

\phi_{i,j}=\sum_{S\subseteq\setminus\{i,j\}}\frac{|S|!(M-|S|-2)!}{2(M-1)!}\delta_{ij}(S)

?i,j?=S??{i,j}∑?2(M?1)!∣S∣!(M?∣S∣?2)!?δij?(S)
when i≠j and:

δ

i

j

(

S

)

=

f

x

(

S

{

i

,

j

}

)

?

f

x

(

S

{

i

}

)

?

f

x

(

S

{

j

}

)

+

f

x

(

S

)

\delta_{ij}(S)=f_x(S\cup\{i,j\})-f_x(S\cup\{i\})-f_x(S\cup\{j\})+f_x(S)

δij?(S)=fx?(S∪{i,j})?fx?(S∪{i})?fx?(S∪{j})+fx?(S)
这个公式减去了特征的主效应,这样我们就得到了核算个体效应后的纯交互效应。我们对所有可能的特征联盟S进行平均,就像Shapley值计算一样。当我们计算所有特征的SHAP交互作用值时,每个实例得到一个矩阵,维度为M×M,其中M为特征数。

我们如何使用互动指数?例如,为交互作用最强的SHAP特征依赖图自动着色:
在这里插入图片描述
图5.54:SHAP特征依赖性图,交互作用可视化。激素避孕的年限与性病相互作用。在接近0年的情况下,性病的发生会增加预测的癌症风险。对于更多的避孕年限,性病的发生会降低预测的风险。同样,这不是一个因果模型。影响可能是由于混杂因素造成的(例如,性病和较低的癌症风险可能与更多的医生门诊相关)。


9. Clustering SHAP values

你可以在Shapley值的帮助下对数据进行聚类。聚类的目标是找到相似实例的群体。通常,聚类是基于特征的。特征通常是在不同的尺度上。例如,高度可能以米为单位,颜色强度从0到100,一些传感器的输出在-1和1之间,困难的是计算具有这种不同的、不可比较的特征的实例之间的距离。

SHAP聚类是通过对每个实例的Shapley值进行聚类。这意味着你通过解释的相似性对实例进行聚类。所有SHAP值都有相同的单位–预测空间的单位。你可以使用任何聚类方法。下面的例子使用分层聚类来对实例进行排序。

该图由许多力图( force plots)组成,每个力图都能解释一个实例的预测。我们将力图垂直旋转,并根据它们的聚类相似度并排放置。

图5.55:按解释相似度聚类的叠加SHAP解释。x轴上的每个位置都是数据的一个实例。红色的SHAP值会增加预测,蓝色的值会减少预测。一个群组脱颖而出。右边是一个预测癌症风险很高的组。


10. Advantages

由于SHAP计算的是Shapley值,所以Shapley值的所有优点都适用。SHAP在博弈论上有坚实的理论基础。预测值在特征值中分布相当均匀。我们得到的是对比预测和平均预测的对比解释。

SHAP连接LIME和Shapley值。这对于更好地了解这两种方法非常有用。它还有助于统一可解释机器学习的领域。

SHAP对基于树的模型有一个快速的实现。我相信这是SHAP流行的关键,因为采用Shapley值的最大障碍是计算速度慢。

快速的计算使得计算全局模型解释所需的许多Shapley值成为可能。全局解释方法包括特征重要性、特征依赖性、相互作用、聚类和汇总图。使用SHAP,全局解释与局部解释是一致的,因为Shapley值是全局解释的 “原子单位”。如果你用LIME来做局部解释,用部分依赖图加换位特征重要性来做全局解释,你就缺乏一个共同的基础。


11. Disadvantages

KernelSHAP 很慢。这使得KernelSHAP在你要计算许多实例的Shapley值时不实用。而且所有的全局SHAP方法,比如SHAP特征重要性,都需要计算很多实例的Shapley值。

KernelSHAP忽略了特征依赖性。大多数其他基于换元的解释方法都存在这个问题。通过用随机实例中的值替换特征值,通常更容易从边际分布中随机采样。然而,如果特征是依赖性的,例如相关的,这就会导致把过多的权重放在不可能的数据点上。TreeSHAP通过对条件预期预测进行显式建模来解决这个问题。

TreeSHAP会产生不直观的特征归属。虽然TreeSHAP解决了外推到不可能的数据点的问题,但它引入了一个新的问题。TreeSHAP通过依赖条件预期预测来改变价值函数。随着价值函数的改变,对预测没有影响的特征可以得到一个不同于零的TreeSHAP值。

Shapley值的缺点也适用于SHAP:Shapley值可能会被误解,并且需要访问数据才能为新数据计算它们(TreeSHAP除外)。


12. Software

作者在shap Python包中实现了SHAP。这个实现适用于python的scikit-learn机器学习库中基于树的模型。本章中的例子也使用了shap包。shap集成在树型提升框架xgboost和LightGBM中。在R中,有shapper和fastshap包。SHAP也包含在R的xgboost包中。


Reference

  • Lundberg, Scott M., and Su-In Lee. “A unified approach to interpreting model predictions.” Advances in Neural Information Processing Systems. 2017.?

  • Lundberg, Scott M., Gabriel G. Erion, and Su-In Lee. “Consistent individualized feature attribution for tree ensembles.” arXiv preprint arXiv:1802.03888 (2018).?

  • Sundararajan, Mukund, and Amir Najmi. “The many Shapley values for model explanation.” arXiv preprint arXiv:1908.08474 (2019).?

  • Janzing, Dominik, Lenon Minorics, and Patrick Bl?baum. “Feature relevance quantification in explainable AI: A causality problem.” arXiv preprint arXiv:1910.13413 (2019).?