主要内容

情节

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

    描述

    例子

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

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

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

    例子

    全部折叠

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

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

    台= readtable (“CreditRating_Historical.dat”);

    显示表的前三行。

    头(资源描述,3)
    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(资源描述,“ID”,“评级”]);

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

    黑箱= fitcecoc (tblX,资源描述。评级,“CategoricalPredictors”,“行业”);

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

    queryPoint = tblX(最终,:)
    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”,“树”
    results = lime with properties: BlackboxModel: [1x1 ClassificationECOC] DataLocality: 'global' CategoricalPredictors: 6 Type: 'classification' X: [3932x6 table] QueryPoint: [1x6 table] NumImportantPredictors: 6 NumSyntheticData: 5000 SyntheticData: [5000x1 cell} SimpleModel: [1x1 ClassificationTree] ImportantPredictors: [2x1 double] blackboxsuits: {'AA'} simplemodelsuits: {'AA'}

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

    f =情节(结果);f.CurrentAxes.TickLabelInterpreter =“没有”

    图中包含一个axes对象。标题为LIME和Decision Tree Model的axis对象包含一个类型为bar的对象。

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

    水平柱状图显示了排序后的预测器重要性值。石灰查找财务比率变量MVE_BVTD而且RE_TA作为查询点的重要预测器。

    您可以通过使用数据提示或栏属性.例如,你可以找到酒吧对象。findobj函数,并将标签添加到条的末端文本函数。

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

    图中包含一个axes对象。标题为LIME with Decision Tree Model的坐标轴对象包含类型为bar、text的3个对象。

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

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

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

    加载carbig数据集,包含70年代和80年代早期生产的汽车的测量数据。

    负载carbig

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

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

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

    台= rmmissing(台);

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

    tblX = removevars(资源描述,“英里”);

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

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

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

    结果=石灰(mdl tblX)
    results = lime with properties: BlackboxModel: [1x1 RegressionKernel] DataLocality: 'global' CategoricalPredictors: [2 5] Type: 'regression' X: [392x6 table] QueryPoint: [] NumImportantPredictors: [] NumSyntheticData: 5000 synticdata: [5000x6 table] suitable: [5000x1 double] SimpleModel: [] ImportantPredictors: [] blackboxsuitable: [] simplemodelpredictors: []

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

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

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

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

    f =情节(结果);f.CurrentAxes.TickLabelInterpreter =“没有”

    图中包含一个axes对象。标题为LIME with Linear Model的axis对象包含一个类型为bar的对象。

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

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

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

    [~,我]=排序(abs (results.SimpleModel.Beta),“下”);表(results.SimpleModel.ExpandedPredictorNames (I)”,results.SimpleModel.Beta(我),...“VariableNames”, {“Exteded预测的名字”,“系数”})
    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的属性结果必须包含一个合适的简单模型。

    参考文献

    Ribeiro, Marco Tulio, S. Singh, C. Guestrin。“‘我为什么要相信你?“解释任何分类器的预测。”第22届ACM SIGKDD知识发现与数据挖掘国际会议论文集, 1135 - 44。旧金山,加利福尼亚州:ACM, 2016。

    版本历史

    介绍了R2020b

    Baidu
    map