沙普利值
这沙普利查询点的特征值解释了由于该特征,查询点的预测与平均预测之间的偏差。对于每个查询点,所有特征的Shapley值的和对应于预测与平均值的总偏差。
您可以创建福芙
对象,用于具有指定查询点的机器学习模型(QueryPoint.
).该软件创建一个对象,并计算查询点的所有特征的Shapley值。
使用Shapley值来解释在指定查询点上单个特性对预测的贡献。使用情节
功能创建福利值的条形图。您可以通过使用来计算另一个查询点的福利值合身
函数。
也计算查询点的Shapley值讲解员
=福利(___“QueryPoint”,QueryPoint.
的)QueryPoint.
并将计算得到的Shapley值存储在ShapleyValues
的属性讲解员
.您可以指定QueryPoint.
除了前面语法中的任何输入参数组合之外。
黑箱
-需要解释的机器学习模型要解释的机器学习模型,指定为完整或紧凑的回归或分类模型对象或函数句柄。
完整或紧凑模型对象-您可以指定完整或紧凑的回归或分类模型对象,它具有预测
对象功能。该软件使用预测
函数来计算Shapley值。
如果指定的模型对象不包含预测器数据(例如,紧凑模型),则必须使用X
.
当您训练一个模型时,使用一个数字矩阵或表格来表示预测器数据,其中行对应于单个的观察结果。
回归模型对象
金宝app支持模型 | 完整或紧凑的回归模型对象 |
---|---|
回归模型集合 | 回归 那RegressionBaggedEnsemble 那CompactRegressionEnsemble |
高斯核回归模型采用随机特征展开 | RegressionKernel |
高斯过程回归 | RegressionGP 那CompactRegressionGP |
广义加性模型 | RegressionGAM 那CompactRegressionGAM |
高维数据的线性回归 | RegressionLinear |
神经网络回归模型 | 回归翁网络网络 那compactregressionneuralnetwork |
回归树 | RegressionTree 那CompactRegressionTree |
金宝app支持向量机回归 | RegressionSVM 那CompactRegressionSVM |
分类模型对象
金宝app支持模型 | 完整或紧凑分类模型对象 |
---|---|
判别分析分类器 | ClassificationDiscriminant 那CompactClassificationDiscriminant |
支持向量机或其他分类器的多类模型金宝app | ClassificationECOC 那CompactClassificyCoc. |
用于分类的学习者集合 | ClassificationEnsemble 那CompactClassificationEnsemble 那ClassificationBaggedEnsemble |
高斯核分类模型使用随机特征展开 | ClassificationKernel |
广义加性模型 | ClassificationGAM 那CompactClassificagegam. |
K.最近的邻居分类器 | ClassificationKNN |
线性分类模型 | ClassificationLinear |
多类朴素贝叶斯模型 | ClassificationNaiveBayes 那CompactClassificationNaiveBayes |
神经网络分类器 | ClassificationNeuralNetwork 那CompactClassificationneuralNetWork. |
金宝app支持向量机分类器用于一类和二值分类 | ClassificationSVM 那CompactClassificationSVM |
用于多类分类的二叉决策树 | ClassificationTree 那CompactClassificationTree |
功能句柄 - 您可以指定接受预测器数据的函数句柄,并返回包含预测数据中的每个观察的预测的列向量。预测是对分类的回归或预测得分的预测响应。您必须提供预测器数据使用X
.
X
-预测数据预测器数据,指定为数字矩阵或表。每一行的X
对应一个观察值,每一列对应一个变量。
对于数值矩阵:
组成列的变量X
必须和训练的预测变量有相同的顺序吗黑箱
,存储在黑箱。X
.
如果你训练黑箱
那就用表格吧X
如果表包含所有数字预测变量,则可以是数字矩阵。
一个表:
如果你训练黑箱
使用表格(例如,资源描述
),然后所有预测变量X
必须具有与中相同的变量名和数据类型资源描述
.但是,的列顺序X
不需要对应于列顺序资源描述
.
如果你训练黑箱
使用一个数字矩阵,然后预测器命名黑箱。PredictorNames
和相应的预测变量名X
肯定是一样的。要在训练期间指定预测器名称,请使用“PredictorNames”
名称-值参数。所有的预测变量X
必须是数值向量。
X
可以包含额外的变量(响应变量、观察权重等),但是福芙
忽略它们。
福芙
除了字符向量的单元金宝app格数组外,不支持多列变量或单元格数组。
如果黑箱
是否必须提供不包含预测数据或函数句柄的模型对象X
.如果黑箱
是一个完整的机器学习模型对象,然后指定这个参数福芙
不使用预测数据在黑箱
;它只使用指定的预测器数据。
数据类型:单
|双
QueryPoint.
-查询点查询点福芙
解释以数字值或单行表的行向量指定的预测。
对于数值的行向量:
对于单行表:
如果你训练黑箱
使用表格(例如,资源描述
),然后所有预测变量QueryPoint.
必须具有与中相同的变量名和数据类型资源描述
.但是,的列顺序QueryPoint.
不需要对应于列顺序资源描述
.
如果你训练黑箱
使用一个数字矩阵,然后预测器命名黑箱。PredictorNames
和相应的预测变量名QueryPoint.
肯定是一样的。要在训练期间指定预测器名称,请使用“PredictorNames”
名称-值参数。所有的预测变量QueryPoint.
必须是数值向量。
QueryPoint.
可以包含额外的变量(响应变量、观察权重等),但是福芙
忽略它们。
福芙
除了字符向量的单元金宝app格数组外,不支持多列变量或单元格数组。
如果QueryPoint.
包含南
S表示连续预测器和“方法”
是“conditional-kernel”
,然后是福谢价值(ShapleyValues
)返回的对象南
年代。否则,福芙
处理南
年代QueryPoint.
在相同的方式黑箱
(预测
对象的函数黑箱
或指定的函数句柄黑箱
).
例子:: blackbox.X (1)
指定查询点作为完整机器学习模型中预测器数据的第一个观察点黑箱
.
数据类型:单
|双
|表格
指定可选的逗号分隔的对名称,值
参数。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
沙普利(黑箱,QueryPoint,问,“方法”,“conditional-kernel”)
创建一个福芙
对象并计算查询点的Shapley值问:
使用对kernelSHAP算法的扩展。
CategoricalPredictors
-分类预测器列表“所有”
分类预测器列表,指定为此表中的值之一。
价值 | 描述 |
---|---|
正整数向量 | 向量中的每一项都是一个指标值,表明相应的预测器是分类的。索引值在1到之间 如果 |
逻辑向量 | 一种 |
字符矩阵 | 矩阵的每一行是预测变量的名称。名称必须与表格的表单中的预测器数据的变量名称匹配。使用额外的空白填充名称,因此字符矩阵的每行具有相同的长度。 |
字符向量的字符串数组或单元格数组 | 数组中的每个元素都是一个预测变量的名称。名称必须与表格的表单中的预测器数据的变量名称匹配。 |
“所有” |
所有的预测都是绝对的。 |
如果您指定黑箱
作为函数句柄福芙
从预测数据中确定分类预测X
.如果预测器数据位于表中,福芙
如果一个变量是逻辑向量、无序分类向量、字符数组、字符串数组或字符向量的单元格数组,则假设它是类别变量。如果预测数据是一个矩阵,福芙
假设所有预测器都是连续的。要将任何其他预测器标识为分类预测器,请使用'patericalpricictors'
名称-值参数。
如果您指定黑箱
作为回归或分类模型对象,那么福芙
通过使用识别分类预测器CategoricalPredictors
属性。
福芙
金宝app支持有序的分类预测器何时黑箱
金宝app支持有序分类预测和“方法”
是'介入 - 内核'
.
例子:“CategoricalPredictors”、“所有”
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
MaxNumSubsets
-最大预测器子集数目min (2 ^ M, 1024)
在哪里M.
是预测者的数量吗(默认)|正整数方法
-Shapley值计算算法'介入 - 内核'
(默认)|“conditional-kernel”
Shapley值计算算法,规定为'介入 - 内核'
或“conditional-kernel”
.
这些算法的详细信息请参见Shapley值计算算法.
例子:“方法”、“conditional-kernel”
数据类型:字符
|字符串
UseParallel
-旗帜并行运行假
(默认)|真正的
BlackboxModel
-需要解释的机器学习模型BlackboxFitted
-通过机器学习模型计算查询点的预测此属性是只读的。
通过机器学习模型(BlackboxModel
),指定为标量。
如果BlackboxModel
那么,模型是对象吗BlackboxFitted
是回归的预测反应或分类的分类标签。
如果BlackboxModel
是函数句柄吗BlackboxFitted
是函数句柄返回的值,用于回归的预测响应或单个类的分类的预测得分。
数据类型:单
|双
|分类
|逻辑
|字符
|字符串
|细胞
CategoricalPredictors
-分类预测指标[]
此属性是只读的。
分类预测指标,指定为一个正整数向量。CategoricalPredictors
包含指示对应的预测器是分类的索引值。索引值在1到之间P.
,在那里P.
为用于训练模型的预测器数量。如果没有任何预测器是绝对的,则此属性为空([]
).
如果您指定黑箱
然后使用函数句柄福芙
从预测数据中确定分类预测X
.如果指定'patericalpricictors'
名称值参数,然后参数设置此属性。
如果您指定黑箱
作为回归或分类模型对象,那么福芙
属性来确定此属性CategoricalPredictors
属性。
福芙
金宝app支持有序的分类预测器何时黑箱
金宝app支持有序分类预测和“方法”
是'介入 - 内核'
.
数据类型:单
|双
拦截
-平均预测平均预测,对预测器数据进行平均X
,指定为数字矢量或数字标量。
如果BlackboxModel
那么,分类模型是对象吗拦截
是每个类别的平均分类分数的矢量。
如果BlackboxModel
那么,回归模型是对象吗拦截
是平均响应的标量。
如果BlackboxModel
是函数句柄吗拦截
是平均函数求值的标量。
对于一个查询点,所有特征的Shapley值的和对应于预测与平均值的总偏差(拦截
).
数据类型:单
|双
方法
-Shapley值计算算法'介入 - 内核'
|“conditional-kernel”
numsubsets.
-预测器子集数目此属性是只读的。
用于福利价值计算的预测器子集的数量,指定为正整数。
这“MaxNumSubsets”
的观点福芙
或者是“MaxNumSubsets”
的观点合身
设置此属性。
有关如何福芙
选择要使用的子集,参见计算Shapley值的复杂性.
数据类型:单
|双
QueryPoint
-查询点此属性是只读的。
查询点福芙
使用Shapley值解释预测(ShapleyValues
),指定为数值或单行表的行向量。
这QueryPoint.
的观点福芙
或者是QueryPoint.
的观点合身
设置此属性。
数据类型:单
|双
|表格
ShapleyValues
-查询点的福音价值此属性是只读的。
查询点的Shapley值(QueryPoint
),指定为表格。
对于回归,表有两列。第一列包含预测器变量名称,第二列包含预测器的福音值。
对于分类,表有两个或更多的列,取决于类的数量BlackboxModel
.第一列包含预测器变量名称,其余的列包含每个类的预测器的福音值。
数据类型:表格
X
-预测数据福芙
对象培训分类模型并创建一个福芙
对象。当你创造一个福芙
对象,指定一个查询点,以便软件计算该查询点的Shapley值。然后使用对象函数创建Shapley值的柱状图情节
.
加载CreditRating_Historical
数据集。数据集包含客户ID及其金融比率,行业标签和信用评级。
台= readtable (“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}
使用的方法训练信用评级的黑箱模型fitcecoc
函数。使用第二列中的变量资源描述
作为预测变量。推荐的做法是指定类名来设置类的顺序。
Blackbox = FitCecoc(TBL,“评级”那...“PredictorNames”tbl.Properties.VariableNames (7),...'patericalpricictors'那'行业'那...“类名”,{“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”为真值,以实现更快的计算。
explainer = shapley with properties: BlackboxModel: [1x1 ClassificationECOC] QueryPoint: [1x8 table] BlackboxFitted: {'AA'} ShapleyValues: [6x8 table] NumSubsets: 64 X: [3932x6 table] CategoricalPredictors: 6 Method: ' inter干涉-kernel' Intercept:[-0.5041 -0.3908 -0.3137 -0.3042 -0.4217…]
正如警告消息所指出的,计算可能会很慢,因为预测器数据有超过1000个观测数据。为了更快的计算,使用较小的训练集样本或指定'使用指惯'
作为真正的
.
对于一个分类模型,福芙
使用每个类的预测类得分计算Shapley值。中的值显示ShapleyValues
财产。
讲解员。沙普利价值s
ans =6×8表预测AAA AA BBB BB B CCC __________ __________ __________ ___________ ___________ ___________ ___________ ___________ " WC_TA“0.014715 0.0064376 0.0026704 0.00048882 -0.0079015 -0.011841 -0.011395”RE_TA“0.047918 0.026917 0.014751 -0.0031481 -0.02512 -0.059926 -0.08418”EBIT_TA“0.0003427 0.00015025 0.00011977 3.3904 -0.00018925 e-05-0.00038135 -0.00033783 "MVE_BVTD" " 0.38334 0.37376 0.17563 -0.032136 -0.18728 -0.24831 -0.19585 "S_TA" -0.0037304 -0.0026011 -8.8854e-05 -0.00081782 -5.4936e-05
这ShapleyValues
属性包含每个类的所有特性的Shapley值。
的方法绘制预测类的Shapley值情节
函数。
情节(讲解员)
水平条形图显示了所有变量的Shapley值,按它们的绝对值排序。每个Shapley值解释了由于相应的变量,查询点的分数与预测类的平均分数之间的偏差。
福芙
对象和计算Shapley值使用合身
火车回归模型并创建一个福芙
对象。当你创造一个福芙
对象,如果不指定查询点,则软件不会计算Shapley值。使用对象函数合身
来计算指定查询点的Shapley值。然后使用对象函数创建Shapley值的柱状图情节
.
加载carbig
数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。
负载carbig
创建一个包含预测变量的表加速度
那气缸
,等等,以及响应变量英里/加仑
.
台=表(加速度、汽缸、排量、马力、Model_Year重量,MPG);
删除训练集中缺失的值可以帮助减少内存消耗并加速训练fitrkernel
函数。删除资源描述
.
台= rmmissing(台);
训练一个黑匣子模型英里/加仑
通过使用fitrkernel
函数
rng (“默认”的)%的再现性mdl = fitrkernel(资源描述,'mpg'那'patericalpricictors'[2 - 5]);
创建一个福芙
对象。指定数据集资源描述
, 因为mdl
不包含培训数据。
解释者=福利(MDL,TBL)
解释器=福利属性:BlackBoxModel:[1x1 RegentionKernel] QueryPoint:[] BlackpoxFited:[]福音维价:[] NumsubSets:64 x:[392x7表] CateoricalPredictors:[2 5]方法:'介入 - 内核'截取:22.6202
讲解员
存储训练数据资源描述
在X
财产。
计算第一次观测的所有预测变量的Shapley值资源描述
.
: queryPoint =(资源(1)
queryPoint =1×7表加速气缸位移马力Model_Year体重MPG ____________ _________ ____________ __________ __________ ______ ___ 12 8 307 130 70 3504
讲解员=适合(讲解员,queryPoint);
对于回归模型,福芙
使用预测的响应计算Shapley值,并将它们存储在ShapleyValues
财产。中的值显示ShapleyValues
财产。
讲解员。沙普利价值s
ans =6×2表预测器ShapleyValue ______________ ____________“加速度”-0.1561“气缸”-0.18306“位移”-0.34203“马力”-0.27291“Model_Year”-0.2926“重量”-0.32402
控件绘制查询点的Shapley值情节
函数。
情节(讲解员)
水平条形图显示了所有变量的Shapley值,按它们的绝对值排序。每个Shapley值解释了由于相应的变量,查询点的预测与平均值之间的偏差。
火车回归模型并创建一个福芙
对象的函数句柄预测
模型的功能。使用对象函数合身
来计算指定查询点的Shapley值。然后利用目标函数绘制Shapley值情节
.
加载carbig
数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。
负载carbig
创建一个包含预测变量的表加速度
那气缸
,等等。
TBL =桌子(加速,气缸,位移,马力,型号,重量);
训练一个黑匣子模型英里/加仑
通过使用treebagger
函数。
rng (“默认”的)%的再现性Mdl = TreeBagger(100台,英里/加仑,“方法”那“回归”那'patericalpricictors'[2 - 5]);
福芙
不支持金宝apptreebagger
对象,因此不能指定的第一个输入参数(黑盒模型)福芙
作为一个treebagger
对象。的函数句柄预测
函数。的选项预测
使用函数的名称值参数函数。
的函数句柄预测
功能的功能treebagger
目的Mdl
.指定要使用的树索引数组1:50
.
if = @(tbl) predict(Mdl,tbl,“树”、1:50);
创建一个福芙
对象使用函数句柄F
.当您指定黑箱模型作为函数句柄时,您必须提供预测器数据。资源描述
包括分类预测因子(油缸
和Model_Year
)与之双
数据类型。默认情况下,福芙
不使用双
作为分类预测器的数据类型。指定第二个(油缸
)及第五(Model_Year
)变量作为分类预测因子。
讲解员=沙普利(f(资源'patericalpricictors'[2 - 5]);讲解员=适合(讲解员,台(1:));
绘制福利值。
情节(讲解员)
在博弈论中,参与者的Shapley值是参与者在合作博弈中的平均边际贡献。在机器学习预测的上下文中,一个查询点的特征的Shapley值解释了该特征对指定查询点的预测(对回归的响应或分类的每个类的得分)的贡献。
查询点的特征的Shapley值是特征对平均预测偏差的贡献。对于一个查询点,所有特征的Shapley值的和对应于预测与平均值的总偏差。也就是说,所有特征的平均预测和Shapley值的和对应于查询点的预测。
有关详细信息,请参见机器学习模型的福利值.
Lundberg, Scott M和S. Lee。“解释模型预测的统一方法”神经信息处理系统研究进展30(2017): 4765 - 774。
[2] AAS,Kjersti,Martin。jullum,和兰德兰德。“解释特征依赖的个人预测:对福芙值的更准确的近似值。”arXiv: 1903.10464(2019).
并行运行,设置UseParallel
名称-值参数真正的
在调用这个函数时。
有关并行计算的更多一般信息,请参阅运行MATLAB函数与自动并行支持金宝app(并行计算工具箱).
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获得最佳网站性能。其他MathWorks国家网站未优化您所在地的访问。