主要内容

福芙

沙普利值

    描述

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

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

    使用Shapley值来解释在指定查询点上单个特性对预测的贡献。使用情节功能创建福利值的条形图。您可以通过使用来计算另一个查询点的福利值合身函数。

    创建

    描述

    讲解员=福利(黑箱的)创建一个福芙对象使用机器学习模型对象黑箱包含预测器数据。要计算福利值,请使用合身函数与讲解员

    例子

    讲解员=福利(黑箱X的)创建一个福芙对象中使用的预测器数据X

    例子

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

    例子

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

    输入参数

    全部展开

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

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

    • 对于数值矩阵:

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

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

    • 一个表:

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

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

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

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

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

    数据类型:|

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

    • 对于数值的行向量:

      • 组成列的变量QueryPoint.必须具有相同的订单X或者训练的预测变量黑箱,存储在黑箱。X

      • 如果你训练黑箱那就用表格吧QueryPoint.如果表包含所有数字变量,则可以是数字矢量。

    • 对于单行表:

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

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

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

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

    如果QueryPoint.包含S表示连续预测器和“方法”“conditional-kernel”,然后是福谢价值(ShapleyValues)返回的对象年代。否则,福芙处理年代QueryPoint.在相同的方式黑箱(预测对象的函数黑箱或指定的函数句柄黑箱).

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

    数据类型:||表格

    名称-值对的观点

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

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

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

    价值 描述
    正整数向量

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

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

    逻辑向量

    一种真正的进入意味着相应的预测器是绝对的。向量的长度是P.

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

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

    • 如果您指定黑箱作为回归或分类模型对象,那么福芙通过使用识别分类预测器CategoricalPredictors属性。

    福芙金宝app支持有序的分类预测器何时黑箱金宝app支持有序分类预测和“方法”'介入 - 内核'

    例子:“CategoricalPredictors”、“所有”

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

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

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

    例子:“MaxNumSubsets”,100年

    数据类型:|

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

    • '介入 - 内核'(默认)福芙使用kernelSHAP算法[1]用介入性价值函数。

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

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

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

    数据类型:字符|字符串

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

    例子:“UseParallel”,真的

    数据类型:逻辑

    属性

    全部展开

    此属性是只读的。

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

    黑箱参数设置此属性。

    此属性是只读的。

    通过机器学习模型(BlackboxModel),指定为标量。

    • 如果BlackboxModel那么,模型是对象吗BlackboxFitted是回归的预测反应或分类的分类标签。

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

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

    此属性是只读的。

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

    • 如果您指定黑箱然后使用函数句柄福芙从预测数据中确定分类预测X.如果指定'patericalpricictors'名称值参数,然后参数设置此属性。

    • 如果您指定黑箱作为回归或分类模型对象,那么福芙属性来确定此属性CategoricalPredictors属性。

    福芙金宝app支持有序的分类预测器何时黑箱金宝app支持有序分类预测和“方法”'介入 - 内核'

    数据类型:|

    平均预测,对预测器数据进行平均X,指定为数字矢量或数字标量。

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

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

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

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

    数据类型:|

    此属性是只读的。

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

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

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

    “方法”的观点福芙或者是“方法”的观点合身设置此属性。

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

    数据类型:字符|字符串

    此属性是只读的。

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

    “MaxNumSubsets”的观点福芙或者是“MaxNumSubsets”的观点合身设置此属性。

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

    数据类型:|

    此属性是只读的。

    查询点福芙使用Shapley值解释预测(ShapleyValues),指定为数值或单行表的行向量。

    QueryPoint.的观点福芙或者是QueryPoint.的观点合身设置此属性。

    数据类型:||表格

    此属性是只读的。

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

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

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

    数据类型:表格

    此属性是只读的。

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

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

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

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

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

    福芙在此属性中存储所有观察结果,包括缺少值的行。

    数据类型:||表格

    对象的功能

    合身 计算查询点的福利值
    情节 情节夏普利值

    例子

    全部折叠

    培训分类模型并创建一个福芙对象。当你创造一个福芙对象,指定一个查询点,以便软件计算该查询点的Shapley值。然后使用对象函数创建Shapley值的柱状图情节

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

    台= readtable (“CreditRating_Historical.dat”);

    显示表的前三行。

    头(TBL,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函数。使用第二列中的变量资源描述作为预测变量。推荐的做法是指定类名来设置类的顺序。

    Blackbox = FitCecoc(TBL,“评级”...“PredictorNames”tbl.Properties.VariableNames (7),...'patericalpricictors''行业'...“类名”,{“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”为真值,以实现更快的计算。
    explainer = shapley with properties: BlackboxModel: [1x1 ClassificationECOC] QueryPoint: [1x8 table] BlackboxFitted: {'AA'} ShapleyValues: [6x8 table] NumSubsets: 64 X: [3932x6 table] CategoricalPredictors: 6 Method: ' inter干涉-kernel' Intercept:[-0.5041 -0.3908 -0.3137 -0.3042 -0.4217…]

    正如警告消息所指出的,计算可能会很慢,因为预测器数据有超过1000个观测数据。为了更快的计算,使用较小的训练集样本或指定'使用指惯'作为真正的

    对于一个分类模型,福芙使用每个类的预测类得分计算Shapley值。中的值显示ShapleyValues财产。

    讲解员。沙普利价值s
    ans =6×8表预测AAA AA BBB BB B CCC  __________ __________ __________ ___________ ___________ ___________ ___________ ___________ " WC_TA“0.014715 0.0064376 0.0026704 0.00048882 -0.0079015 -0.011841 -0.011395”RE_TA“0.047918 0.026917 0.014751 -0.0031481 -0.02512 -0.059926 -0.08418”EBIT_TA“0.0003427 0.00015025 0.00011977 3.3904 -0.00018925 e-05-0.00038135 -0.00033783 "MVE_BVTD" " 0.38334 0.37376 0.17563 -0.032136 -0.18728 -0.24831 -0.19585 "S_TA" -0.0037304 -0.0026011 -8.8854e-05 -0.00081782 -5.4936e-05

    ShapleyValues属性包含每个类的所有特性的Shapley值。

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

    情节(讲解员)

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

    水平条形图显示了所有变量的Shapley值,按它们的绝对值排序。每个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财产。

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

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

    情节(讲解员)

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

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

    火车回归模型并创建一个福芙对象的函数句柄预测模型的功能。使用对象函数合身来计算指定查询点的Shapley值。然后利用目标函数绘制Shapley值情节

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

    负载carbig

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

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

    训练一个黑匣子模型英里/加仑通过使用treebagger函数。

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

    福芙不支持金宝apptreebagger对象,因此不能指定的第一个输入参数(黑盒模型)福芙作为一个treebagger对象。的函数句柄预测函数。的选项预测使用函数的名称值参数函数。

    的函数句柄预测功能的功能treebagger目的Mdl.指定要使用的树索引数组1:50

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

    创建一个福芙对象使用函数句柄F.当您指定黑箱模型作为函数句柄时,您必须提供预测器数据。资源描述包括分类预测因子(油缸Model_Year)与之数据类型。默认情况下,福芙不使用作为分类预测器的数据类型。指定第二个(油缸)及第五(Model_Year)变量作为分类预测因子。

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

    绘制福利值。

    情节(讲解员)

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

    更多关于

    全部展开

    参考文献

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

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

    扩展功能

    介绍了R2021a