主要内容

适合

计算查询点的Shapley值

    描述

    例子

    newexplainer.=适合(讲解员queryPoint计算指定查询点的Shapley值(queryPoint)并存储计算的福利值ShapleyValues的属性newexplainer..的沙普利对象讲解员包含一个机器学习模型和计算Shapley值的选项。

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

    例子

    newexplainer.=适合(讲解员queryPoint名称,值使用一个或多个名称值参数指定其他选项。例如,指定'使用指定',真实并行计算福利值。

    例子

    全部折叠

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

    加载CARBIG.数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。

    负载CARBIG.

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

    TBL =桌子(加速,气缸,位移,马力,Model_year,重量,MPG);

    在培训集中删除缺失值可以帮助降低内存消耗并加速培训fitrkernel函数。删除资源描述

    台= rmmissing(台);

    训练一个黑匣子模型MPG.通过使用fitrkernel功能

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

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

    讲解员=沙普利(mdl(资源)
    explainer = shapley with properties: BlackboxModel: [1x1 RegressionKernel] QueryPoint: [] BlackboxFitted: [] ShapleyValues: [] NumSubsets: 64 X: [392x7 table] CategoricalPredictors: [2 5] Method: ' interonal -kernel' Intercept: 22.6202

    讲解员存储培训数据资源描述X财产。

    计算第一次观测的所有预测变量的Shapley值资源描述

    querypoint = tbl(1,:)
    queryPoint =表1×7加速气瓶位移马力Model_year重量MPG ____________ ______________________ 12 8 307 130 70 3504 18
    讲解员=适合(讲解员,queryPoint);

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

    解释者。谢谢价值
    ans =6×2表Predictor ShapleyValue ______________ ____________“加速”-0.1561“圆柱”-0.18306“位移”-0.34203“马力”-0.27291“Model_year”-0.2926“重量”-0.32402

    控件绘制查询点的Shapley值情节函数。

    情节(讲解员)

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

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

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

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

    台= readtable ('Credenrating_historical.dat');

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

    黑箱= fitcecoc(资源描述,“评级”......“PredictorNames”tbl.Properties.VariableNames (7),......“CategoricalPredictors”“行业”);

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

    rng (“默认”%的再现性c = cvpartition(资源描述。评级,'坚持', 0.25);: tbl_ =台(测试(c):);: tbl_讲解员=沙普利(黑盒,'方法''条件 - 内核');

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

    queryPoint (1) =: tbl_(找到(strcmp (: tbl_。评级,'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}

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

    explexer1 = fit(解释器,querypoint(1,:));绘图(excexer1)

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

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

    ExplateR2 = Fit(解释器,QueryPoint(2,:));情节(excexer2)

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

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

    explainer1explainer2分别包含第一个查询点和第二个查询点的Shapley值。

    输入参数

    全部折叠

    对象解释黑盒模型,指定为沙普利对象。

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

    • 对于数值的行向量:

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

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

    • 对于单行表:

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

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

      • queryPoint可以包含其他变量(响应变量,观察权重等),但适合忽略了它们。

      • 适合不支持字符向量的单金宝app元格阵列以外的多色变量或单元格阵列。

    如果queryPoint包含对于连续预测器和'方法''条件 - 内核',则Shapley值(ShapleyValues)返回的对象s。除此以外,适合把握价值与之相同讲解员。BlackboxModel(预测对象的函数讲解员。BlackboxModel或指定的函数句柄黑箱).

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

    数据类型:单身的||表格

    名称-值参数

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

    例子:适合(解释者,q,'方法','条件 - 内核','deverypallellel',true)计算查询点的Shapley值利用对kernelSHAP算法的扩展,并行执行计算。

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

    有关如何的详细信息适合选择要使用的子集,请参阅计算Shapley值的复杂性

    例子:'maxnumsubsets',100

    数据类型:单身的|

    福芙值计算算法,指定为“interventional-kernel”或者'条件 - 内核'

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

    • '条件 - 内核'- - - - - -适合使用对kernelSHAP算法的扩展[2]使用条件值函数。

    这些算法的详细信息请参见福利价值计算算法

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

    数据类型:字符|细绳

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

    例子:'使用指定',真实

    数据类型:逻辑

    输出参数

    全部折叠

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

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

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

    更多关于

    全部折叠

    沙普利值

    在博弈论中,球员的福利价值是合作游戏中玩家的平均边际贡献。在机器学习预测的上下文中,查询点的特征的福音值解释了特征在指定查询点处对预测的预测(对分类的回归或分类的回归或分数的响应)的贡献。

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

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

    参考文献

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

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

    扩展能力

    介绍了R2021a