福利价值观
的福芙查询点的特征的值介绍了由于该特征的平均预测从平均预测对查询点的预测的偏差。对于每个查询点,所有功能的福音值的总和对应于从平均值的预测的总偏差。
您可以创建沙普利
具有指定查询点的机器学习模型的对象(queryPoint
).该软件创建一个对象,并计算查询点的所有特征的Shapley值。
使用Shapley值解释各个特征对指定查询点预测的贡献。使用情节
函数创建Shapley值的条形图。属性可以计算另一个查询点的Shapley值适合
函数。
还计算查询点的福音值解释者
=沙普利(___,'querypoint',queryPoint
)queryPoint
并存储计算的福利值ShapleyValues
性质解释者
. 您可以指定queryPoint
除了前面语法中的任何输入参数组合之外。
黑匣子
- - - - - -需要解释的机器学习模型要解释的机器学习模型,指定为完整或紧凑的回归或分类模型对象或函数句柄。
完整或紧凑的模型对象-可以指定完整或紧凑的回归或分类模型对象,该对象具有预测
对象的功能。该软件使用预测
计算福利值的功能。
如果指定不包含预测器数据的模型对象(例如,Compact Model),则必须提供预测器数据使用X
.
训练模型时,使用数值矩阵或表格作为预测数据,其中行对应于单个观测值。
回归模型对象
万博1manbetx支持的模型 | 完整或紧凑的回归模型对象 |
---|---|
回归模型的集合 | RegressionEnsemble ,回归释迦缩短 ,CompactRegressionEnsemble |
高斯内核回归模型使用随机特征扩展 | 回归核 |
高斯过程回归 | regressiongp. ,CompactRegressionGP |
广义加性模型 | 回归 ,compactregressiongam. |
高维数据的线性回归 | 回归线性 |
神经网络回归模型 | RegressionNeuralNetwork ,CompactRegressionNeuralNetwork |
回归树 | 回归植物 ,Compactregressiontree. |
万博1manbetx支持向量机回归 | 回归vm. ,compactregressionsvm. |
分类模型对象
万博1manbetx支持的模型 | 完整或紧凑分类模型对象 |
---|---|
判别分析分类器 | ClassificationDiscriminant ,CompactClassificationDiscriminant. |
支持向量机或其他分类器的多款模型万博1manbetx | 分类 ,CompactClassificationECOC |
学习者的集体融合 | 分类素.. ,CompactClassificationseMble ,ClassificationBaggedEnsemble |
基于随机特征展开的高斯核分类模型 | ClassificationKernel |
广义加性模型 | Classificationgam. ,CompactClassificationGAM |
k-最近邻分类器 | ClassificationKNN |
线性分类模型 | 分类线性 |
多类朴素贝叶斯模型 | ClassificationNaiveBayes ,CompactClassificaNiveBayes. |
神经网络分类器 | 分类神经网络 ,CompactClassificationNeuralNetwork |
万博1manbetx一类和二类支持向量机分类器 | 分类VM. ,CompactClassificationsVM. |
多包分类的二进制决策树 | ClassificationTree. ,CompactClassificationTree. |
函数句柄——可以指定一个函数句柄,该函数句柄接受预测器数据并返回一个列向量,该列向量包含预测器数据中每个观测的预测。预测是对回归的预测反应或对分类的单个类的预测得分。您必须提供预测数据使用X
.
X
- - - - - -预测数据预测器数据,指定为数字矩阵或表格。每行X
对应于一个观察,并且每列对应于一个变量。
对于数值矩阵:
组成列的变量X
必须与训练的预测变量具有相同的顺序黑匣子
,存储在黑箱。X
.
如果你受过训练黑匣子
那就用表格吧X
如果表包含所有数字预测变量,则可以是数字矩阵。
一个表:
如果你受过训练黑匣子
使用表(例如,TBL.
),然后所有预测器变量都在X
必须具有与中相同的变量名和数据类型TBL.
.但是,列顺序X
不需要对应的列顺序TBL.
.
如果你受过训练黑匣子
使用一个数字矩阵,然后预测器命名黑盒,黑盒名称
和相应的预测变量名X
必须是一样的。要在培训期间指定预测器名称,请使用“预测器名称”
名称值参数。所有预测因子变量X
必须是数字向量。
X
可以包含额外的变量(响应变量、观察权重等),但是沙普利
忽略了它们。
沙普利
不支持字符向量的单万博1manbetx元格阵列以外的多列变量或单元格阵列。
如果黑匣子
是否必须提供不包含预测数据或函数句柄的模型对象X
.如果黑匣子
是一个完整的机器学习模型对象,请指定此参数,然后沙普利
不使用预测数据在黑匣子
;它仅使用指定的预测值数据。
数据类型:单
|双倍的
queryPoint
- - - - - -查询点查询点沙普利
解释一种预测,指定为数字值的行向量或单行表。
对于数值的行向量:
对于单行表:
如果你受过训练黑匣子
使用表(例如,TBL.
),然后所有预测器变量都在queryPoint
必须具有与中相同的变量名和数据类型TBL.
.但是,列顺序queryPoint
不需要对应的列顺序TBL.
.
如果你受过训练黑匣子
使用一个数字矩阵,然后预测器命名黑盒,黑盒名称
和相应的预测变量名queryPoint
必须是一样的。要在培训期间指定预测器名称,请使用“预测器名称”
名称值参数。所有预测因子变量queryPoint
必须是数字向量。
queryPoint
可以包含额外的变量(响应变量、观察权重等),但是沙普利
忽略了它们。
沙普利
不支持字符向量的单万博1manbetx元格阵列以外的多列变量或单元格阵列。
如果queryPoint
包含南
S表示连续预测器和“方法”
是'条件 - 内核'
,则Shapley值(ShapleyValues
)在返回的对象中是南
年代。否则,沙普利
把手南
in.queryPoint
以同样的方式黑匣子
(这预测
对象功能黑匣子
或指定的函数句柄黑匣子
).
例子:blackbox.x(1,:)
指定查询点作为完整机器学习模型中的预测器数据的第一次观察黑匣子
.
数据类型:单
|双倍的
|桌子
指定可选的逗号分隔的对名称、值
论点。的名字
参数名和价值
是相应的价值。的名字
必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:name1,value1,...,namen,valuen
.
福芙(Blackbox,'querypoint',q,'方法','conditional-kernel')
创建一个沙普利
对象并计算查询点的Shapley值问
使用扩展到kernelshap算法。
“CategoricalPredictors”
- - - - - -分类预测列表“全部”
分类预测器列表,指定为该表中的值之一。
价值 | 描述 |
---|---|
正整数向量 | 向量中的每个条目是与包含分类变量的预测数据列对应的索引值。索引值在1之间 如果 |
逻辑向量 | 一个 |
字符矩阵 | 矩阵的每一行都是一个预测变量的名称。这些名称必须以表的形式与预测器数据的变量名称相匹配。用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。 |
字符向量的字符串数组或单元格数组 | 数组中的每个元素是预测器变量的名称。这些名称必须以表的形式与预测器数据的变量名称相匹配。 |
“全部” |
所有的预测都是绝对的。 |
如果您指定黑匣子
作为函数句柄沙普利
从预测数据中确定分类预测X
.如果预测器数据在表中,沙普利
如果一个变量是逻辑向量、无序分类向量、字符数组、字符串数组或字符向量的单元格数组,则假设它是类别变量。如果预测数据是一个矩阵,沙普利
假设所有预测值都是连续的。要将任何其他预测值识别为分类预测值,请使用“CategoricalPredictors”
名称值参数。
如果您指定黑匣子
作为回归或分类模型对象,然后沙普利
属性标识分类预测器分类预测器
模型对象的属性。
沙普利
万博1manbetx支持一个有序的分类预测器黑匣子
万博1manbetx支持有序分类预测和“方法”
是“interventional-kernel”
.
例子:'patericalpricictors','全部'
数据类型:单
|双倍的
|逻辑
|char
|字符串
|细胞
“MaxNumSubsets”
- - - - - -最大预测器子集数目min (2 ^ M, 1024)
在哪里米
是预测器的数量(默认)|正整数“UseParallel”
- - - - - -并行运行的标志假的
(默认)|真的
黑箱模型
- - - - - -需要解释的机器学习模型BlackboxFitted
- - - - - -基于机器学习模型的查询点预测此属性是只读的。
对机器学习模型计算的查询点的预测(黑箱模型
),指定为标量。
如果黑箱模型
那是一个模型对象,然后BlackboxFitted
是回归的预测反应或分类的分类标签。
如果黑箱模型
是一个函数句柄,那么BlackboxFitted
是函数句柄返回的值,可以是用于回归的预测响应,也可以是用于分类的单个类的预测得分。
数据类型:单
|双倍的
|分类
|逻辑
|char
|字符串
|细胞
分类预测器
- - - - - -分类预测索引[]
此属性是只读的。
分类预测索引指定为正整数的向量。分类预测器
包含与包含分类预测器的预测器数据列对应的索引值。如果没有预测器都是分类的,则此属性是空的([]
).
如果您指定黑匣子
然后使用函数句柄沙普利
从预测数据中确定分类预测X
.如果指定“CategoricalPredictors”
名称-值参数,然后参数设置此属性。
如果您指定黑匣子
作为回归或分类模型对象,然后沙普利
通过使用分类预测器
模型对象的属性。
沙普利
万博1manbetx支持一个有序的分类预测器黑匣子
万博1manbetx支持有序分类预测和“方法”
是“interventional-kernel”
.
数据类型:单
|双倍的
方法
- - - - - -Shapley值计算算法“interventional-kernel”
|'条件 - 内核'
NumSubsets
- - - - - -预测器子集数目此属性是只读的。
用于Shapley值计算的预测器子集的数目,指定为正整数。
的“MaxNumSubsets”
争论沙普利
或者“MaxNumSubsets”
争论适合
设置此属性。
有关如何沙普利
选择要使用的子集,请参阅计算福利价值的复杂性.
数据类型:单
|双倍的
QueryPoint
- - - - - -查询点此属性是只读的。
查询点沙普利
解释使用福利值的预测(ShapleyValues
),指定为数值或单行表的行向量。
的queryPoint
争论沙普利
或者queryPoint
争论适合
设置此属性。
数据类型:单
|双倍的
|桌子
ShapleyValues
- - - - - -查询点的Shapley值此属性是只读的。
查询点的Shapley值(QueryPoint
),指定为表。
对于回归,表有两列。第一列包含预测器变量名,第二列包含预测器的Shapley值。
对于分类,表有两个或更多的列,取决于类的数量黑箱模型
.第一列包含预测器变量名,其余列包含每个类的预测器的Shapley值。
数据类型:桌子
沙普利
目的训练分类模型并创建沙普利
对象。当你创建沙普利
对象,指定查询点,以便软件计算查询点的福音值。然后使用对象函数创建Shapley值的柱状图情节
.
加载Creditrating_Historical.
数据集。该数据集包含客户id及其财务比率、行业标签和信用评级。
tbl=可读(“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.
函数。使用从第二列到第七列的变量TBL.
作为预测变量。推荐的实践是指定要设置类的类名称。
黑箱= fitcecoc(资源描述,“评级”,...“预测器名称”tbl.Properties.VariableNames (7),...“CategoricalPredictors”,“行业”,...'classnames',{“AAA”“AA”“一个”'BBB'“BB”“B”“CCC”});
创建一个沙普利
解释对最后一个观察预测的对象。指定查询点,以便软件计算福利值并将其存储在其中ShapleyValues
财产。
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'}
解释器=福利(Blackbox,“QueryPoint”,querypoint)
警告:计算可能很慢,因为预测器数据有超过1000个观测。使用较小的训练集样本,或指定“UseParallel”为真值,以实现更快的计算。
explainer=shapley,属性:blackbox模型:[1x1 ClassificationECOC]查询点:[1x8表]Blackbox拟合:{AA'}ShapleyValues:[6x8表]NumSubsets:64 X:[3932x6表]分类预测:6方法:'
如警告消息所示,计算可能会很慢,因为预测器数据有1000多个观测值。为了加快计算速度,请使用较小的训练集样本或指定“UseParallel”
作为真的
.
对于分类模型,沙普利
使用每个类的预测类分数计算福利值。显示该值ShapleyValues
财产。
讲解员。福芙价值s
ans =.6×8表预测器AAA AA A BBB BB乙CCC __________ __________ ___________ ___________ ___________ ___________ ___________ “WC_TA” 0.014715 0.006439 0.002669 0.00048882 -0.0079015 -0.011841 -0.011395 “RE_TA” 0.047918 0.026904 0.014759 -0.0031481 -0.02512 -0.059927 -0.08418 “EBIT_TA” 0.0003427 0.00015023 0.00011977 3.3904E-05 -0.00018925 -0.00038136 -0.00033783 “MVE_BVTD” 0.38334 0.37376 0.17563 -0.032136 -0.18729 -0.24831 -0.19585 “S_TA” -0.0037303 -0.0026019 -8.9059e-05 -0.00081782 -5.4905e-05 0.0004788 -0.00069003 “行业” -0.028974-0.013901 0.0010365 0.02988 0.029887 0.029887 0.029887 0.029887 0.045396
的ShapleyValues
属性包含每个类的所有功能的Shapley值。
通过使用使用的浮现来绘制预测类的福音值情节
功能。要在任何预测器名称中显示现有下划线,请更改TickLabelInterpreter
轴到的值“没有”
.
f =图;绘图(解释器)f.currentaxes.ticklabelinterpreter =“没有”;
水平条形图显示所有变量的Shapley值,按其绝对值排序。每个Shapley值解释了查询点的分数与预测类的平均分数的偏差,这是由于相应的变量造成的。
沙普利
对象和计算福利值适合
训练一个回归模型并创建一个沙普利
对象。当你创建沙普利
对象,如果未指定查询点,则软件不会计算福利值。使用对象功能适合
来计算指定查询点的Shapley值。然后使用对象函数创建Shapley值的柱状图情节
.
加载carbig
数据集,其中包含在20世纪70年代和20世纪80年代初进行的汽车测量。
负载carbig
创建包含预测器变量的表加快
,气缸
等等,以及响应变量英里/加仑
.
台=表(加速度、汽缸、排量、马力、Model_Year重量,MPG);
删除训练集中缺失的值可以帮助减少内存消耗并加速训练Fitrkernel.
函数。删除缺失的值TBL.
.
台= rmmissing(台);
训练黑盒模型英里/加仑
通过使用Fitrkernel.
功能
rng (“默认”)重复性的%mdl = fitrkernel(tbl,“英里”,“CategoricalPredictors”[2 - 5]);
创建一个沙普利
对象。指定数据集TBL.
,因为MDL.
不包含培训数据。
讲解员=沙普利(mdl(资源)
解释器=福谢属性:BlackBoxModel:[1x1 regressionkernel] querypoint
解释者
存储训练数据TBL.
在里面X
财产。
计算所有预测变量的福音值,以获得第一次观察TBL.
.
: queryPoint =(资源(1)
查询点=表1×7加速气瓶位移马力型号_ _ ____________________________ 12 8 307 130 70 3504 18
解释者=拟合(解释者,查询点);
对于回归模型,沙普利
使用预测的响应计算福利值,并将它们存储在ShapleyValues
财产。显示中的值ShapleyValues
财产。
讲解员。福芙价值s
ans =.6×2表预测值ShapleyValue\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
显示查询点的预测响应,并通过使用绘制查询点的福音值情节
功能。要在任何预测器名称中显示现有下划线,请更改TickLabelInterpreter
轴到的值“没有”
.
讲解员。BlackboxFitted
ans = 21.0495
f =图;绘图(解释器)f.currentaxes.ticklabelinterpreter =“没有”;
水平条图显示了所有变量的福音值,按其绝对值排序。由于相应的变量,每个福族值解释了从平均值到平均值的查询点的偏差。
训练一个回归模型并创建一个沙普利
对象使用函数句柄到预测
模型的功能。使用对象函数适合
来计算指定查询点的Shapley值。然后使用对象函数绘制福利值情节
.
加载carbig
数据集,其中包含在20世纪70年代和20世纪80年代初进行的汽车测量。
负载carbig
创建包含预测器变量的表加快
,气缸
,等等。
台=表(加速度、汽缸、排量、马力、Model_Year重量);
训练黑盒模型英里/加仑
通过使用TreeBagger
函数。
rng (“默认”)重复性的%mdl = treebagger(100,tbl,mpg,“方法”,'回归',“CategoricalPredictors”[2 - 5]);
沙普利
不支持a万博1manbetxTreeBagger
直接对象,因此您无法指定第一个输入参数(Blackbox模型)沙普利
作为一个TreeBagger
对象。的函数句柄预测
函数。您还可以指定选项预测
函数使用函数的名称-值参数。
创建功能句柄预测
的函数TreeBagger
对象Mdl
.指定要使用的树索引数组1:50
.
f=@(tbl)预测(Mdl,tbl,'树木',1:50);
创建一个沙普利
使用功能句柄的对象f
.将BlackBox模型指定为函数句柄时,必须提供预测器数据。TBL.
包括分类预测因子(圆柱
和Model_Year
)双倍的
数据类型。默认情况下,沙普利
不治疗变量双倍的
作为分类预测器的数据类型。指定第二个(圆柱
)及第五(Model_Year
)变量作为分类预测因子。
解释者=夏普利(f,待定,“CategoricalPredictors”[2 - 5]);解释器=适合(解释器,TBL(1,:));
绘制Shapley值。
情节(解释器)
按重要性顺序显示预测值名称。
tbl.Properties。变量名([3 2 6 4 5 1])
ans=1 x6单元格第1列到第4列{'Displacement'}{'Columns'}{'Weight'}{'Horsepower'}第5列到第6列{'Model_Year'}{'Acceleration'}
在博弈论中,球员的福斯价值是合作游戏中玩家的平均边际贡献。在机器学习预测的上下文中,查询点的特征的福音值介绍了特征对预测的贡献(在指定的查询点处对预测(对分类的每个类的回归或分数的响应)的贡献。
由于该特征,福谢值对应于来自平均预测的查询点预测的偏差。对于查询点,所有特征的福音值的总和对应于从平均值的预测的总偏差。
有关详细信息,请参见机器学习模型的Shapley值.
Lundberg, Scott M和S. Lee。“解释模型预测的统一方法”神经信息处理系统研究进展30(2017): 4765 - 774。
Aas, Kjersti, Martin。朱勒姆和安德斯·洛兰德。解释特征依赖时的个人预测:对Shapley值的更精确的近似arXiv:1903.10464(2019).
要并行运行,请设置“UseParallel”
名称 - 值参数真的
在对此功能的调用中。
有关并行计算的更多通用信息,请参见使用自动并行支持运行MATLAB功能万博1manbetx(并行计算工具箱).
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。