主要内容

适合

拟合局部可解释模型不可知论解释(LIME)的简单模型

    描述

    例子

    newresults=健康(结果queryPointnumImportantPredictors适合指定查询点的新简单模型(queryPoint),使用指定数目或预测器(numImportantPredictors).函数返回一个石灰对象newresults其中包含新的简单模型。

    适合类时指定的简单模型选项石灰对象结果.类的名称-值对参数可以更改选项适合函数。

    例子

    newresults=健康(结果queryPointnumImportantPredictors名称,值使用一个或多个名称-值对参数指定其他选项。例如,您可以指定“SimpleModelType”、“树”拟合决策树模型。

    例子

    全部折叠

    训练一个回归模型并创建一个石灰对象,该对象使用线性简单模型。当您创建石灰对象,如果不指定查询点和重要预测器的数量,则软件生成合成数据集的样本,但不适合简单的模型。使用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

    训练一个分类模型并创建一个石灰对象,该对象使用决策树简单模型。为多个查询点适合多个模型。

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

    台= readtable (“CreditRating_Historical.dat”);

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

    tblX = removevars(资源描述,“ID”“评级”]);

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

    黑箱= fitcecoc (tblX,资源描述。评级,“CategoricalPredictors”“行业”
    blackbox = ClassificationECOC PredictorNames: {1x6 cell} ResponseName: 'Y' CategoricalPredictors: 6 ClassNames: {'A' 'AA' 'AAA' 'B' 'BB' 'BBB' 'CCC'} ScoreTransform: 'none' binary学习者:{21x1 cell} CodingName: 'onevsone'属性,方法

    创建一个石灰对象的黑箱模型。

    rng (“默认”%的再现性结果=石灰(黑箱);

    找到两个查询点,它们的真实额定值为AAA而且B,分别。

    queryPoint (1) = tblX(找到(strcmp(资源描述。评级,“AAA”), 1):);queryPoint (2) = tblX(找到(strcmp(资源描述。评级,“B”), 1),:)
    queryPoint =2×6表WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业  _____ _____ _______ ________ _____ ________ 12 0.121 0.413 0.057 3.647 0.466 0.019 0.009 0.042 0.257 0.119 1

    为第一个查询点拟合一个线性简单模型。将重要预测器的数量设置为4。

    newresults1 =适合(结果,queryPoint (1:), 4);

    绘制LIME结果图newresults1对于第一个查询点。若要在任何预测器名称中显示现有下划线,请更改TickLabelInterpreter坐标轴的值“没有”

    f1 =情节(newresults1);f1.CurrentAxes。TickLabelInterpreter =“没有”

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

    为第一个查询点拟合线性决策树模型。

    newresults2 =适合(结果,queryPoint(1:), 6日“SimpleModelType”“树”);f2 =情节(newresults2);f2.CurrentAxes。TickLabelInterpreter =“没有”

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

    中的简单模型newresults1而且newresults2这两个发现MVE_BVTD而且RE_TA作为重要的预测因子。

    为第二个查询点拟合一个线性简单模型,并绘制第二个查询点的LIME结果。

    newresults3 =适合(结果,queryPoint (2:), 4);f3 =情节(newresults3);f3.CurrentAxes。TickLabelInterpreter =“没有”

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

    预测来自黑箱模型是B,但从简单模型的预测不是B.当两个预测不一致时,可以指定一个较小的“KernelWidth”价值。该软件适用于一个简单的模型,使用权重更关注于查询点附近的样本。如果查询点是离群值或位于决策边界附近,那么两个预测值可能不同,即使您指定了一个小的“KernelWidth”价值。在这种情况下,您可以更改其他名称-值对参数。例如,您可以生成一个本地合成数据集(指定“DataLocality”石灰作为“本地”),并增加样本数目(“NumSyntheticData”石灰适合)在合成数据集中。你也可以使用不同的距离度量(“距离”石灰适合).

    拟合线性简单模型与小“KernelWidth”价值。

    newresults4 =适合(结果,queryPoint (2:), 4,“KernelWidth”, 0.01);f4 =情节(newresults4);f4.CurrentAxes。TickLabelInterpreter =“没有”

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

    第一个和第二个查询点的信用评级为AAA而且B,分别。中的简单模型newresults1而且newresults4这两个发现MVE_BVTDRE_TA,WC_TA作为重要的预测因子。但是,它们的系数值是不同的。图表显示,这些预测因子根据信用评级的不同表现不同。

    输入参数

    全部折叠

    LIME结果,指定为a石灰对象。

    的查询点适合函数适合简单模型,指定为数值的行向量或单行表。的queryPoint值必须与预测器数据具有相同的数据类型和相同的列数(结果。X结果。SyntheticData)石灰对象结果

    queryPoint不能包含缺失的值。

    数据类型:||表格

    在简单模型中使用的重要预测器的数量,指定为正整数标量值。

    • 如果“SimpleModelType”“线性”,则该软件选择指定数量的重要预测因子,并拟合所选预测因子的线性模型。

    • 如果“SimpleModelType”“树”,则软件指定决策分割(或分支节点)的最大数目作为重要预测数,使拟合的决策树最多使用指定的预测数。

    的默认值numImportantPredictors参数是NumImportantPredictors的物业价值石灰对象结果.如果在创建时不指定属性值结果,则属性值为空([]),你必须指定这个参数。

    数据类型:|

    名称-值参数

    指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

    在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

    例子:“NumSyntheticData”,2000年,“SimpleModelType”,“树”将为合成数据集生成的样本数量设置为2000,并将简单模型类型指定为决策树。

    马氏距离度量的协方差矩阵,指定为逗号分隔的对,由“浸”和一个K——- - - - - -K正定矩阵,其中K是预测器的数量。

    这个论点只有在“距离”“mahalanobis”

    缺省值为“浸”对象时指定的石灰对象结果.默认的“浸”的价值石灰浸(PD omitrows),在那里PD是预测数据还是合成预测数据。如果不指定“浸”值,则软件在计算预测数据和合成预测数据的距离时使用不同的协方差矩阵。

    例子:“浸”,眼睛(3)

    数据类型:|

    距离度量,指定为逗号分隔的对,由“距离”和字符向量、字符串标量或函数句柄。

    • 如果预测数据只包括连续变量,则适合支持这些距离度量。

      价值 描述
      “欧几里得”

      欧氏距离。

      “seuclidean”

      标准化的欧氏距离。观测值之间的每一个坐标差都通过除以相应的标准差元素来缩放,S =性病(PD omitnan),在那里PD是预测数据还是合成预测数据。要指定不同的缩放,请使用“规模”名称-值参数。

      “mahalanobis”

      的样本协方差的马氏距离PDC = x (PD omitrows).要更改协方差矩阵的值,请使用“浸”名称-值参数。

      “cityblock”

      城市街区的距离。

      闵可夫斯基的

      闵可夫斯基距离。缺省指数为2。要指定不同的指数,请使用“P”名称-值参数。

      “chebychev”

      切比乔夫距离(最大坐标差)。

      的余弦

      1减去点间夹角的余弦(作为向量处理)。

      “相关”

      1减去点之间的样本相关性(作为值序列处理)。

      “枪兵”

      1减去观察值之间的样本斯皮尔曼秩相关(作为值序列处理)。

      @distfun

      自定义距离函数手柄。距离函数有这样的形式

      函数ZJ D2 = distfun(子)距离百分比计算...
      在哪里

      • 是一个1——- - - - - -t包含单个观测值的向量。

      • ZJ是一个年代——- - - - - -t包含多个观察结果的矩阵。distfun必须接受一个矩阵ZJ用任意数量的观察。

      • D2是一个年代——- - - - - -1距离向量,和D2 (k)观察之间的距离是多少而且ZJ (k,:)

      如果您的数据不是稀疏的,您通常可以通过使用内置的距离度量而不是函数句柄来更快地计算距离。

    • 如果预测数据包括连续变量和分类变量,那么适合支持这些距离度量。

      价值 描述
      “goodall3”

      修改古德距离

      海底钻井的

      发生频率的距离

    定义,请参阅距离度量

    缺省值为“距离”对象时指定的石灰对象结果.默认的“距离”的价值石灰“欧几里得”如果预测器数据只包括连续变量,或“goodall3”如果预测数据包括连续变量和分类变量。

    例子:“距离”、“海底钻井的

    数据类型:字符|字符串|function_handle

    平方指数(或高斯)核函数的核宽,指定为逗号分隔的对,由“KernelWidth”和一个数值标量值。

    适合函数计算查询点与合成预测数据集中样本之间的距离,然后利用平方指数核函数将这些距离转换为权重。如果你降低“KernelWidth”值,然后适合使用更关注查询点附近的样本的权重。有关详细信息,请参见石灰

    缺省值为“KernelWidth”对象时指定的石灰对象结果.默认的“KernelWidth”的价值石灰是0.75。

    例子:“KernelWidth”,0.5

    数据类型:|

    查询点的邻居数,指定为逗号分隔的对,由“NumNeighbors”和一个正整数标量值。此参数仅在DataLocality的属性结果“本地”

    适合函数使用查询点的指定最近邻数估计预测器数据的分布参数。然后利用估计分布生成综合预测数据。

    如果您指定的值大于预测数据集中的观察数(结果。X)石灰对象结果,然后适合使用所有的观察。

    缺省值为“NumNeighbors”对象时指定的石灰对象结果.默认的“NumNeighbors”的价值石灰是1500。

    例子:“NumNeighbors”,2000年

    数据类型:|

    为合成数据集生成的样本数,指定为逗号分隔的对,由“NumSyntheticData”和一个正整数标量值。

    缺省值为NumSyntheticData的物业价值石灰对象结果.如果在创建时提供自定义合成数据集结果,则属性值为数据集中样本的个数。否则,“NumSyntheticData”您在创建时指定的值结果设置属性。默认的“NumSyntheticData”的价值石灰是5000。

    例子:“NumSyntheticData”,2500年

    数据类型:|

    闵可夫斯基距离度量的指数,指定为逗号分隔的对,由“P”一个正的标量。

    这个论点只有在“距离”闵可夫斯基的

    缺省值为“P”对象时指定的石灰对象结果.默认的“P”的价值石灰是2。

    例子:“P”3

    数据类型:|

    标度参数值的标准化欧氏距离度量,指定为逗号分隔的对,由“规模”和长度的非负数值向量K,在那里K是预测器的数量。

    这个论点只有在“距离”“seuclidean”

    缺省值为“规模”对象时指定的石灰对象结果.默认的“规模”的价值石灰性病(PD omitnan),在那里PD是预测数据还是合成预测数据。如果不指定“规模”值,则软件在计算预测数据和合成预测数据的距离时使用不同的尺度参数。

    例子:“规模”,分位数(0.75 X)——分位数(0.25 X))

    数据类型:|

    类型,指定为逗号分隔的对,由“SimpleModelType”而且“线性”“树”

    缺省值为“SimpleModelType”对象时指定的石灰对象结果.默认的“SimpleModelType”的价值石灰“线性”

    例子:“SimpleModelType”、“树”

    数据类型:字符|字符串

    输出参数

    全部折叠

    LIME结果,返回为石灰对象。newresults包含新的简单模型。

    覆盖输入参数结果的输出适合结果

    结果=适合(结果、queryPoint numImportantPredictors);

    更多关于

    全部折叠

    距离度量

    距离度量是定义两个观测点之间距离的函数。适合支持连续变量和连续变量和分类变量的混合的各种距离度量。

    • 连续变量的距离度量

      给定一个mx——- - - - - -n数据矩阵X,被视为mx(1 -n)行向量x1x2、……xmx和一个我的——- - - - - -n数据矩阵Y,被视为我的(1 -n)行向量y1y2、……y我的,向量之间的各种距离x年代而且yt定义如下:

      • 欧氏距离

        d 年代 t 2 x 年代 y t x 年代 y t

        欧氏距离是闵可夫斯基距离的一种特殊情况,其中p= 2

      • 标准化的欧几里得距离

        d 年代 t 2 x 年代 y t V 1 x 年代 y t

        在哪里Vn——- - - - - -n对角矩阵的j对角元素是年代j))2,在那里年代是每个维度的比例因子向量。

      • Mahalanobis距离

        d 年代 t 2 x 年代 y t C 1 x 年代 y t

        在哪里C是协方差矩阵。

      • 城市街区的距离

        d 年代 t j 1 n | x 年代 j y t j |

        城市街区距离是闵可夫斯基距离的一个特例,其中p= 1

      • 闵可夫斯基距离

        d 年代 t j 1 n | x 年代 j y t j | p p

        对于特殊情况p= 1,闵可夫斯基距离为城市街区距离。对于特殊情况p= 2,闵可夫斯基距离给出了欧氏距离。对于特殊情况p=∞,闵可夫斯基距离就是切比乔夫距离。

      • Chebychev距离

        d 年代 t 马克斯 j | x 年代 j y t j |

        切比乔夫距离是闵可夫斯基距离的一个特例,其中p=∞

      • 余弦距离

        d 年代 t 1 x 年代 y t x 年代 x 年代 y t y t

      • 相关距离

        d 年代 t 1 x 年代 x ¯ 年代 y t y ¯ t x 年代 x ¯ 年代 x 年代 x ¯ 年代 y t y ¯ t y t y ¯ t

        在哪里

        x ¯ 年代 1 n j x 年代 j

        而且

        y ¯ t 1 n j y t j

      • 斯皮尔曼的距离

        d 年代 t 1 r 年代 r ¯ 年代 r t r ¯ t r 年代 r ¯ 年代 r 年代 r ¯ 年代 r t r ¯ t r t r ¯ t

        在哪里

        • rsjxsj接管x1jx2j,……xmx j,按tiedrank

        • rtjytj接管y1jy2j,……y我,我,按tiedrank

        • r年代而且rt坐标上的秩向量是x年代而且yt,也就是说,r年代= (r年代1r年代2,……rsn),rt= (rt1rt2,……rtn).

        • r ¯ 年代 1 n j r 年代 j n + 1 2

        • r ¯ t 1 n j r t j n + 1 2

    • 连续变量和分类变量的混合距离度量

      • 修改古德距离

        这个距离是Goodall距离的一个变体,如果匹配值不频繁,无论其他值的频率如何,Goodall距离分配一个小的距离。对于不匹配,预测器的距离贡献为1/(变量个数)。

      • 发生频率的距离

        对于匹配,出现频率距离指定为零距离。对于不匹配,发生频率距离在较不频繁的值上指定较高的距离,在较频繁的值上指定较低的距离。

    算法

    全部折叠

    石灰

    用LIME解释机器学习模型的预测[1],该软件生成合成数据集,并对合成数据集拟合一个简单的可解释模型石灰而且适合,如步骤1-5所述。

    • 如果指定queryPoint而且numImportantPredictors的值石灰,那么石灰函数执行所有步骤。

    • 如果不指定queryPoint而且numImportantPredictors并指定“DataLocality”作为“全球”(默认),那么石灰函数生成合成数据集(步骤1-2),而适合函数适合一个简单的模型(步骤3-5)。

    • 如果不指定queryPoint而且numImportantPredictors并指定“DataLocality”作为“本地”,那么适合函数执行所有步骤。

    石灰而且适合函数执行以下步骤:

    1. 生成一个合成预测数据集X年代对连续变量采用多元正态分布,对每个类别变量采用多项分布。方法可以指定要生成的样例的数量“NumSyntheticData”名称-值参数。

      • 如果“DataLocality”“全球”(默认值),然后软件从整个预测数据集(X或预测数据黑箱).

      • 如果“DataLocality”“本地”的分布参数进行估计k-查询点的最近邻居,其中k“NumNeighbors”价值。方法可以指定一个距离度量来查找最近的邻居“距离”名称-值参数。

      该软件在估计分布参数时忽略预测器数据集中的缺失值。

      方法提供预生成的自定义合成预测器数据集customSyntheticData输入参数的石灰

    2. 计算预测Y年代对于合成数据集X年代.预测是用于回归的预测响应或用于分类的分类标签。该软件使用预测的函数黑箱模型来计算预测。如果您指定黑箱作为函数句柄,然后软件使用函数句柄计算预测。

    3. 计算距离d在查询点和合成预测器数据集中的样本之间使用指定的距离度量“距离”

    4. 计算权重值w合成预测器数据集中的样本相对于查询点的使用平方指数(或高斯)核函数

      w x 年代 经验值 1 2 d x 年代 p σ 2

      • x年代是合成预测数据集中的样本吗X年代

      • dx年代样品之间的距离是多少x年代以及查询点

      • p预测因子的数量在吗X年代

      • σ内核宽度,您可以使用“KernelWidth”名称-值参数。默认的“KernelWidth”值是0.75。

      查询点的权重值为1,然后随着距离值的增加,它收敛于零。的“KernelWidth”值控制权重值收敛到零的速度。越低“KernelWidth”值,权重值收敛于零的速度越快。因此,算法赋予查询点附近的样本更多的权重。由于该算法使用了这些权重值,选择的重要预测因子和拟合的简单模型有效地解释了在查询点附近对合成数据的局部预测。

    5. 适合一个简单的模型。

      • 如果“SimpleModelType”“线性”(默认),然后软件选择重要的预测因子,并拟合所选重要预测因子的线性模型。

        • 选择n重要的预测因子( X ˜ 年代 ),采用群正交匹配追踪(OMP)算法[2][3],在那里nnumImportantPredictors价值。该算法使用合成预测数据集(X年代)、预测(Y年代)和权重值(w).

        • 拟合所选重要预测因子的线性模型( X ˜ 年代 )到预测(Y年代)使用权值(w).软件使用fitrlinear回归或fitclinear的分类。对于一个多类模型,该软件使用一个对所有的方案来构造一个二元分类问题。的查询点的预测类黑箱模型中,负类指的是其他类。

      • 如果“SimpleModelType”“树”,则软件拟合决策树模型fitrtree回归或fitctree的分类。该软件指定决策分割(或分支节点)的最大数量作为重要预测器的数量,以便拟合的决策树最多使用指定的预测器数量。

    参考文献

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

    [2] Świrszcz, Grzegorz, Abe直树,Aurélie C. Lozano。变量选择与预测的分组正交匹配追踪。神经信息处理系统的研究进展(2009): 1150 - 58。

    [3]洛扎诺,Aurélie C, Grzegorz Świrszcz,阿部直树。逻辑回归的群正交匹配追踪。第十四届人工智能与统计国际会议论文集(2011): 452 - 60。

    版本历史

    介绍了R2020b

    另请参阅

    |

    Baidu
    map