沙普利
描述
的沙普利查询点的一个特性值解释查询的预测点的偏差的平均预测,由于功能。对于每个查询点,沙普利值之和所有功能对应的总偏差预测的平均水平。
您可以创建一个沙普利
对机器学习模型对象与指定查询点(queryPoint
)。该软件创建一个对象的所有特性和计算夏普利值查询点。
利用夏普利值解释个人特性预测的贡献在指定查询点。使用情节
函数创建一个条形图的夏普利值。你可以计算出另一个查询点利用夏普利值适合
函数。
创建
描述
也计算查询的夏普利值点讲解员
=沙普利(___“QueryPoint”,queryPoint
)queryPoint
和商店的夏普利值计算ShapleyValues
的属性讲解员
。您可以指定queryPoint
除了任何输入参数组合在前面的语法。
输入参数
黑箱
- - - - - -机器学习模型来解释
回归模型对象|分类模型对象|函数处理
机器学习模型来解释,指定为一个完整紧凑的回归或分类模型对象或一个函数处理。
全部或紧凑的模型对象,您可以指定一个完整紧凑的回归或分类模型对象,一个
预测
对象的功能。软件使用预测
函数来计算夏普利值。如果您指定一个不包含预测数据的模型对象(例如,一个紧凑的模型),然后你必须提供预测数据使用
X
。当你训练一个模型,使用数值矩阵的预测数据或表行对应于观测。
回归模型对象
金宝app支持模型 全部或紧凑的回归模型对象 整体的回归模型 RegressionEnsemble
,RegressionBaggedEnsemble
,CompactRegressionEnsemble
高斯核函数回归模型使用随机特性的扩张 RegressionKernel
高斯过程回归 RegressionGP
,CompactRegressionGP
广义加性模型 RegressionGAM
,CompactRegressionGAM
对高维数据线性回归 RegressionLinear
神经网络回归模型 RegressionNeuralNetwork
,CompactRegressionNeuralNetwork
回归树 RegressionTree
,CompactRegressionTree
金宝app支持向量机回归 RegressionSVM
,CompactRegressionSVM
分类模型对象
金宝app支持模型 全部或紧凑的分类模型对象 判别分析分类器 ClassificationDiscriminant
,CompactClassificationDiscriminant
多类支持向量机模型或其他分类器金宝app ClassificationECOC
,CompactClassificationECOC
系综分类的学习者 ClassificationEnsemble
,CompactClassificationEnsemble
,ClassificationBaggedEnsemble
高斯核函数分类模型使用随机特性的扩张 ClassificationKernel
广义加性模型 ClassificationGAM
,CompactClassificationGAM
k最近的邻居分类器 ClassificationKNN
线性分类模型 ClassificationLinear
多级朴素贝叶斯模型 ClassificationNaiveBayes
,CompactClassificationNaiveBayes
神经网络分类器 ClassificationNeuralNetwork
,CompactClassificationNeuralNetwork
金宝app看到下面成了和二进制分类的支持向量机分类器 ClassificationSVM
,CompactClassificationSVM
二叉决策树的多类分类 ClassificationTree
,CompactClassificationTree
函数处理,您可以指定一个函数处理接受预测数据和返回一个列向量,其中包含预测中的每个观测数据的预测。回归的预测是预测响应或预测的单个类分类。您必须提供预测数据使用
X
。
X
- - - - - -预测数据
数字矩阵|表
预测数据,指定为一个数字矩阵或表。每一行的X
对应于一个观察,每一列对应一个变量。
一个数字矩阵:
的变量的列
X
必须有相同的订单预测变量,训练吗黑箱
,存储在blackbox.X
。如果你训练
黑箱
使用一个表,那么X
可以是一个数字矩阵表包含所有数值预测变量。
一个表:
如果你训练
黑箱
使用一个表(例如,资源描述
),那么所有的预测变量X
必须有相同的变量名和数据类型的吗资源描述
。然而,列的顺序X
不需要对应的列顺序资源描述
。如果你训练
黑箱
使用一个数字矩阵,然后预测名称blackbox.PredictorNames
和相应的预测变量名称X
必须相同。使用指定预测名称在训练PredictorNames
名称-值参数。所有的预测变量X
必须是数值向量。X
可以包含额外的变量(响应变量,观察体重、等等),但沙普利
忽略了它们。沙普利
不支持多列变量或细金宝app胞数组以外的细胞阵列的特征向量。
如果黑箱
是一个模型对象,不包含预测数据或一个函数处理,您必须提供吗X
。如果黑箱
是一个完整的机器学习模型对象,你指定这个参数,然后呢沙普利
不使用预测数据黑箱
;只使用指定的预测数据。
数据类型:单
|双
queryPoint
- - - - - -查询点
行向量的数值|单列表
查询点沙普利
解释了一个预测,指定为一个行向量的数值或单列表。
一个行向量的数值:
单列表:
如果你训练
黑箱
使用一个表(例如,资源描述
),那么所有的预测变量queryPoint
必须有相同的变量名和数据类型的吗资源描述
。然而,列的顺序queryPoint
不需要对应的列顺序资源描述
。如果你训练
黑箱
使用一个数字矩阵,然后预测名称blackbox.PredictorNames
和相应的预测变量名称queryPoint
必须相同。使用指定预测名称在训练PredictorNames
名称-值参数。所有的预测变量queryPoint
必须是数值向量。queryPoint
可以包含额外的变量(响应变量,观察体重、等等),但沙普利
忽略了它们。沙普利
不支持多列变量或细金宝app胞数组以外的细胞阵列的特征向量。
如果queryPoint
包含南
年代连续预测“方法”
是“条件”
,然后夏普利值(ShapleyValues
在返回的对象南
年代。否则,沙普利
处理南
年代queryPoint
以同样的方式黑箱
(预测
对象的函数黑箱
或指定的函数处理黑箱
)。
例子::blackbox.X (1)
指定查询点作为第一次观察到完整的预测数据的机器学习模型黑箱
。
数据类型:单
|双
|表
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:沙普利(黑箱,QueryPoint,问,“方法”,“条件”)
创建一个沙普利
查询对象和计算夏普利值点问
使用扩展内核世鹏科技电子算法。
CategoricalPredictors
- - - - - -分类预测列表
向量的正整数|逻辑向量|字符矩阵|字符串数组|单元阵列的特征向量|“所有”
分类预测表,在这个表指定为一个值。
价值 | 描述 |
---|---|
向量的正整数 | 向量中的每个条目是一个索引值表明相应的预测分类。索引值介于1和 如果 |
逻辑向量 | 一个 |
字符矩阵 | 矩阵的每一行是一个预测变量的名字。名称必须匹配的变量名的形式表预测数据。垫的名字与额外的空格字符矩阵的每一行有相同的长度。 |
字符串数组或单元阵列的特征向量 | 数组中的每个元素是一个预测变量的名字。名称必须匹配的变量名的形式表预测数据。 |
“所有” |
所有预测都直言。 |
如果您指定
黑箱
作为处理函数沙普利
识别分类预测的预测数据X
。如果预测的数据表中,沙普利
假设变量是直言如果它是一个逻辑向量,无序分类向量,字符数组,字符串数组或单元阵列特征向量。如果预测数据是一个矩阵,沙普利
假设所有的预测都是连续的。识别任何其他预测分类预测,通过使用指定它们CategoricalPredictors
名称-值参数。如果您指定
黑箱
作为回归或分类模型对象沙普利
通过使用的标识分类预测CategoricalPredictors
模型对象的属性。
沙普利
金宝app支持有序分类预测时黑箱
金宝app支持有序分类预测和指定“方法”
作为“介入”
。
例子:“CategoricalPredictors”、“所有”
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
方法
- - - - - -沙普利值计算算法
“介入”
(默认)|“条件”
自从R2023a
沙普利值计算算法,指定为“介入”
或“条件”
。
之前R2023a:您可以指定这个论点“interventional-kernel”
或“conditional-kernel”
。沙普利
金宝app支持内核世鹏科技电子内核世鹏科技电子算法的算法和扩展。
例子:“方法”,“条件”
数据类型:字符
|字符串
UseParallel
- - - - - -国旗并行运行
假
(默认)|真正的
国旗并行运行,指定为真正的
或假
。如果您指定“UseParallel”,真的
,沙普利
函数执行为
通过循环迭代parfor
。并行循环运行时并行计算工具箱™。
这个论点是有效的只有当沙普利
使用树世鹏科技电子一树的算法,算法内核世鹏科技电子或扩展内核世鹏科技电子算法。
例子:“UseParallel”,真的
数据类型:逻辑
属性
BlackboxModel
- - - - - -机器学习模型来解释
回归模型对象|分类模型对象|函数处理
BlackboxFitted
- - - - - -预测查询点计算机器学习模型
标量
这个属性是只读的。
预测查询点计算的机器学习模型(BlackboxModel
),指定为一个标量。
如果
BlackboxModel
是一个模型对象,那么BlackboxFitted
是回归的预测响应或分类的分类标签。如果
BlackboxModel
是一个函数处理呢BlackboxFitted
是一个返回值的函数处理,响应回归预测或预测评分的一个类分类。
CategoricalPredictors
- - - - - -分类预测指标
向量的正整数|[]
这个属性是只读的。
分类预测指标,指定为一个向量的正整数。CategoricalPredictors
包含索引值表明相应的预测分类。索引值介于1和p
,在那里p
预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的([]
)。
如果您指定
黑箱
使用一个函数处理沙普利
识别分类预测的预测数据X
。如果你指定CategoricalPredictors
名称-值参数,参数设置这个属性。如果您指定
黑箱
作为回归或分类模型对象沙普利
决定使用这个属性CategoricalPredictors
模型对象的属性。
沙普利
金宝app支持有序分类预测时黑箱
金宝app支持有序分类预测和当你指定“方法”
作为“介入”
。
拦截
- - - - - -平均预测
数值向量|数字标量
平均预测,预测数据的平均值X
,指定为一个数值向量或数字标量。
如果
BlackboxModel
是一个分类模型对象呢拦截
是一个向量分类的平均分数为每个类。如果
BlackboxModel
是一个回归模型对象呢拦截
是一个标量的平均响应。如果
BlackboxModel
是一个函数处理呢拦截
是一个标量函数的平均评价。
查询点,沙普利值之和所有功能对应的总偏差预测的平均水平(拦截
)。
方法
- - - - - -沙普利值计算算法
“interventional-linear”
|“interventional-tree”
|“interventional-kernel”
|“conditional-kernel”
这个属性是只读的。
沙普利值计算算法,指定为“interventional-linear”
,“interventional-tree”
,“interventional-kernel”
,或“conditional-kernel”
。
有关更多信息,请参见算法。
NumSubsets
- - - - - -预测的子集
正整数
这个属性是只读的。
数量的预测指标子集用于夏普利值计算,指定为一个正整数。
的MaxNumSubsets
的观点沙普利
或者是MaxNumSubsets
的观点适合
设置此属性。
有关如何沙普利
选择要使用的子集,明白了计算成本。
QueryPoint
- - - - - -查询点
行向量的数值|单列表
这个属性是只读的。
查询点沙普利
解释了一个预测利用夏普利值(ShapleyValues
),指定为一个行向量的数值或单列表。
的queryPoint
的观点沙普利
或者是queryPoint
的观点适合
设置此属性。
ShapleyValues
- - - - - -沙普利值查询点
表
这个属性是只读的。
沙普利值查询点(QueryPoint
),指定为一个表。
对于回归,表有两列。第一列包含预测变量的名称,第二列包含的夏普利值预测。
分类的表有两列或多列,根据类的数量
BlackboxModel
。第一列包含预测变量的名字,和其余的列包含为每个类的夏普利值预测。
例子
当创建计算夏普利值沙普利
对象
训练一个分类模型,并创建一个沙普利
对象。当您创建一个沙普利
对象,指定查询点,以便查询的软件计算夏普利值点。然后创建一个条形图的夏普利值通过使用对象的功能情节
。
加载CreditRating_Historical
数据集,数据集包含客户id和他们的财务比率,行业标签,信用评级。
台= readtable (“CreditRating_Historical.dat”);
显示表的前三行。
头(资源描述,3)
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(资源描述,“评级”,…“PredictorNames”tbl.Properties.VariableNames (7),…“CategoricalPredictors”,“行业”,…“类名”,{“AAA”“AA”“一个”“BBB”“BB”“B”“CCC”});
创建一个沙普利
对象,阐述了预测最后的观察。指定一个查询点,这样软件计算夏普利值并将它们存储在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: [1 x1 ClassificationECOC] QueryPoint:[1×8表]BlackboxFitted: {“AA”} ShapleyValues:[6×8表]NumSubsets: 64 X: [3932 x6表]CategoricalPredictors: 6方法:“interventional-kernel”拦截:[-1.7642 -1.3677 -1.0980 -1.0645 -1.4758 -2.1268 - -2.3909)
警告消息表明,计算可能会很慢,因为预测数据有超过1000的观察。更快的计算,使用一个更小的样本训练集或指定的“UseParallel”
作为真正的
。
对于一个分类模型,沙普利
计算夏普利值使用预测类分数为每个类。显示的值ShapleyValues
财产。
explainer.ShapleyValues
ans =6×8表预测AAA AA BBB BB B CCC __________ _____ __________ ___________ __________ ___________ __________ __________“WC_TA”0.051507 0.022531 0.0093463 0.0017109 -0.027655 -0.041443 -0.039882“RE_TA”0.16772 0.094211 0.051629 -0.011019 -0.087919 -0.20974 -0.29463“EBIT_TA”0.0011995 0.00052588 0.00041919 0.00011866 -0.00066237 -0.0013347 -0.0011824“MVE_BVTD”1.3417 1.3082 0.61472 -0.11247 -0.6555 -0.86908 -0.68547“S_TA”-0.013059 -0.0091049 -0.00031099 -0.0028624 -0.00019227 0.0016759 -0.0024149“行业”-0.10142 -0.048668 0.0036522 0.081542 0.092657 0.10464 0.15888
的ShapleyValues
属性包含所有功能的夏普利值为每个类。
情节的夏普利值预测类使用情节
函数。
情节(讲解员)
水平条形图显示了所有变量的夏普利值,按他们的绝对值。每个夏普利值解释查询的得分点的偏差的平均分数预测类,由于相应的变量。
创建沙普利
使用对象和计算夏普利值适合
训练一个回归模型,并创建一个沙普利
对象。当您创建一个沙普利
查询对象,如果你不指定一个点,然后软件不计算夏普利值。使用目标函数适合
指定的查询计算夏普利值点。然后创建一个条形图的夏普利值通过使用对象的功能情节
。
加载carbig
的数据集,其中包含测量汽车在1970年代末和1980年代初。
负载carbig
创建一个表包含预测变量加速度
,气缸
等等,以及响应变量英里/加仑
。
台=表(加速度、汽缸、排量、马力、Model_Year重量,MPG);
删除缺失值在一个训练集可以帮助减少内存消耗,加速训练fitrkernel
函数。删除缺失值资源描述
。
台= rmmissing(台);
火车的黑箱模型英里/加仑
通过使用fitrkernel
函数
rng (“默认”)%的再现性mdl = fitrkernel(资源描述,“英里”,“CategoricalPredictors”[2 - 5]);
创建一个沙普利
对象。指定的数据集资源描述
,因为mdl
不包含训练数据。
讲解员=沙普利(mdl(资源)
讲解员=沙普利与属性:BlackboxModel: [1 x1 RegressionKernel] QueryPoint: [] BlackboxFitted: [] ShapleyValues: [] NumSubsets: 64 X: [392 x7表]CategoricalPredictors:[2 5]方法:“interventional-kernel”拦截:22.6202
讲解员
存储训练数据资源描述
在X
财产。
计算所有预测变量的夏普利值第一观察资源描述
。
:queryPoint =(资源(1)
queryPoint =表1×7加速汽缸位移马力Model_Year重量MPG _______ _____ _______ __________ __________ ______ ___ 12 8 307 130 70 3504
讲解员=适合(讲解员,queryPoint);
回归模型,沙普利
使用预测响应计算夏普利值,并将它们存储在ShapleyValues
财产。显示的值ShapleyValues
财产。
explainer.ShapleyValues
ans =6×2表预测_______ ShapleyValue * * *“加速度”-0.1561“气缸”-0.18306“位移”-0.34203“马力”-0.27291“Model_Year”-0.2926“重量”-0.32402
情节的夏普利值查询使用情节
函数。
情节(讲解员)
水平条形图显示了所有变量的夏普利值,按他们的绝对值。每个夏普利值解释查询的预测点的偏差从平均,由于相应的变量。
指定使用函数黑箱模型处理
训练一个回归模型,并创建一个沙普利
使用一个函数处理的对象预测
的函数模型。使用目标函数适合
指定的查询计算夏普利值点。然后情节夏普利值通过使用对象的功能情节
。
加载carbig
的数据集,其中包含测量汽车在1970年代末和1980年代初。
负载carbig
创建一个表包含预测变量加速度
,气缸
,等等。
台=表(加速度、汽缸、排量、马力、Model_Year重量);
火车的黑箱模型英里/加仑
通过使用TreeBagger
函数。
rng (“默认”)%的再现性Mdl = TreeBagger(100台,英里/加仑,“方法”,“回归”,“CategoricalPredictors”[2 - 5]);
沙普利
不支持金宝appTreeBagger
直接对象,所以你不能指定第一个输入参数(黑箱模型)沙普利
作为一个TreeBagger
对象。相反,您可以使用一个函数句柄预测
函数。您还可以指定选项的预测
函数使用名称-值参数的函数。
创建函数句柄预测
的函数TreeBagger
对象Mdl
。指定要使用的树索引数组1:50
。
f = @(台)预测(Mdl、台、“树”、1:50);
创建一个沙普利
对象使用函数处理f
。当你指定一个黑箱模型作为处理函数,您必须提供预测数据。资源描述
包括分类预测(油缸
和Model_Year
)双
数据类型。默认情况下,沙普利
没有对变量双
数据类型分类预测。指定第二个(油缸
)、五(Model_Year
)作为分类预测变量。
讲解员=沙普利(f(资源“CategoricalPredictors”[2 - 5]);讲解员=适合(讲解员,台(1:));
情节夏普利值。
情节(讲解员)
更多关于
沙普利值
在博弈论中,一个球员的夏普利值是平均边际贡献的球员合作游戏。上下文中的机器学习预测的夏普利值功能查询点解释特性预测的贡献(响应回归或得分的每个类分类)在指定的查询。
的夏普利值功能查询点的贡献平均预测偏差特性。查询点,沙普利值之和所有功能对应的总偏差预测的平均水平。也就是说,平均预测和沙普利值的总和为所有特性对应查询的预测点。
更多细节,请参阅沙普利值机器学习模型。
引用
[1]Lundberg,斯科特·M。李,美国。“一个统一的方法来解释模型的预测”。先进的神经信息处理系统30 (2017):4765 - 774。
[2]Lundberg,斯科特·M。,G. Erion, H. Chen, et al. "From Local Explanations to Global Understanding with Explainable AI for Trees."自然机器智能2(2020年1月):56 - 67。
[3]Aas、Kjersti马丁Jullum,安德斯Løland。“解释个人预测当依赖特性:更精确的近似夏普利值。”人工智能298(2021年9月)。
扩展功能
自动并行支持金宝app
加速代码通过自动运行并行计算使用并行计算工具箱™。
并行运行,设置UseParallel
名称-值参数真正的
在调用这个函数。
关于并行计算的更一般的信息,请参阅MATLAB函数自动并行支持运行金宝app(并行计算工具箱)。
版本历史
介绍了R2021aMATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。