主要内容

沙普利

沙普利值

    描述

    沙普利查询点的特征值解释了查询点的预测与平均预测之间的偏差,这是由于该特征造成的。对于每个查询点,所有特征的Shapley值之和对应于预测与平均值的总偏差。

    您可以创建沙普利具有指定查询点(queryPoint)。该软件创建一个对象,并为查询点计算所有特征的Shapley值。

    使用Shapley值来解释在指定的查询点上各个特征对预测的贡献。使用情节函数来创建沙普利值的条形图。方法可以计算另一个查询点的Shapley值适合函数。

    创建

    描述

    讲解员=沙普利(黑箱创建一个沙普利对象使用机器学习模型对象黑箱其中包含预测数据。若要计算沙普利值,请使用适合函数与讲解员

    例子

    讲解员=沙普利(黑箱X创建一个沙普利中的预测器数据X

    例子

    讲解员=沙普利(___“QueryPoint”,queryPoint还计算查询点的Shapley值queryPoint并将计算得到的Shapley值存储在ShapleyValues的属性讲解员.你可以指定queryPoint除了前面语法中的任何输入参数组合之外。

    例子

    讲解员=沙普利(___名称,值使用一个或多个名称-值参数指定其他选项。例如,指定“UseParallel”,真的并行计算沙普利值。

    输入参数

    全部展开

    要解释的机器学习模型,指定为完整或紧凑的回归或分类模型对象或函数句柄。

    预测器数据,指定为数字矩阵或表格。每行X对应一个观察结果,每一列对应一个变量。

    • 对于数值矩阵:

      • 组成列的变量X必须与训练的预测变量有相同的顺序黑箱,储存在黑箱。X

      • 如果你受过训练黑箱那么,使用表格X如果表格包含所有数值预测变量,则可以是数值矩阵。

    • 对于表格:

      • 如果你受过训练黑箱使用表格(例如,资源描述),然后输入所有预测变量X必须具有与中相同的变量名和数据类型资源描述.的列序X是否需要对应的列顺序资源描述

      • 如果你受过训练黑箱使用一个数字矩阵,然后预测器名称在黑箱。PredictorNames和对应的预测变量名X一定是一样的。若要在训练期间指定预测器名称,请使用“PredictorNames”名称-值参数。所有预测变量X必须是数值向量。

      • X可以包含额外的变量(响应变量、观察权重等),但是沙普利忽略了它们。

      • 沙普利不支持多列变量或除万博1manbetx字符向量的单元格数组外的单元格数组。

    如果黑箱是否必须提供不包含预测器数据或函数句柄的模型对象X.如果黑箱是一个完整的机器学习模型对象,你指定这个参数,那么沙普利不使用预测数据在黑箱;它只使用指定的预测器数据。

    数据类型:|

    所在的查询点沙普利解释指定为数值的行向量或单行表的预测。

    • 对于数值的行向量:

      • 组成列的变量queryPoint一定要和X或者训练的预测变量黑箱,储存在黑箱。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算法的扩展。

    类别预测符列表,指定为此表中的值之一。

    价值 描述
    正整数向量

    向量中的每个条目都是一个指标值,表明相应的预测器是分类的。索引值在1和之间p,在那里p用于训练模型的预测器的数量。

    如果黑箱使用输入变量的子集作为预测器,然后软件仅使用该子集对预测器进行索引。的“CategoricalPredictors”值不计算响应变量、观察权重变量或函数不使用的任何其他变量。

    逻辑向量

    一个真正的Entry表示对应的预测器是分类的。向量的长度是p

    字符矩阵 矩阵的每一行都是一个预测变量的名称。名称必须以表的形式与预测器数据的变量名称相匹配。用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。
    字符向量的字符串数组或单元格数组 数组中的每个元素都是一个预测变量的名称。名称必须以表的形式与预测器数据的变量名称相匹配。
    “所有” 所有预测因素都是绝对的。

    • 如果你指定黑箱作为函数句柄沙普利从预测器数据中识别分类预测器X.如果预测器数据在表格中,沙普利如果一个变量是逻辑向量、无序分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定它是分类的。如果预测器数据是一个矩阵,沙普利假设所有预测因子都是连续的。要将任何其他预测符标识为类别预测符,请使用“CategoricalPredictors”名称-值参数。

    • 如果你指定黑箱作为一个回归或分类模型对象,那么沙普利属性标识类别预测符CategoricalPredictors模型对象的属性。

    沙普利万博1manbetx支持一个有序的分类预测器黑箱万博1manbetx支持有序分类预测器和“方法”“interventional-kernel”

    例子:“CategoricalPredictors”、“所有”

    数据类型:||逻辑|字符|字符串|细胞

    用于Shapley值计算的预测器子集的最大数目,指定为正整数。

    有关如何沙普利选择要使用的子集,参见计算成本

    例子:“MaxNumSubsets”,100年

    数据类型:|

    Shapley值计算算法,指定为“interventional-kernel”“conditional-kernel”

    • “interventional-kernel”(默认)沙普利使用kernelSHAP算法[1]有一个介入价值函数。

    • “conditional-kernel”- - - - - -沙普利使用kernelSHAP算法的扩展[2]用一个条件值函数。

    关于这些算法的详细介绍,请参见算法

    例子:“方法”、“conditional-kernel”

    数据类型:字符|字符串

    要并行运行的标志,指定为真正的.如果你指定“UseParallel”,真的,沙普利函数通过使用并行执行for循环迭代parfor.此选项需要并行计算工具箱™。

    例子:“UseParallel”,真的

    数据类型:逻辑

    属性

    全部展开

    此属性是只读的。

    要解释的机器学习模型,指定为回归或分类模型对象或函数句柄。

    黑箱参数设置此属性。

    此属性是只读的。

    由机器学习模型计算的查询点预测(BlackboxModel),指定为标量。

    • 如果BlackboxModel是模型对象吗BlackboxFitted是用于回归的预测响应或用于分类的分类标签。

    • 如果BlackboxModel是函数句柄吗BlackboxFitted由函数句柄返回的值,可以是用于回归的预测响应,也可以是用于分类的单个类的预测分数。

    数据类型:||分类|逻辑|字符|字符串|细胞

    此属性是只读的。

    分类预测指标,指定为正整数向量。CategoricalPredictors包含指示相应预测符是分类的索引值。索引值在1和之间p,在那里p用于训练模型的预测器的数量。如果没有一个预测符是分类的,则此属性为空([])。

    • 如果你指定黑箱那么,使用函数句柄沙普利从预测器数据中识别分类预测器X.如果您指定“CategoricalPredictors”参数,则参数设置此属性。

    • 如果你指定黑箱作为一个回归或分类模型对象,那么沙普利属性确定此属性CategoricalPredictors模型对象的属性。

    沙普利万博1manbetx支持一个有序的分类预测器黑箱万博1manbetx支持有序分类预测器和“方法”“interventional-kernel”

    数据类型:|

    平均预测,对预测器数据的平均X,指定为数值向量或数值标量。

    • 如果BlackboxModel是分类模型对象吗拦截是每个类的平均分类分数的向量。

    • 如果BlackboxModel是回归模型对象吗拦截是平均响应的标量。

    • 如果BlackboxModel是函数句柄吗拦截是平均函数求值的标量。

    对于一个查询点,所有特征的Shapley值的和对应于预测与平均值(拦截)。

    数据类型:|

    此属性是只读的。

    Shapley值计算算法,指定为“interventional-kernel”“conditional-kernel”

    • “interventional-kernel”- - - - - -沙普利使用kernelSHAP算法[1]有一个介入价值函数。

    • “conditional-kernel”- - - - - -沙普利使用kernelSHAP算法的扩展[2]用一个条件值函数。

    “方法”的观点沙普利或者是“方法”的观点适合设置此属性。

    关于这些算法的详细介绍,请参见算法

    数据类型:字符|字符串

    此属性是只读的。

    用于Shapley值计算的预测器子集数,指定为正整数。

    “MaxNumSubsets”的观点沙普利或者是“MaxNumSubsets”的观点适合设置此属性。

    有关如何沙普利选择要使用的子集,参见计算成本

    数据类型:|

    此属性是只读的。

    所在的查询点沙普利解释使用沙普利值的预测(ShapleyValues),指定为数值或单行表的行向量。

    queryPoint的观点沙普利或者是queryPoint的观点适合设置此属性。

    数据类型:||表格

    此属性是只读的。

    查询点的Shapley值(QueryPoint),指定为一个表。

    • 对于回归,表格有两列。第一列包含预测器变量名,第二列包含预测器的Shapley值。

    • 对于分类,表有两个或多个列,这取决于中类的数量BlackboxModel.第一列包含预测器变量名,其余列包含每个类的预测器的Shapley值。

    数据类型:表格

    此属性是只读的。

    预测器数据,指定为数字矩阵或表格。

    每行X对应一个观察结果,每一列对应一个变量。

    • 如果您指定X参数,然后设置这个属性。

    • 如果你指定黑箱作为一个完整的机器学习模型对象并没有指定X,则此属性值为用于训练的预测器数据黑箱

    如果观察结果包含S表示连续预测器和方法“conditional-kernel”,然后沙普利不使用观测进行沙普利值计算。否则,沙普利处理年代X以同样的方式BlackboxModel(预测的对象函数BlackboxModel或指定的函数句柄BlackboxModel)。

    沙普利在此属性中存储所有观测值,包括缺少值的行。

    数据类型:||表格

    对象的功能

    适合 计算查询点的Shapley值
    情节 Plot 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 Explanation的axes对象包含一个类型为bar的对象。

    横柱图显示了所有变量的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 Explanation的axes对象包含一个类型为bar的对象。

    横柱图显示了所有变量的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 Explanation的axes对象包含一个类型为bar的对象。

    更多关于

    全部展开

    参考文献

    [1]伦德伯格,斯科特M.和S.李。《解释模型预测的统一方法》神经信息处理系统研究进展30(2017): 4765-774。

    [2] Aas, Kjersti, Martin。朱利姆和安德斯·洛兰德。《当特征相互依赖时,解释个体预测:对沙普利值的更精确近似》arXiv: 1903.10464(2019)。

    扩展功能

    版本历史

    R2021a中引入