主要内容

情节

局部可解释模型不可知解释(LIME)的图结果

    描述

    例子

    f=情节(结果中的可视化LIME结果石灰对象结果.函数返回数字对象f.使用f查询或修改图的属性图形创建后的。

    • 该图包含一个水平柱状图,显示线性简单模型的系数值或决策树简单模型的预测器重要性值,这取决于中的简单模型结果SimpleModel的属性结果).

    • 该图分别显示了使用机器学习模型和简单模型计算的查询点的两个预测。这些值对应于BlackboxFitted财产和SimpleModelFitted的属性结果

    例子

    全部折叠

    训练一个分类模型并创建一个石灰对象,该对象使用决策树简单模型。当你创建石灰对象,指定查询点和重要预测因子的数量,以便软件生成合成数据集的样本,并为具有重要预测因子的查询点拟合一个简单模型。然后利用目标函数在简单模型中显示估计的预测因子重要性情节

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

    可读的(“CreditRating_Historical.dat”);

    显示表的前三行。

    头(资源描述,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}

    通过删除客户id和评分列,创建一个预测变量表资源描述

    tblX = removevars(tbl,[“ID”“评级”]);

    训练信用评级的黑盒模型fitcecoc函数。

    blackbox = fitcecoc(tblX,tbl。评级,“CategoricalPredictors”“行业”);

    创建一个石灰对象,该对象使用决策树简单模型解释对最后一次观测的预测。指定“NumImportantPredictors”作为六个,找出最多6个重要的预测因子。如果您指定“QueryPoint”而且“NumImportantPredictors”属性时的值石灰对象,然后软件生成合成数据集的样本,并为合成数据集拟合一个简单的可解释模型。

    queryPoint = tblX(end,:)
    queryPoint =1×6表WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业  _____ _____ _______ ________ ____ ________ 0.239 0.463 0.065 2.924 0.34 - 2
    rng (“默认”%用于再现性结果=石灰(黑盒子,“QueryPoint”queryPoint,“NumImportantPredictors”6...“SimpleModelType”“树”
    结果= lime with properties: BlackboxModel: [1x1 ClassificationECOC] DataLocality: 'global' CategoricalPredictors: 6 Type: 'classification' X: [3932x6 table] QueryPoint: [1x6 table] NumImportantPredictors: 6 numsynticdata: 5000 synticdata: [5000x6 table] fitting: {5000x1 cell} SimpleModel: [1x1 ClassificationTree] ImportantPredictors: [2x1 double] blackboxfitting: {'AA'} simplemodelfitting: {'AA'}

    画出石灰对象结果通过使用对象函数情节.若要在任何预测器名称中显示现有下划线,请更改TickLabelInterpreter轴的值“没有”

    F =图(结果);f.CurrentAxes.TickLabelInterpreter =“没有”

    图中包含一个轴对象。标题为LIME的axis对象包含一个类型为bar的对象。

    该图显示了查询点的两个预测,它们对应于BlackboxFitted财产和SimpleModelFitted的属性结果

    横柱图显示了排序的预测器重要性值。石灰找到财务比率变量EBIT_TA而且WC_TA作为查询点的重要预测器。

    您可以使用数据提示或读取条形长度栏属性.例如,你可以找到酒吧对象,使用findobj函数,并将标签添加到条形图的两端文本函数。

    B = findobj(f,“类型”“酒吧”);文本(b.YEndPoints + 0.001, b.XEndPoints字符串(b.YData))

    图中包含一个轴对象。标题为LIME的axis对象包含类型栏、文本和决策树模型3个对象。

    或者,您可以在具有预测器变量名称的表中显示系数值。

    imp = b.YData;flipud (array2table(小鬼”,...“RowNames”f.CurrentAxes.YTickLabel,“VariableNames”, {“预测的重要性”}))
    ans =2×1表预测的重要性  ____________________ MVE_BVTD 0.088412 RE_TA 0.0018061

    训练一个回归模型并创建一个石灰对象,该对象使用线性简单模型。当你创建石灰对象,如果不指定查询点和重要预测因子的数量,则软件生成合成数据集的样本,但不适合简单的模型。使用object函数适合为查询点拟合一个简单的模型。然后利用目标函数显示拟合后线性简单模型的系数情节

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

    负载carbig

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

    tbl = table(加速度,气缸,排量,马力,车型年,重量,MPG);

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

    TBL = rmmissing(TBL);

    通过删除响应变量来创建一个预测变量表资源描述

    tblX = removevars(tbl,“英里”);

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

    rng (“默认”%用于再现性mdl = fitrkernel(tblX,tbl。英里/加仑,“CategoricalPredictors”[2 - 5]);

    创建一个石灰对象。指定一个预测器数据集,因为mdl不包含预测器数据。

    results = lime(mdl,tblX)
    结果= lime with properties: BlackboxModel: [1x1 RegressionKernel] DataLocality: 'global' CategoricalPredictors: [2 5] Type: 'regression' X: [392x6 table] QueryPoint: [] NumImportantPredictors: [] numsynticdata: 5000 synticdata: [5000x6 table] fitting: [5000x1 double] SimpleModel: [] ImportantPredictors: [] blackboxfitting: [] simplemodelfitting: []

    结果包含生成的合成数据集。的SimpleModel属性为空([]).

    中第一个观测拟合线性简单模型tblX.指定要查找的重要预测因子的数量为3。

    queryPoint = tblX(1,:)
    queryPoint =1×6表加速气缸位移马力Model_Year重量  ____________ _________ ____________ __________ __________ ______ 12 8 307 130 70 3504
    results = fit(results,queryPoint,3);

    画出石灰对象结果通过使用对象函数情节.若要在任何预测器名称中显示现有下划线,请更改TickLabelInterpreter轴的值“没有”

    F =图(结果);f.CurrentAxes.TickLabelInterpreter =“没有”

    图中包含一个轴对象。带有线性模型的LIME标题的axis对象包含一个类型为bar的对象。

    该图显示了查询点的两个预测,它们对应于BlackboxFitted财产和SimpleModelFitted的属性结果

    横柱图显示了简单模型的系数值,按它们的绝对值排序。石灰发现马力Model_Year,气缸作为查询点的重要预测器。

    Model_Year而且气缸是具有多个类别的分类预测器。对于线性简单模型,软件为每个分类预测器创建的虚拟变量比类别数少一个。条形图只显示最重要的虚变量。,可以检查其他虚变量的系数SimpleModel的属性结果.显示排序系数值,包括所有分类虚拟变量。

    [~,I] = sort(abs(results.SimpleModel.Beta),“下”);表(results.SimpleModel.ExpandedPredictorNames (I)”,results.SimpleModel.Beta(我),...“VariableNames”, {“扩展预测器名称”“系数”})
    ans =17×2表Exteded预测名字系数  __________________________ ___________ {' -3.4485马力的}e-05 {Model_Year(74和70)的}-6.1279 e-07{“Model_Year(80和70)的}-4.015 e-07{“Model_Year(81和70)的}3.4176 e-07{“Model_Year(82和70)的}-2.2483 e-07{的圆柱体(6和8)}-1.9024 e-07{“Model_Year(76和70)的}1.8136 e-07{的圆柱体(5和8)}1.7461 e-07{“Model_Year(71和70)的}1.558 e-07{“Model_Year(75和70)的}1.5456 e-07{“Model_Year(77和70)的}1.521 e-07 {Model_Year (78 vs。70)'} 1.4272e-07 {'Model_Year (72 vs. 70)'} 6.7001e-08 {'Model_Year (73 vs. 70)'} 4.7214e-08{'气缸(4 vs. 8)'} 4.5118e-08 {'Model_Year (79 vs. 70)'} -2.2598e-08 \

    输入参数

    全部折叠

    LIME结果,指定为a石灰对象。的SimpleModel的属性结果必须包含一个合适的简单模型。

    参考文献

    [1]里贝罗,马可·图里奥,s·辛格和c·格斯特林。“‘我为什么要相信你?《解释任何分类器的预测》第22届ACM SIGKDD知识发现和数据挖掘国际会议论文集, 1135 - 44。旧金山,加利福尼亚州:ACM, 2016年。

    R2020b中介绍