沙普利值
这沙普利查询点的特征值解释了由于该特征,查询点的预测与平均预测之间的偏差。对于每个查询点,所有特征的Shapley值的和对应于预测与平均值的总偏差。
您可以创建福芙
对象,用于具有指定查询点的机器学习模型(QueryPoint.
).该软件创建一个对象,并计算查询点的所有特征的Shapley值。
使用Shapley值解释各个功能在指定查询点的预测中的贡献。使用阴谋
功能创建福利值的条形图。您可以通过使用使用该查询点来计算Shapley值合身
函数。
也计算了沙普利值查询点解释者
=福芙尼(___“QueryPoint”,QueryPoint.
)QueryPoint.
并将计算得到的Shapley值存储在ShapleyValues
财产解释者
.您可以指定QueryPoint.
除了前面语法中的任何输入参数组合之外。
黑盒子
-要解释的机器学习模型要解释的机器学习模型,指定为完整或紧凑的回归或分类模型对象或函数句柄。
完整或紧凑的模型对象 - 您可以指定完整或紧凑的回归或分类模型对象,其中包含一个预测
对象功能。该软件使用预测
函数来计算沙普利值。
如果您指定一个模型对象不包含预测数据(例如,紧凑型),则必须使用提供的预测数据X
.
当您培训模型时,使用数字矩阵或表格用于预测数据,其中行对应于各个观察。
回归模型对象
万博1manbetx支持的型号 | 完整或紧凑的回归模型对象 |
---|---|
乐团回归模型 | 回归 那RegressionBaggedEnsemble 那CompactRegressionEnsemble |
使用随机功能扩展高斯核回归模型 | 回归科内尔 |
高斯过程回归 | RegressionGP 那CompactRegressionGP |
广义添加剂模型 | RegressionGAM 那CompactRegressionGAM |
线性回归用于高维数据 | RegressionLinear |
神经网络回归模型 | 回归翁网络网络 那compactregressionneuralnetwork |
回归树 | RegressionTree 那CompactRegressionTree |
万博1manbetx支持向量机回归 | RegressionSVM 那CompactRegressionSVM |
分类模型对象
万博1manbetx支持的型号 | 完整或紧凑分类模型对象 |
---|---|
判别分析分类器 | ClassificationDiscriminant 那CompactClassificationDiscriminant |
多类模式的支持向量机或其他分类万博1manbetx | Classifiedecoc. 那CompactClassificeCoc. |
用于分类的学习者集合 | ClassificationEnsemble 那CompactClassificationEnsemble 那ClassificationBaggedEnsemble |
高斯内核分类模型使用随机特征扩展 | ClassificationKernel |
广义添加剂模型 | ClassificationGAM 那CompactClassificationgam. |
K.- 最终邻居分类器 | ClassificationKNN |
线性分类模型 | ClassificationLinear |
多类朴素贝叶斯模型 | ClassificationNaiveBayes 那CompactClassificationNaiveBayes |
神经网络分类 | ClassificationneuralKetwork. 那CompactClassificationneAuralKetwork. |
万博1manbetx支持向量机器分类器进行单级和二进制分类 | ClassificationSVM 那CompactClassificationSVM |
二进制决策树多类分类 | ClassificationTree 那CompactClassificationTree |
功能句柄 - 您可以指定接受预测器数据的函数句柄,并返回包含预测数据中的每个观察的预测的列向量。预测是对分类的回归的预测响应或单个类的预测得分。您必须使用预测器数据X
.
X
-预测数据预测数据,指定为数字矩阵或表。每一排X
对应于一个观测,并且每一列对应于一个变量。
对于数字矩阵:
组成列的变量X
必须具有与培训的预测变量相同的顺序黑盒子
,存储在黑箱。X
.
如果你训练有素黑盒子
使用表,然后X
如果表包含所有数字预测变量,则可以是数字矩阵。
一个表:
如果你训练有素黑盒子
使用表格(例如,TBL
),那么所有的预测变量X
必须具有与那些相同的变量名称和数据类型TBL
.然而,列顺序X
不需要对应于列顺序TBL
.
如果你训练有素黑盒子
使用数字矩阵,然后在预测名称blackbox.predictornames.
和相应的预测变量名X
必须是相同的。训练过程中指定的预测名称,请使用'predictornames'
名称-值参数。所有的预测变量X
必须是数值向量。
X
可以包含额外的变量(响应变量、观察权重等),但是福芙
忽略它们。
福芙
除了字符向量的单元万博1manbetx格数组外,不支持多列变量或单元格数组。
如果黑盒子
是否必须提供不包含预测数据或函数句柄的模型对象X
.如果黑盒子
是一个完整的机器学习模型对象,并指定此参数,然后指定此参数福芙
不使用预测数据在黑盒子
;它仅使用指定的预测数据。
数据类型:单
|双倍的
QueryPoint.
-查询点查询点在哪福芙
解释以数字值或单行表的行向量指定的预测。
对于数值的行向量:
对于单行表:
如果你训练有素黑盒子
使用表格(例如,TBL
),那么所有的预测变量QueryPoint.
必须具有与那些相同的变量名称和数据类型TBL
.然而,列顺序QueryPoint.
不需要对应于列顺序TBL
.
如果你训练有素黑盒子
使用数字矩阵,然后在预测名称blackbox.predictornames.
和相应的预测变量名QueryPoint.
必须是相同的。训练过程中指定的预测名称,请使用'predictornames'
名称-值参数。所有的预测变量QueryPoint.
必须是数值向量。
QueryPoint.
可以包含额外的变量(响应变量、观察权重等),但是福芙
忽略它们。
福芙
除了字符向量的单元万博1manbetx格数组外,不支持多列变量或单元格数组。
如果QueryPoint.
包含南
S对于连续预测和“方法”
是“conditional-kernel”
,然后是福利值(ShapleyValues
)在返回的对象是南
年代。否则,福芙
处理南
in.QueryPoint.
在相同的方式黑盒子
(这预测
的目标函数黑盒子
或指定的功能句柄黑盒子
).
例子:: blackbox.X (1)
指定查询点作为完整机器学习模型中预测器数据的第一个观察点黑盒子
.
数据类型:单
|双倍的
|桌子
指定可选的逗号分离对名称,价值
论点。的名字
是参数名称和价值
为对应值。的名字
必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen
.
沙普利(黑箱,QueryPoint,问,“方法”,“conditional-kernel”)
创建一个福芙
对象并计算查询点的福利值问:
使用对kernelSHAP算法的扩展。
'pationoricalpricictors'
-分类预测器列表'全部'
分类预测器列表,指定为此表中的值之一。
价值 | 描述 |
---|---|
正整数向量 | 向量中的每个条目是对应于包含一个分类变量预测数据的列的索引值。该指数的值是1和2之间 如果 |
逻辑矢量 | 一种 |
字符矩阵 | 矩阵的每一行是预测器变量的名称。名称必须匹配表格中的预测器数据的变量名称。使用额外的空白填充名称,因此字符矩阵的每行具有相同的长度。 |
字符串阵列或字符向量的单元数组 | 数组中的每个元素是一个预测变量的名称。名称必须匹配表格中的预测器数据的变量名称。 |
'全部' |
所有预测因素都是分类的。 |
如果您指定黑盒子
作为函数手柄,然后福芙
从预测数据中确定分类预测X
.如果预测器数据位于表中,福芙
如果一个变量是逻辑向量、无序分类向量、字符数组、字符串数组或字符向量的单元格数组,则假设它是类别变量。如果预测数据是一个矩阵,福芙
假设所有预测因子都是连续的。要将任何其他预测因子识别为分类预测器,请通过使用来指定它们'pationoricalpricictors'
名称-值参数。
如果您指定黑盒子
作为回归或分类模型对象,那么福芙
通过使用识别分类预测器CategoricalPredictors
属性。
福芙
万博1manbetx支持订购的分类预测仪黑盒子
万博1manbetx支持有序分类预测和“方法”
是'介入 - 内核'
.
例子:“CategoricalPredictors”、“所有”
数据类型:单
|双倍的
|逻辑
|char
|字符串
|细胞
'maxnumsubsets'
-最大预测器子集数目min (2 ^ M, 1024)
在哪里m
是预测者的数量吗(默认)|正整数“方法”
-福利价值计算算法'介入 - 内核'
(默认)|“conditional-kernel”
Shapley值计算算法,规定为'介入 - 内核'
或“conditional-kernel”
.
有关这些算法的详细信息,请参阅Shapley值计算算法.
例子:'方法','条件 - 内核'
数据类型:char
|字符串
'使用指平行'
-旗帜并行运行错误的
(默认)|真正的
并行运行的标志,指定为真正的
或错误的
.如果您指定“UseParallel”,真的
, 这福芙
函数通过使用并行执行循环迭代议案
.此选项需要并行计算工具箱™。
例子:“UseParallel”,真的
数据类型:逻辑
BlackBoxModel.
-要解释的机器学习模型黑盒装
-机器学习模型计算的查询点预测此属性是只读的。
通过机器学习模型(BlackBoxModel.
),指定为标量。
如果BlackBoxModel.
是模型对象,然后黑盒装
是回归的预测反应或分类的分类标签。
如果BlackBoxModel.
那是一个函数手柄,然后黑盒装
是函数句柄返回的值,用于回归的预测响应或用于分类的单个类的预测得分。
数据类型:单
|双倍的
|分类
|逻辑
|char
|字符串
|细胞
CategoricalPredictors
-分类预测指标[]
此属性是只读的。
分类预测指标,指定为一个正整数向量。CategoricalPredictors
包含与包含分类预测器的预测器数据列对应的索引值。如果没有任何预测器是绝对的,则此属性为空([]
).
如果您指定黑盒子
使用功能手柄,然后福芙
从预测数据中确定分类预测X
.如果您指定了'pationoricalpricictors'
名称值参数,然后参数设置此属性。
如果您指定黑盒子
作为回归或分类模型对象,那么福芙
通过使用来确定此属性CategoricalPredictors
属性。
福芙
万博1manbetx支持订购的分类预测仪黑盒子
万博1manbetx支持有序分类预测和“方法”
是'介入 - 内核'
.
数据类型:单
|双倍的
方法
-福利价值计算算法'介入 - 内核'
|“conditional-kernel”
numsubsets.
-预测器子集数目此属性是只读的。
用于福利值计算的预测器子集数量,指定为正整数。
这'maxnumsubsets'
的说法福芙
或者'maxnumsubsets'
的说法合身
设置此属性。
有关如何福芙
选择要使用的子集,参见计算Shapley值的复杂性.
数据类型:单
|双倍的
QueryPoint
-查询点此属性是只读的。
查询点在哪福芙
说明使用沙普利值(的预测ShapleyValues
),指定为数值或单行表的行向量。
这QueryPoint.
的说法福芙
或者QueryPoint.
的说法合身
设置此属性。
数据类型:单
|双倍的
|桌子
ShapleyValues
-查询点的福利值此属性是只读的。
查询点的Shapley值(QueryPoint
),指定为表格。
对于回归,表有两列。第一个列包含预测器变量名称,第二列包含预测器的福音值。
对于分类,表有两个或多个列,具体取决于类的数量BlackBoxModel.
.第一个列包含预测器变量名称,其余的列包含每个类的预测器的福音值。
数据类型:桌子
X
-预测数据此属性是只读的。
预测数据,指定为数字矩阵或表。
每一排X
对应于一个观测,并且每一列对应于一个变量。
如果观察包含南
S对于连续预测和方法
是“conditional-kernel”
, 然后福芙
不使用观测值进行Shapley值计算。否则,福芙
处理南
in.X
在相同的方式BlackBoxModel.
(这预测
的目标函数BlackBoxModel.
或指定的功能句柄BlackBoxModel.
).
福芙
存储所有观察,包括具有缺失值的行,在此属性中。
数据类型:单
|双倍的
|桌子
福芙
目的培训分类模型并创建一个福芙
对象。当你创建一个福芙
对象,指定查询点,使得软件计算沙普利值查询点。然后使用对象函数创建Shapley值的柱状图阴谋
.
加载CreditRating_Historical
数据集。数据集包含客户ID及其财务比率,行业标签和信用评级。
tbl =可读取的(“CreditRating_Historical.dat”);
显示表的前三行。
头(TBL,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}
通过使用培训Blackbox模型的信用评级模型fitcecoc
函数。在第二列中使用第二列中的变量TBL.
作为预测变量。推荐的做法是指定类名来设置类的顺序。
Blackbox = FitCecoc(TBL,'评分'那...'predictornames',tbl.Properties.VariableNames(2:7),...'pationoricalpricictors'那'行业'那...“类名”, {“AAA”“AA”“一个”'BBB'“BB”“B”“CCC”});
创建一个福芙
对象,它解释了最后一次观测的预测。指定一个查询点,以便软件计算Shapley值并将它们存储在ShapleyValues
财产。
queryPoint =(资源(最终,:)
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'}
讲解员=沙普利(黑盒,“QueryPoint”queryPoint)
警告:计算可能很慢,因为预测器数据有超过1000个观测。使用较小的训练集样本,或指定“UseParallel”为真值,以实现更快的计算。
解释器=福利属性:BlackBoxModel:[1x1 classificationCoc] QueryPoint:[1x8表] Blackboxfited:{'AA'} ShapleyValues:[6x8表] NumsubSets:64 x:[3932x6表] CateOricalPredictors:6方法:'Snormentional-Kernel'
由于警告消息指示,所以计算可能很慢,因为预测器数据具有超过1000个观察。为了更快计算,使用较小的培训集样本或指定'使用指平行'
作为真正的
.
对于分类模型,福芙
使用每个类的预测类得分计算Shapley值。中的值显示ShapleyValues
财产。
讲解员。沙普利价值s
ANS =6×8表预测AAA AA BBB BB B 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.3904 -0.00018925 e-05-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.00069003 "Industry" -0.028974 -0.013901 0.0010365 0.023298 0.026474 0.029887 0.045396
这ShapleyValues
属性包含每个类的所有特性的Shapley值。
通过使用积为预测类沙普利值阴谋
函数。要在任何预测器名称中显示现有的下划线,请更改ticklabelinterpreter.
轴的值'没有任何'
.
F =图。情节(解释器)f.CurrentAxes.TickLabelInterpreter ='没有任何';
水平条图显示了所有变量的福音值,按其绝对值排序。由于相应的变量,每个福芙值解释了从预测类的平均分数的查询点的分数偏差。
福芙
对象和计算Shapley值使用合身
火车回归模型并创建一个福芙
对象。当你创建一个福芙
对象,如果不指定查询点,则该软件不会计算沙普利值。使用对象功能合身
来计算指定查询点的Shapley值。然后使用对象函数创建Shapley值的柱状图阴谋
.
加载carbig
数据集,其中包含在上世纪70年代和80年代初制造的汽车的测量。
加载carbig
创建一个包含预测变量表加速
那气缸
,等,以及作为响应变量英里/加仑
.
台=表(加速度、汽缸、排量、马力、Model_Year重量,MPG);
删除训练集中缺失的值可以帮助减少内存消耗并加速训练fitrkernel
函数。删除在遗漏值TBL.
.
台= rmmissing(台);
训练黑盒模型英里/加仑
通过使用fitrkernel
函数
rng (“默认”)重复性的%mdl = fitrkernel(资源描述,'mpg'那'pationoricalpricictors',[2 5]);
创建一个福芙
对象。指定数据集TBL.
, 因为mdl
不包含培训数据。
解释器=福利(MDL,TBL)
explainer = shapley with properties: BlackboxModel: [1x1 RegressionKernel] QueryPoint: [] BlackboxFitted: [] ShapleyValues: [] NumSubsets: 64 X: [392x7 table] CategoricalPredictors: [2 5] Method: ' interinteral -kernel'
解释者
存储训练数据TBL.
在里面X
财产。
计算所有预测变量的值,沙普利在第一观察TBL.
.
: queryPoint =(资源(1)
querypoint =1×7表加速气缸位移马力Model_Year体重MPG ____________ _________ ____________ __________ __________ ______ ___ 12 8 307 130 70 3504
解释器= fit(解释器,querypoint);
对于回归模型,福芙
计算在使用预测的响应并将它们存储沙普利值,并且ShapleyValues
财产。中的值显示ShapleyValues
财产。
讲解员。沙普利价值s
ANS =6×2表预测器ShapleyValue ______________ ____________“加速度”-0.1561“气缸”-0.18306“位移”-0.34203“马力”-0.27291“Model_Year”-0.2926“重量”-0.32402
控件显示查询点的预测响应,并绘制查询点的Shapley值阴谋
函数。要在任何预测器名称中显示现有的下划线,请更改ticklabelinterpreter.
轴的值'没有任何'
.
解释者.Blackboxfited.
ans = 21.0495
F =图。情节(解释器)f.CurrentAxes.TickLabelInterpreter ='没有任何';
水平条图显示了所有变量的福音值,按其绝对值排序。每个Shapley值解释了预测用于从所述平均查询点的偏差,由于相应的变量。
火车回归模型并创建一个福芙
对象使用函数句柄预测
模型的功能。使用对象功能合身
来计算指定查询点的Shapley值。然后通过使用对象函数绘制沙普利值阴谋
.
加载carbig
数据集,其中包含在上世纪70年代和80年代初制造的汽车的测量。
加载carbig
创建一个包含预测变量表加速
那气缸
,等等。
TBL =桌子(加速,气瓶,位移,马力,型号,重量);
训练黑盒模型英里/加仑
通过使用treebagger
函数。
rng (“默认”)重复性的%Mdl = TreeBagger(100台,英里/加仑,“方法”那“回归”那'pationoricalpricictors',[2 5]);
福芙
不支持万博1manbetxtreebagger
直接对象,所以不能指定的第一个输入参数(黑箱模型)福芙
作为 atreebagger
对象。的函数句柄预测
函数。的选项预测
使用函数的名称值参数函数。
创建函数句柄预测
功能的功能treebagger
目的Mdl
.指定要使用的树索引数组1:50
.
f = @(tbl)预测(mdl,tbl,“树”,1:50);
创建一个福芙
对象使用函数句柄F
.当您指定黑箱模型作为函数句柄时,您必须提供预测器数据。TBL.
包括分类预测因子(圆筒
和Model_Year
)与之双倍的
数据类型。默认情况下,福芙
不使用双倍的
作为分类预测器的数据类型。指定第二个(圆筒
)及第五(Model_Year
)变量作为分类预测因子。
解释者=福芙(F,TBL,'pationoricalpricictors',[2 5]);解释器=拟合(解释器,TBL(1,:));
绘制福利值。
图(解释器)
按重要性顺序显示预测器名称。
tbl.properties.variablenames([3 2 6 4 5 1])
ans =.1x6细胞列1到4 {'sentacement'} {'cylinders'} {'weight'} {'horsepower'}列5到6 {'model_year'} {'acceleration'}
Lundberg, Scott M和S. Lee。“解释模型预测的统一方法”神经信息处理系统研究进展30(2017): 4765 - 774。
[2] AAS,Kjersti,Martin。jullum,和安德斯兰德兰。“在特征依赖时解释个人预测:对福芙值的更准确的近似值。”arxiv:1903.10464(2019).
要并行运行,请设置'使用指平行'
名称值参数真正的
在调用这个函数。
有关并行计算的更多一般信息,请参阅运行MATLAB函数与自动并行支持万博1manbetx(并行计算工具箱).
Tiene UnaVersiónModififada de Este Ejegro。¿desea abrir este ejegro ejemero con modififiones?
有一个对应于MATLAB的代码:
把它扔进introduciéndolo然后把它扔进MATLAB。Los navegadores web no admit comandos de MATLAB。
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。