主要内容

合身

计算查询点的福利值

    描述

    例子

    newExplainer=健康(解释者QueryPoint.的)计算指定查询点的福利值(QueryPoint.),并将计算得到的Shapley值存储在ShapleyValues财产newExplainer.这福芙目的解释者包含一个机器学习模型和计算Shapley值的选项。

    合身使用创建时指定的Shapley值计算选项解释者.您可以使用名称 - 值参数更改选项合身函数。函数返回福芙目的newExplainer包含新计算的Shapley值。

    例子

    newExplainer=健康(解释者QueryPoint.名称,价值的)使用一个或多个名称-值参数指定其他选项。例如,指定“UseParallel”,真的并行计算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财产。

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

    通过使用使用的查询点的福利值绘制阴谋函数。

    情节(讲解员)

    图包含轴对象。具有标题福利解释的轴对象包含类型栏的对象。

    水平条形图显示了所有变量的Shapley值,按它们的绝对值排序。每个Shapley值解释了由于相应的变量,查询点的预测与平均值之间的偏差。

    培训分类模型并创建一个福芙对象。然后计算多个查询点的Shapley值。

    加载CreditRating_Historical数据集。数据集包含客户ID及其金融比率,行业标签和信用评级。

    TBL = READTABLE(“CreditRating_Historical.dat”);

    通过使用培训Blackbox模型的信用评级模型fitcecoc函数。使用第二列中的变量资源描述作为预测变量。

    Blackbox = FitCecoc(TBL,'评分'...'predictornames'tbl.Properties.VariableNames (7),...'patericalpricictors''行业');

    创建一个福芙对象的黑盒子模型。为了更快的计算,将25%的观察结果分开资源描述分层并使用样品来计算福利值。指定使用扩展到Kernelshap算法。

    rng (“默认”的)%的再现性c = cvpartition(tbl.rating,“坚持”, 0.25);: tbl_ =台(测试(c):);: tbl_讲解员=沙普利(黑盒,“方法”“conditional-kernel”);

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

    querypoint(1,:) = tbl_s(find(strcmp(tbl_s.rating,“AAA”), 1):);queryPoint (2) =: tbl_(找到(strcmp (: tbl_。评级,“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'}

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

    explainer1 =适合(讲解员,queryPoint (1:));情节(explainer1)

    图包含轴对象。具有标题福利解释的轴对象包含类型栏的对象。

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

    explainer2 =适合(讲解员,queryPoint (2:));情节(explainer2)

    图包含轴对象。具有标题福利解释的轴对象包含类型栏的对象。

    第二个查询点的真实评级是B.,但预测的评级是BB..该曲线显示了预测评级的福音值。

    解释器1解释器2分别包含第一个查询点和第二个查询点的Shapley值。

    输入参数

    全部收缩

    对象解释黑盒模型,指定为福芙对象。

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

    • 对于数值的行向量:

      • 组成列的变量QueryPoint.必须具有与预测器数据相同的顺序X解释者

      • 如果是预测的数据讲解员。X那么,是一张桌子吗QueryPoint.如果表包含所有数字变量,则可以是数字矢量。

    • 对于单行表:

      • 如果是预测的数据讲解员。X是一个表,那么所有的预测变量在QueryPoint.必须具有与那些相同的变量名称和数据类型讲解员。X.但是,的列顺序QueryPoint.不需要对应于列顺序讲解员。X

      • 如果是预测的数据讲解员。X是一个数字矩阵,然后是预测的名称explainer.BlackboxModel.PredictorNames和相应的预测变量名QueryPoint.肯定是一样的。要在训练期间指定预测器名称,请使用'predictornames'名称-值参数。所有的预测变量QueryPoint.必须是数值向量。

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

      • 合身除了字符向量的单元万博1manbetx格数组外,不支持多列变量或单元格数组。

    如果QueryPoint.包含S表示连续预测器和“方法”“conditional-kernel”,然后是福谢价值(ShapleyValues)返回的对象年代。否则,合身处理以同样的方式讲解员。B.lackboxModel(预测对象的函数讲解员。B.lackboxModel或指定的函数句柄黑盒子)。

    例子:: explainer.X (1)将查询点指定为对预测器数据的第一次观察X解释者

    数据类型:||桌子

    名称 - 值参数

    指定可选的逗号分离对名称,价值参数。的名字是参数名称和价值为对应值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

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

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

    有关如何合身选择要使用的子集,参见计算Shapley值的复杂性

    例子:“MaxNumSubsets”,100年

    数据类型:|

    Shapley值计算算法,规定为'介入 - 内核'“conditional-kernel”

    • '介入 - 内核'-合身使用kernelSHAP算法[1]用介入性价值函数。

    • “conditional-kernel”-合身使用扩展到内核alhap算法[2]使用条件值函数。

    有关这些算法的详细信息,请参阅Shapley值计算算法

    例子:'方法','条件 - 内核'

    数据类型:字符|字符串

    并行运行的标志,指定为真正的错误的.如果您指定“UseParallel”,真的, 这合身函数通过使用并行执行循环迭代par.此选项需要并行计算工具箱™。

    例子:“UseParallel”,真的

    数据类型:逻辑

    输出参数

    全部收缩

    解释Blackbox模型的对象,作为一个返回福芙对象。这ShapleyValues属性包含计算的Shapley值。

    覆盖输入参数解释者,分配输出合身解释者

    解释者=适合(解释者,Querypoint);

    更多关于

    全部收缩

    福利价值观

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

    查询点的特征的Shapley值是特征对平均预测偏差的贡献。对于一个查询点,所有特征的Shapley值的和对应于预测与平均值的总偏差。也就是说,所有特征的平均预测和Shapley值的和对应于查询点的预测。

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

    参考文献

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

    [2] AAS,Kjersti,Martin。jullum,和兰德兰德。“解释特征依赖的个人预测:对福芙值的更准确的近似值。”arxiv:1903.10464(2019).

    扩展功能

    在R2021A介绍