沙普利
沙普利值
描述
的沙普利查询点的特征值解释了查询点的预测与平均预测之间的偏差,这是由于该特征造成的。对于每个查询点,所有特征的Shapley值之和对应于预测与平均值的总偏差。
您可以创建沙普利
具有指定查询点(queryPoint
)。该软件创建一个对象,并为查询点计算所有特征的Shapley值。
使用Shapley值来解释在指定的查询点上各个特征对预测的贡献。使用情节
函数来创建沙普利值的条形图。方法可以计算另一个查询点的Shapley值适合
函数。
创建
语法
描述
还计算查询点的Shapley值讲解员
=沙普利(___“QueryPoint”,queryPoint
)queryPoint
并将计算得到的Shapley值存储在ShapleyValues
的属性讲解员
.你可以指定queryPoint
除了前面语法中的任何输入参数组合之外。
输入参数
黑箱
- - - - - -待解释的机器学习模型
回归模型对象|分类模型对象|函数处理
要解释的机器学习模型,指定为完整或紧凑的回归或分类模型对象或函数句柄。
完整或紧凑模型对象——您可以指定完整或紧凑的回归或分类模型对象,该对象具有
预测
对象的功能。该软件使用预测
函数来计算Shapley值。如果指定的模型对象不包含预测器数据(例如,紧凑模型),则必须使用提供预测器数据
X
.在训练模型时,对预测器数据使用数字矩阵或表格,其中行对应单独的观察结果。
回归模型对象
万博1manbetx支持模型 完整或紧凑回归模型对象 回归模型的集合 RegressionEnsemble
,RegressionBaggedEnsemble
,CompactRegressionEnsemble
采用随机特征展开的高斯核回归模型 RegressionKernel
高斯过程回归 RegressionGP
,CompactRegressionGP
广义加性模型 RegressionGAM
,CompactRegressionGAM
高维数据的线性回归 RegressionLinear
神经网络回归模型 RegressionNeuralNetwork
,CompactRegressionNeuralNetwork
回归树 RegressionTree
,CompactRegressionTree
万博1manbetx支持向量机回归 RegressionSVM
,CompactRegressionSVM
分类模型对象
万博1manbetx支持模型 完整或紧凑分类模型对象 判别分析分类器 ClassificationDiscriminant
,CompactClassificationDiscriminant
支持向量机或其他分类器的多类模型万博1manbetx ClassificationECOC
,CompactClassificationECOC
分类的学习器集合 ClassificationEnsemble
,CompactClassificationEnsemble
,ClassificationBaggedEnsemble
采用随机特征展开的高斯核分类模型 ClassificationKernel
广义加性模型 ClassificationGAM
,CompactClassificationGAM
k-最近邻分类器 ClassificationKNN
线性分类模型 ClassificationLinear
多类朴素贝叶斯模型 ClassificationNaiveBayes
,CompactClassificationNaiveBayes
神经网络分类器 ClassificationNeuralNetwork
,CompactClassificationNeuralNetwork
万博1manbetx支持向量机分类器用于一类和二元分类 ClassificationSVM
,CompactClassificationSVM
用于多类分类的二叉决策树 ClassificationTree
,CompactClassificationTree
函数句柄——可以指定一个函数句柄,它接受预测器数据,并返回一个列向量,其中包含预测器数据中每个观测值的预测。预测是回归的预测响应,或者是分类的单个类的预测分数。你必须提供预测数据使用
X
.
X
- - - - - -预测数据
数字矩阵|表格
预测器数据,指定为数字矩阵或表格。每行X
对应一个观察结果,每一列对应一个变量。
对于数值矩阵:
组成列的变量
X
必须与训练的预测变量有相同的顺序黑箱
,储存在黑箱。X
.如果你受过训练
黑箱
那么,使用表格X
如果表格包含所有数值预测变量,则可以是数值矩阵。
对于表格:
如果你受过训练
黑箱
使用表格(例如,资源描述
),然后输入所有预测变量X
必须具有与中相同的变量名和数据类型资源描述
.的列序X
是否需要对应的列顺序资源描述
.如果你受过训练
黑箱
使用一个数字矩阵,然后预测器名称在黑箱。PredictorNames
和对应的预测变量名X
一定是一样的。若要在训练期间指定预测器名称,请使用“PredictorNames”
名称-值参数。所有预测变量X
必须是数值向量。X
可以包含额外的变量(响应变量、观察权重等),但是沙普利
忽略了它们。沙普利
不支持多列变量或除万博1manbetx字符向量的单元格数组外的单元格数组。
如果黑箱
是否必须提供不包含预测器数据或函数句柄的模型对象X
.如果黑箱
是一个完整的机器学习模型对象,你指定这个参数,那么沙普利
不使用预测数据在黑箱
;它只使用指定的预测器数据。
数据类型:单
|双
queryPoint
- - - - - -查询点
数值的行向量|单列表
所在的查询点沙普利
解释指定为数值的行向量或单行表的预测。
对于数值的行向量:
对于单行表:
如果你受过训练
黑箱
使用表格(例如,资源描述
),然后输入所有预测变量queryPoint
必须具有与中相同的变量名和数据类型资源描述
.的列序queryPoint
是否需要对应的列顺序资源描述
.如果你受过训练
黑箱
使用一个数字矩阵,然后预测器名称在黑箱。PredictorNames
和对应的预测变量名queryPoint
一定是一样的。若要在训练期间指定预测器名称,请使用“PredictorNames”
名称-值参数。所有预测变量queryPoint
必须是数值向量。queryPoint
可以包含额外的变量(响应变量、观察权重等),但是沙普利
忽略了它们。沙普利
不支持多列变量或除万博1manbetx字符向量的单元格数组外的单元格数组。
如果queryPoint
包含南
S表示连续预测器和“方法”
是“conditional-kernel”
,则Shapley值(ShapleyValues
)返回的对象南
年代。否则,沙普利
处理南
年代queryPoint
以同样的方式黑箱
(预测
的对象函数黑箱
或指定的函数句柄黑箱
)。
例子:: blackbox.X (1)
将查询点指定为完整机器学习模型中预测器数据的第一个观察点黑箱
.
数据类型:单
|双
|表格
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:沙普利(黑箱,QueryPoint,问,“方法”,“conditional-kernel”)
创建一个沙普利
对象,并计算查询点的Shapley值问
使用kernelSHAP算法的扩展。
CategoricalPredictors
- - - - - -分类预测器列表
正整数向量|逻辑向量|字符矩阵|字符串数组|字符向量的单元格数组|“所有”
类别预测符列表,指定为此表中的值之一。
价值 | 描述 |
---|---|
正整数向量 | 向量中的每个条目都是一个指标值,表明相应的预测器是分类的。索引值在1和之间 如果 |
逻辑向量 | 一个 |
字符矩阵 | 矩阵的每一行都是一个预测变量的名称。名称必须以表的形式与预测器数据的变量名称相匹配。用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。 |
字符向量的字符串数组或单元格数组 | 数组中的每个元素都是一个预测变量的名称。名称必须以表的形式与预测器数据的变量名称相匹配。 |
“所有” |
所有预测因素都是绝对的。 |
如果你指定
黑箱
作为函数句柄沙普利
从预测器数据中识别分类预测器X
.如果预测器数据在表格中,沙普利
如果一个变量是逻辑向量、无序分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定它是分类的。如果预测器数据是一个矩阵,沙普利
假设所有预测因子都是连续的。要将任何其他预测符标识为类别预测符,请使用“CategoricalPredictors”
名称-值参数。如果你指定
黑箱
作为一个回归或分类模型对象,那么沙普利
属性标识类别预测符CategoricalPredictors
模型对象的属性。
沙普利
万博1manbetx支持一个有序的分类预测器黑箱
万博1manbetx支持有序分类预测器和“方法”
是“interventional-kernel”
.
例子:“CategoricalPredictors”、“所有”
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
MaxNumSubsets
- - - - - -预测器子集的最大数目
min (2 ^ M, 1024)
在哪里米
预测因子的数量是多少(默认)|正整数
方法
- - - - - -Shapley值计算算法
“interventional-kernel”
(默认)|“conditional-kernel”
UseParallel
- - - - - -标志并行运行
假
(默认)|真正的
要并行运行的标志,指定为真正的
或假
.如果你指定“UseParallel”,真的
,沙普利
函数通过使用并行执行for循环迭代parfor
.此选项需要并行计算工具箱™。
例子:“UseParallel”,真的
数据类型:逻辑
属性
BlackboxModel
- - - - - -待解释的机器学习模型
回归模型对象|分类模型对象|函数处理
BlackboxFitted
- - - - - -机器学习模型计算查询点的预测
标量
此属性是只读的。
由机器学习模型计算的查询点预测(BlackboxModel
),指定为标量。
如果
BlackboxModel
是模型对象吗BlackboxFitted
是用于回归的预测响应或用于分类的分类标签。如果
BlackboxModel
是函数句柄吗BlackboxFitted
由函数句柄返回的值,可以是用于回归的预测响应,也可以是用于分类的单个类的预测分数。
数据类型:单
|双
|分类
|逻辑
|字符
|字符串
|细胞
CategoricalPredictors
- - - - - -分类预测指标
正整数向量|[]
此属性是只读的。
分类预测指标,指定为正整数向量。CategoricalPredictors
包含指示相应预测符是分类的索引值。索引值在1和之间p
,在那里p
用于训练模型的预测器的数量。如果没有一个预测符是分类的,则此属性为空([]
)。
如果你指定
黑箱
那么,使用函数句柄沙普利
从预测器数据中识别分类预测器X
.如果您指定“CategoricalPredictors”
参数,则参数设置此属性。如果你指定
黑箱
作为一个回归或分类模型对象,那么沙普利
属性确定此属性CategoricalPredictors
模型对象的属性。
沙普利
万博1manbetx支持一个有序的分类预测器黑箱
万博1manbetx支持有序分类预测器和“方法”
是“interventional-kernel”
.
数据类型:单
|双
拦截
- - - - - -平均预测
数值向量|数字标量
平均预测,对预测器数据的平均X
,指定为数值向量或数值标量。
如果
BlackboxModel
是分类模型对象吗拦截
是每个类的平均分类分数的向量。如果
BlackboxModel
是回归模型对象吗拦截
是平均响应的标量。如果
BlackboxModel
是函数句柄吗拦截
是平均函数求值的标量。
对于一个查询点,所有特征的Shapley值的和对应于预测与平均值(拦截
)。
数据类型:单
|双
方法
- - - - - -Shapley值计算算法
“interventional-kernel”
|“conditional-kernel”
NumSubsets
- - - - - -预测器子集的数量
正整数
此属性是只读的。
用于Shapley值计算的预测器子集数,指定为正整数。
的“MaxNumSubsets”
的观点沙普利
或者是“MaxNumSubsets”
的观点适合
设置此属性。
有关如何沙普利
选择要使用的子集,参见计算成本.
数据类型:单
|双
QueryPoint
- - - - - -查询点
数值的行向量|单列表
此属性是只读的。
所在的查询点沙普利
解释使用沙普利值的预测(ShapleyValues
),指定为数值或单行表的行向量。
的queryPoint
的观点沙普利
或者是queryPoint
的观点适合
设置此属性。
数据类型:单
|双
|表格
ShapleyValues
- - - - - -查询点的Shapley值
表格
此属性是只读的。
查询点的Shapley值(QueryPoint
),指定为一个表。
对于回归,表格有两列。第一列包含预测器变量名,第二列包含预测器的Shapley值。
对于分类,表有两个或多个列,这取决于中类的数量
BlackboxModel
.第一列包含预测器变量名,其余列包含每个类的预测器的Shapley值。
数据类型:表格
X
- - - - - -预测数据
数字矩阵|表格
例子
创建时计算Shapley值沙普利
对象
训练一个分类模型并创建一个沙普利
对象。当你创建沙普利
对象,指定一个查询点,以便软件计算该查询点的Shapley值。然后使用对象函数创建沙普利值的条形图情节
.
加载CreditRating_Historical
数据集。数据集包含客户id及其财务比率、行业标签和信用评级。
可读的(“CreditRating_Historical.dat”);
显示表的前三行。
头(资源描述,3)
ans =3×8表ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业评级 _____ _____ _____ _______ ________ _____ ________ ______ 62394 0.013 0.104 0.036 0.447 0.142 3{“BB”}48608 0.232 0.335 0.062 1.969 0.281 8 {A} 42444 0.311 0.367 0.074 1.935 0.366 1 {A}
训练信用评级的黑盒模型fitcecoc
函数。使用第二到第七列的变量资源描述
作为预测变量。推荐的做法是指定类名来设置类的顺序。
黑盒= fitcecoc(tbl,“评级”,...“PredictorNames”tbl.Properties.VariableNames (7),...“CategoricalPredictors”,“行业”,...“类名”, {“AAA”“AA”“一个”“BBB”“BB”“B”“CCC”});
创建一个沙普利
对象,该对象解释对最后一次观测的预测。指定一个查询点,以便软件计算Shapley值并将它们存储在ShapleyValues
财产。
queryPoint = tbl(end,:)
queryPoint =表1×8ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业评级 _____ _____ _____ _______ ________ ____ ________ ______ 73104 0.239 0.463 0.065 2.924 0.34 - 2{“AA”}
解释= shapley(黑盒,“QueryPoint”queryPoint)
警告:由于预测器数据有超过1000个观测值,计算可能会很慢。使用更小的训练集样本或指定“UseParallel”为true,以实现更快的计算。
BlackboxModel: [1x1 ClassificationECOC] QueryPoint: [1x8 table] blackboxfitting: {'AA'} ShapleyValues: [6x8 table] NumSubsets: 64 X: [3932x6 table] CategoricalPredictors: 6 Method: ' interventialkernel ' Intercept:[-0.5041 -0.3908 -0.3137 -0.3042 -0.4217…]
正如警告消息所示,由于预测器数据有超过1000个观测值,计算可能会很慢。为了更快的计算,使用较小的训练集样本或指定“UseParallel”
作为真正的
.
对于分类模型,沙普利
使用每个班级的预测分数计算沙普利值。中的值ShapleyValues
财产。
讲解员。沙普利价值s
ans =6×8表预测AAA AA BBB BB B CCC __________ __________ __________ ___________ ___________ ___________ ___________ ___________ " WC_TA“0.014716 0.0064376 0.0026704 0.00048882 -0.0079015 -0.011841 -0.011395”RE_TA“0.04792 0.026917 0.014751 -0.0031481 -0.02512 -0.059926 -0.084181”EBIT_TA e-05 3.3904 0.00034272 0.00015025 0.00011977 -0.00018925 -0.00038135 -0.00033784“MVE_BVTD“0.38334 0.37376 0.17563 -0.032136 -0.18728 -0.24831 -0.19585”S_TA“-0.0037311 -0.0026014 -8.8854 -0.00081782 e-05-5.4936e-05 0.00047882 -0.00068998“工业”-0.028978 -0.013905 0.0010435 0.023298 0.026473 0.029898 0.045394
的ShapleyValues
属性包含每个类的所有特性的Shapley值。
方法绘制预测类的Shapley值情节
函数。
情节(讲解员)
横柱图显示了所有变量的Shapley值,按绝对值排序。每个Shapley值解释了查询点的分数与预测类的平均分之间的偏差,这是由于相应的变量造成的。
创建沙普利
对象和计算Shapley值使用适合
训练一个回归模型并创建一个沙普利
对象。当你创建沙普利
对象,如果不指定查询点,则软件不计算Shapley值。使用object函数适合
来计算指定查询点的Shapley值。然后使用对象函数创建沙普利值的条形图情节
.
加载carbig
数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。
负载carbig
创建一个包含预测变量的表加速度
,气缸
,等等,以及响应变量英里/加仑
.
tbl = table(加速度,气缸,排量,马力,车型年,重量,MPG);
删除训练集中的缺失值可以帮助减少内存消耗并加快fitrkernel
函数。中删除缺失的值资源描述
.
TBL = rmmissing(TBL);
训练一个黑盒模型英里/加仑
通过使用fitrkernel
函数
rng (“默认”)%用于再现性MDL = fitrkernel(tbl,“英里”,“CategoricalPredictors”[2 - 5]);
创建一个沙普利
对象。指定数据集资源描述
,因为mdl
不包含训练数据。
解释器= shapley(mdl,tbl)
explainer = shapley with properties: BlackboxModel: [1x1 RegressionKernel] QueryPoint: [] blackboxfit: [] ShapleyValues: [] NumSubsets: 64 X: [392x7 table] CategoricalPredictors: [2 5] Method: ' interferal -kernel' Intercept: 22.6202
讲解员
存储培训数据资源描述
在X
财产。
计算所有预测变量的Shapley值资源描述
.
queryPoint = tbl(1,:)
queryPoint =表1×7加速气缸位移马力Model_Year体重MPG ____________ _________ ____________ __________ __________ ______ ___ 12 8 307 130 70 3504
explainer = fit(解释器,queryPoint);
对于回归模型,沙普利
计算沙普利值使用预测的响应,并将它们存储在ShapleyValues
财产。中的值ShapleyValues
财产。
讲解员。沙普利价值s
ans =6×2表预测器ShapleyValue ______________ ____________“加速度”-0.1561“气缸”-0.18306“位移”-0.34203“马力”-0.27291“Model_Year”-0.2926“重量”-0.32402
方法绘制查询点的Shapley值情节
函数。
情节(讲解员)
横柱图显示了所有变量的Shapley值,按绝对值排序。每个Shapley值解释了查询点的预测与平均值之间的偏差,这是由于相应的变量造成的。
使用函数句柄指定黑箱模型
训练一个回归模型并创建一个沙普利
对象的函数句柄预测
模型的功能。使用object函数适合
来计算指定查询点的Shapley值。然后用目标函数绘制沙普利值情节
.
加载carbig
数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。
负载carbig
创建一个包含预测变量的表加速度
,气缸
等等。
tbl = table(加速度,气缸,排量,马力,车型年,重量);
训练一个黑盒模型英里/加仑
通过使用TreeBagger
函数。
rng (“默认”)%用于再现性Mdl = TreeBagger(100,tbl,MPG,“方法”,“回归”,“CategoricalPredictors”[2 - 5]);
沙普利
不支持万博1manbetxTreeBagger
对象的第一个输入参数(黑箱模型)沙普利
作为一个TreeBagger
对象。属性的函数句柄预测
函数。属性的选项预测
函数使用函数的名称-值参数。
属性的函数句柄预测
的功能TreeBagger
对象Mdl
.指定要用作的树索引数组1:50
.
f = @(tbl) predict(Mdl,tbl,“树”、1:50);
创建一个沙普利
对象使用函数句柄f
.当将黑箱模型指定为函数句柄时,必须提供预测器数据。资源描述
包括分类预测符(油缸
而且Model_Year
)与双
数据类型。默认情况下,沙普利
不使用双
数据类型作为分类预测器。指定第二个(油缸
)及第五(Model_Year
)变量作为分类预测因子。
解释器= shapley(f,tbl,“CategoricalPredictors”[2 - 5]);解释器= fit(解释器,tbl(1,:));
绘制Shapley值。
情节(讲解员)
更多关于
沙普利值
在博弈论中,参与者的沙普利值是合作博弈中参与者的平均边际贡献。在机器学习预测的上下文中,查询点的特征的Shapley值解释了该特征在指定查询点对预测的贡献(回归响应或分类每个类的得分)。
查询点的特征Shapley值是该特征对平均预测偏差的贡献。对于一个查询点,所有特征的Shapley值之和对应于预测与平均值的总偏差。也就是说,平均预测和所有特征的Shapley值的和对应于查询点的预测。
详情请参见机器学习模型的Shapley值.
参考文献
[1]伦德伯格,斯科特M.和S.李。《解释模型预测的统一方法》神经信息处理系统研究进展30(2017): 4765-774。
[2] Aas, Kjersti, Martin。朱利姆和安德斯·洛兰德。《当特征相互依赖时,解释个体预测:对沙普利值的更精确近似》arXiv: 1903.10464(2019)。
扩展功能
自动平行支撑万博1manbetx
通过使用并行计算工具箱™自动并行运行计算来加速代码。
要并行运行,请设置UseParallel
参数的名称-值真正的
在此函数的调用中。
有关并行计算的更多一般信息,请参见运行MATLAB函数与自动并行支持万博1manbetx(并行计算工具箱).
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。