主要内容

沙普利

    描述

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

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

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

    创建

    描述

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

    例子

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

    例子

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

    例子

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

    输入参数

    全部展开

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

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

    • 对于数字矩阵:

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

      • 如果你训练黑箱那就用桌子吧X如果该表包含所有数值预测变量,则可以是数值矩阵。

    • 一个表:

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

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

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

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

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

    数据类型:|

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

    • 对于数值的行向量:

      • 组成列的变量queryPoint一定和?的顺序一样吧X或者训练过的预测变量黑箱,存储在黑箱。X

      • 如果你训练黑箱那就用桌子吧queryPoint如果表包含所有数值变量,则可以是数值向量。

    • 对于单行表:

      • 如果你训练黑箱使用一个表(例如,资源描述),则所有预测变量均为queryPoint必须具有与中相同的变量名和数据类型资源描述.的列顺序queryPoint是否需要对应列的顺序资源描述

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

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

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

    如果queryPoint包含S表示连续预测和“方法”“conditional-kernel”,则Shapley值(ShapleyValues)中返回的对象年代。否则,沙普利处理年代queryPoint以同样的方式黑箱(预测对象的函数黑箱指定的函数句柄黑箱).

    例子:: blackbox.X (1)将查询点指定为完整机器学习模型中预测器数据的第一个观察点黑箱

    数据类型:||表格

    名称-值参数

    指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

    在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

    例子:沙普利(黑箱,QueryPoint,问,“方法”,“conditional-kernel”)创建一个沙普利对象,并计算查询点的Shapley值使用对kernelsha算法的扩展。

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

    价值 描述
    正整数向量

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

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

    逻辑向量

    一个真正的入口意味着对应的预测因子是绝对的。向量的长度是p

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

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

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

    沙普利时支持有序分类预测器黑箱支持有序的分类预测器和“方法”“interventional-kernel”

    例子:“CategoricalPredictors”、“所有”

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

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

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

    例子:“MaxNumSubsets”,100年

    数据类型:|

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

    • “interventional-kernel”(默认)沙普利使用内核形状算法[1]具有介入价值函数。

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

    关于这些算法的详细信息,请参见算法

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

    数据类型:字符|字符串

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

    例子:“UseParallel”,真的

    数据类型:逻辑

    属性

    全部展开

    此属性是只读的。

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

    黑箱参数设置此属性。

    此属性是只读的。

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

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

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

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

    此属性是只读的。

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

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

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

    沙普利时支持有序分类预测器黑箱支持有序的分类预测器和“方法”“interventional-kernel”

    数据类型:|

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

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

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

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

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

    数据类型:|

    此属性是只读的。

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

    • “interventional-kernel”- - - - - -沙普利使用内核形状算法[1]具有介入价值函数。

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

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

    关于这些算法的详细信息,请参见算法

    数据类型:字符|字符串

    此属性是只读的。

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

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

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

    数据类型:|

    此属性是只读的。

    查询点。沙普利用Shapley值(ShapleyValues),指定为数值的行向量或单行表。

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

    数据类型:||表格

    此属性是只读的。

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

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

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

    数据类型:表格

    此属性是只读的。

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

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

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

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

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

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

    数据类型:||表格

    对象的功能

    适合 计算查询点的Shapley值
    情节 情节夏普利值

    例子

    全部折叠

    训练一个分类模型并创建一个沙普利对象。当您创建沙普利对象,指定一个查询点,以便软件计算查询点的Shapley值。然后使用object函数创建Shapley值的条形图情节

    加载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”});

    创建一个沙普利对象,用于解释对最后一次观测结果的预测。指定一个查询点,以便软件计算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'为true以加快计算速度。
    explainer = shapley with properties: BlackboxModel: [1x1 ClassificationECOC] QueryPoint: [1x8 table] blackboxfit: {'AA'} ShapleyValues: [6x8 table] NumSubsets: 64 X: [3932x6 table] CategoricalPredictors: 6方法:' intersecal -kernel'拦截:[-1.7642 -1.3677 -1.0980 -1.0645 -1.4758…]

    正如警告消息所示,由于预测器数据有超过1000个观测值,计算可能会很慢。为了更快的计算,使用更小的训练集样本或指定“UseParallel”作为真正的

    对于分类模型,沙普利计算Shapley值使用预测的班级成绩为每个班。控件中的值显示ShapleyValues财产。

    讲解员。沙普利价值s
    ans =6×8表预测器AAA AAA BBB BBB 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属性包含每个类的所有特征的Shapley值。

    方法绘制预测类的Shapley值情节函数。

    情节(讲解员)

    图中包含一个axes对象。标题为Shapley explain的axes对象包含一个类型为bar的对象。

    水平柱状图显示了所有变量的Shapley值,按它们的绝对值排序。每个Shapley值解释了查询点的分数与预测班级的平均分数的偏差,这是由相应的变量引起的。

    训练一个回归模型并创建一个沙普利对象。当您创建沙普利对象,如果不指定查询点,则软件不计算Shapley值。使用object函数适合,计算指定查询点的Shapley值。然后使用object函数创建Shapley值的条形图情节

    加载carbig数据集,包含70年代和80年代早期生产的汽车的测量数据。

    负载carbig

    创建一个包含预测变量的表加速度气缸,等等,以及响应变量英里/加仑

    台=表(加速度、汽缸、排量、马力、Model_Year重量,MPG);

    删除训练集中的缺失值可以帮助减少内存消耗并加速训练fitrkernel函数。中删除缺失的值资源描述

    台= rmmissing(台);

    训练一个黑箱模型英里/加仑通过使用fitrkernel函数

    rng (“默认”%的再现性mdl = fitrkernel(资源描述,“英里”“CategoricalPredictors”[2 - 5]);

    创建一个沙普利对象。指定数据集资源描述,因为mdl不包含培训数据。

    讲解员=沙普利(mdl(资源)
    explainer = shapley with properties: BlackboxModel: [1x1 RegressionKernel] QueryPoint: [] blackboxsuits: [] ShapleyValues: [] NumSubsets: 64 X: [392x7 table] CategoricalPredictors:[2 5]方法:' interference -kernel'拦截: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“型号_year”-0.2926“重量”- 0.3402

    方法绘制查询点的Shapley值情节函数。

    情节(讲解员)

    图中包含一个axes对象。标题为Shapley explain的axes对象包含一个类型为bar的对象。

    水平柱状图显示了所有变量的Shapley值,按它们的绝对值排序。每个Shapley值解释了查询点的预测与平均值的偏差,这是由相应的变量引起的。

    训练一个回归模型并创建一个沙普利对象的函数句柄预测模型的功能。使用object函数适合,计算指定查询点的Shapley值。然后利用目标函数绘制Shapley值情节

    加载carbig数据集,包含70年代和80年代早期生产的汽车的测量数据。

    负载carbig

    创建一个包含预测变量的表加速度气缸,等等。

    台=表(加速度、汽缸、排量、马力、Model_Year重量);

    训练一个黑箱模型英里/加仑通过使用TreeBagger函数。

    rng (“默认”%的再现性Mdl = TreeBagger(100台,英里/加仑,“方法”“回归”“CategoricalPredictors”[2 - 5]);

    沙普利不支持TreeBagger的第一个输入参数(黑箱模型)沙普利作为一个TreeBagger对象。方法的函数句柄预测函数。的选项预测使用函数的名称-值参数的函数。

    类的函数句柄预测的函数TreeBagger对象Mdl.指定要用作的树索引数组1:50

    f = @(tbl) predict(Mdl,tbl,“树”、1:50);

    创建一个沙普利对象使用函数句柄f.当将黑箱模型指定为函数句柄时,必须提供预测器数据。资源描述包括直言预测符(油缸而且Model_Year)数据类型。默认情况下,沙普利不使用数据类型作为类别预测器。指定第二个(油缸)和第五(Model_Year)变量作为范畴预测器。

    讲解员=沙普利(f(资源“CategoricalPredictors”[2 - 5]);讲解员=适合(讲解员,台(1:));

    绘制Shapley值。

    情节(讲解员)

    图中包含一个axes对象。标题为Shapley explain的axes对象包含一个类型为bar的对象。

    更多关于

    全部展开

    参考文献

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

    Aas, Kjersti, Martin。Jullum和Anders Løland。当特征相互依赖时,解释个人预测:Shapley值的更精确近似。arXiv: 1903.10464(2019)。

    扩展功能

    版本历史

    介绍了R2021a

    Baidu
    map