主要内容

适合

计算查询点的Shapley值

    描述

    例子

    新索引=健康(讲解员queryPoint计算指定查询点的Shapley值(queryPoint),并将计算得到的Shapley值存储在ShapleyValues的属性新索引.的沙普利对象讲解员包含机器学习模型和计算福利值的选项。

    适合使用创建时指定的Shapley值计算选项讲解员.的名称-值参数可以更改选项适合函数。函数返回沙普利对象新索引包含新计算的福利值。

    例子

    新索引=健康(讲解员queryPoint名称,值使用一个或多个名称-值参数指定其他选项。例如,指定“UseParallel”,真的并行计算Shapley值。

    例子

    全部折叠

    训练一个回归模型并创建一个沙普利对象。当你创建沙普利对象,如果未指定查询点,则软件不会计算福利值。使用对象功能适合来计算指定查询点的Shapley值。然后使用对象函数创建Shapley值的柱状图情节

    加载carbig数据集,其中包含在20世纪70年代和20世纪80年代初进行的汽车测量。

    负载carbig

    创建包含预测器变量的表加速度气缸等等,以及响应变量MPG.

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

    在培训集中删除缺失值可以帮助减少内存消耗并加速培训Fitrkernel.函数。删除缺失的值TBL.

    tbl = rmmissing(tbl);

    训练一个黑匣子模型MPG.通过使用Fitrkernel.函数

    RNG('默认'重复性的%mdl = fitrkernel(tbl,“英里”“CategoricalPredictors”[2 - 5]);

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

    讲解员=沙普利(mdl(资源)
    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
    讲解员=适合(讲解员,queryPoint);

    对于回归模型,沙普利使用预测的响应计算福利值,并将它们存储在ShapleyValues财产。中的值显示ShapleyValues财产。

    讲解员。ShapleyValues
    ans =.6×2表预测器ShapleyValue ______________ ____________“加速度”-0.1561“气缸”-0.18306“位移”-0.34203“马力”-0.27291“Model_Year”-0.2926“重量”-0.32402

    控件显示查询点的预测响应,并绘制查询点的Shapley值情节函数。要在任何预测器名称中显示现有的下划线,请更改TickLabelInterpreter坐标轴的值“没有”

    讲解员。BlackboxFitted
    ans = 21.0495
    f =数字;绘图(解释器)f.currentaxes.ticklabelinterpreter =“没有”

    图中包含一个坐标轴。坐标轴包含bar类型的对象。

    水平条图显示了所有变量的福音值,按其绝对值排序。由于相应的变量,每个福族值解释了从平均值到平均值的查询点的偏差。

    训练分类模型并创建沙普利对象。然后计算多个查询点的Shapley值。

    加载Creditrating_Historical.数据集。该数据集包含客户id及其财务比率、行业标签和信用评级。

    台= readtable (“CreditRating_Historical.dat”);

    使用的方法训练信用评级的黑箱模型fitcecoc函数。使用从第二列到第七列的变量TBL.作为预测变量。

    黑箱= fitcecoc(资源描述,“评级”...“PredictorNames”,tbl.properties.variablenames(2:7),...“CategoricalPredictors”“行业”);

    创建一个沙普利对象与之黑箱模型。为了更快的计算,将25%的观测数据从TBL.并使用样本来计算Shapley值。指定使用kernelSHAP算法的扩展。

    RNG('默认'重复性的%c = cvpartition(资源描述。评级,“坚持”,0.25);tbl_s = tbl(测试(c),:);解释者=福利(Blackbox,Tbl_s,“方法”“conditional-kernel”);

    查找其真实评级值为的两个查询点AAAB,分别。

    queryPoint (1) =: tbl_(找到(strcmp (: tbl_。评级,“AAA”),1),:);querypoint(2,:) = tbl_s(find(strcmp(tbl_s.rating,“B”), 1),:)
    queryPoint =2×8表ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业评级  _____ ______ ______ _______ ________ _____ ________ _______ 58258 0.511 0.869 0.106 8.538 0.732 - 2 {' AAA '} 82367 -0.078 -0.042 0.011 0.262 0.167 7 {B}

    计算并绘制第一个查询点的Shapley值。要在任何预测器名称中显示现有的下划线,请更改TickLabelInterpreter坐标轴的值“没有”

    explainer1 =适合(讲解员,queryPoint (1:));f1 =图;情节(explainer1) f1.CurrentAxes。TickLabelInterpreter =“没有”

    图中包含一个坐标轴。坐标轴包含bar类型的对象。该对象表示AAA。

    计算并绘制第二个查询点的福音值。

    explainer2 =适合(讲解员,queryPoint (2:));f2 =图;情节(explainer2) f2.CurrentAxes。TickLabelInterpreter =“没有”

    图中包含一个坐标轴。坐标轴包含bar类型的对象。该对象表示BB。

    第二个查询点的真实评级是B,但预测的评级是BB.图中显示了预测评级的Shapley值。

    explainer1explainer2包括分别为第一个查询点和第二查询点的福音值。

    输入参数

    全部折叠

    解释Blackbox模型的对象,指定为a沙普利对象。

    查询点适合解释以数字值或单行表的行向量指定的预测。

    • 对于数值的行向量:

      • 组成列的变量queryPoint必须有与预测数据相同的顺序X讲解员

      • 如果预测数据解释者.X.那么,是一张桌子吗queryPoint如果表包含所有数字变量,则可以是数字向量。

    • 对于单行表:

      • 如果预测数据解释者.X.是一个表,那么所有预测变量都在queryPoint必须具有与中相同的变量名和数据类型解释者.X..但是,列顺序queryPoint不需要对应的列顺序解释者.X.

      • 如果预测数据解释者.X.是一个数字矩阵,那么预测器的名字在解释器.BlackBoxModel.predictornames.和相应的预测变量名queryPoint必须是一样的。要在培训期间指定预测器名称,请使用“PredictorNames”名称-值参数。所有的预测变量queryPoint必须是数值向量。

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

      • 适合除了字符向量的单元金宝app格数组外,不支持多列变量或单元格数组。

    如果queryPoint包含■连续预测器和“方法”“conditional-kernel”,则Shapley值(ShapleyValues)在返回的对象中是年代。否则,适合处理以同样的方式解释者.BlackBoxModel.(这预测对象功能解释者.BlackBoxModel.或指定的功能句柄黑箱).

    例子:: explainer.X (1)指定查询点作为预测器数据的第一次观察X讲解员

    数据类型:|双倍的|表格

    名称-值对的观点

    指定可选的逗号分隔的对名称,值论点。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

    例子:fit(讲解员,问,‘法’,‘conditional-kernel’,‘UseParallel’,真的)计算查询点的福利值利用对kernelSHAP算法的扩展,并行执行计算。

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

    有关如何适合选择要使用的子集,参见计算福利价值的复杂性

    例子:'maxnumsubsets',100

    数据类型:|双倍的

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

    • “interventional-kernel”- - - - - -适合使用kernelSHAP算法[1]具有介入价值函数。

    • “conditional-kernel”- - - - - -适合使用对kernelSHAP算法的扩展[2]具有条件值函数。

    这些算法的详细信息请参见Shapley值计算算法

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

    数据类型:char|字符串

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

    例子:“UseParallel”,真的

    数据类型:逻辑

    输出参数

    全部折叠

    对象解释黑匣子模型,返回为沙普利对象。的ShapleyValues属性包含计算的Shapley值。

    重写输入参数讲解员,指定的输出适合讲解员

    讲解员=适合(讲解员,queryPoint);

    更多关于

    全部折叠

    沙普利值

    在博弈论中,参与者的Shapley值是参与者在合作博弈中的平均边际贡献。在机器学习预测的上下文中,一个查询点的特征的Shapley值解释了该特征对指定查询点的预测(对回归的响应或分类的每个类的得分)的贡献。

    由于该特征,福谢值对应于来自平均预测的查询点预测的偏差。对于查询点,所有特征的福音值的总和对应于从平均值的预测的总偏差。

    有关详细信息,请参见机器学习模型的Shapley值

    参考

    Lundberg, Scott M和S. Lee。“解释模型预测的统一方法”神经信息处理系统研究进展30(2017): 4765 - 774。

    Aas, Kjersti, Martin。朱勒姆和安德斯·洛兰德。解释特征依赖时的个人预测:对Shapley值的更精确的近似arXiv: 1903.10464(2019).

    扩展功能

    介绍了R2021a