主要内容

适合

适合当地可翻译的简单模型model-agnostic解释(石灰)

    描述

    例子

    newresults=健康(结果,queryPoint,numImportantPredictors)符合指定查询点(一个新的简单的模型queryPoint)通过使用指定的数量或预测因子(numImportantPredictors)。函数返回一个石灰对象newresults包含新的简单的模型。

    适合使用简单的模型选项创建时指定石灰对象结果。你可以改变使用的名称-值对参数的选项适合函数。

    例子

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

    例子

    全部折叠

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

    加载carbig的数据集,其中包含测量汽车在1970年代末和1980年代初。

    负载carbig

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

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

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

    台= rmmissing(台);

    创建一个表的预测变量的反应变量资源描述

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

    火车的黑箱模型英里/加仑通过使用fitrkernel函数。

    rng (“默认”)%的再现性mdl = fitrkernel (tblX tbl.MPG,“CategoricalPredictors”[2 - 5]);

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

    结果=石灰(mdl tblX)
    结果=石灰与属性:BlackboxModel: [1 x1 RegressionKernel] DataLocality:“全球”CategoricalPredictors:[2 5]类型:“回归”X: [392 x6表]QueryPoint: [] NumImportantPredictors: [] NumSyntheticData: 5000 SyntheticData: [5000 x6表)安装:x1双[5000]SimpleModel: [] ImportantPredictors: [] BlackboxFitted: [] SimpleModelFitted: []

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

    适合第一次观察到的简单线性模型tblX。指定数量的重要预测因素找到3。

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

    画出石灰对象结果通过使用对象的功能情节。显示现有的强调在任何预测的名字,改变TickLabelInterpreter轴的价值“没有”

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

    图包含一个坐标轴对象。坐标轴对象与标题石灰与线性模型包含一个对象类型的酒吧。

    查询的情节显示两个预测点,对应BlackboxFitted财产和SimpleModelFitted的属性结果

    水平条形图显示了简单的模型的系数值,按他们的绝对值。石灰发现马力,Model_Year,气缸查询点的重要预测因子。

    Model_Year气缸是有多个类别的分类预测。线性的简单模型,软件创建一个哑变量小于的数量为每个分类预测类别。条形图只显示最重要的哑变量。你可以检查其他的系数使用虚拟变量SimpleModel的属性结果。显示分类系数值,包括所有分类虚拟变量。

    [~,我]=排序(abs (results.SimpleModel.Beta),“下”);表(results.SimpleModel.ExpandedPredictorNames (I)”, results.SimpleModel.Beta(我),“VariableNames”,{“Exteded预测的名字”,“系数”})
    ans =17×2表Exteded预测名字系数__________________________ ___________ e-05 -3.4485{“马力”}{“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和70)的}1.4272 e-07 {“Model_Year(72和70)的}6.7001 e-08 {“Model_Year(73和70)的}4.7214 e-08{的气缸(4和8)}4.5118 e-08 {“Model_Year(79和70)的}-2.2598 e-08⋮

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

    加载CreditRating_Historical数据集,数据集包含客户id和他们的财务比率,行业标签,信用评级。

    台= readtable (“CreditRating_Historical.dat”);

    创建一个表的预测变量的列的客户id和评级资源描述

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

    火车的黑箱模型使用的信用评级fitcecoc函数。

    黑箱= fitcecoc (tblX tbl.Rating,“CategoricalPredictors”,“行业”)
    黑箱= ClassificationECOC PredictorNames: {1} x6细胞ResponseName:“Y”CategoricalPredictors: 6类名:{“A”“AA”“AAA”“B”“BB”“BBB”“CCC”} ScoreTransform:“没有一个”BinaryLearners: {21} x1细胞CodingName:“onevsone”属性,方法

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

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

    找到两个查询点的真实等级值AAAB,分别。

    queryPoint (1) = tblX (find (strcmp (tbl.Rating,“AAA”),1):);queryPoint (2) = tblX (find (strcmp (tbl.Rating,“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);

    情节石灰的结果newresults1第一个查询点。显示现有的强调在任何预测的名字,改变TickLabelInterpreter轴的价值“没有”

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

    图包含一个坐标轴对象。坐标轴对象与标题石灰与线性模型包含一个对象类型的酒吧。

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

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

    图包含一个坐标轴对象。坐标轴对象与标题石灰与决策树模型包含一个类型的对象吧。

    简单的模型newresults1newresults2这两个发现MVE_BVTDRE_TA作为重要的预测因子。

    适合线性为第二个查询点简单的模型,和情节的石灰结果第二个查询点。

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

    图包含一个坐标轴对象。坐标轴对象与标题石灰与线性模型包含一个对象类型的酒吧。

    的预测黑箱模型是B,但不是简单的预测模型B。当两个预测是不一样的,您可以指定一个小“KernelWidth”价值。软件适合一个简单的模型使用更关注的权重查询附近的样本点。如果查询是局外人或边界附近的一个决定,那么这两个值可以预测不同,即使你指定一个小“KernelWidth”价值。在这种情况下,你可以改变其它参数名称-值对。例如,您可以生成一个当地的合成数据集(指定“DataLocality”石灰作为“本地”)查询点和增加样本的数量(“NumSyntheticData”石灰适合在合成数据集。你也可以使用不同的距离度量(“距离”石灰适合)。

    适合一个线性小的简单的模型“KernelWidth”价值。

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

    图包含一个坐标轴对象。坐标轴对象与标题石灰与线性模型包含一个对象类型的酒吧。

    第一次和第二次查询点的信用评级AAAB,分别。简单的模型newresults1newresults4这两个发现MVE_BVTD,RE_TA,WC_TA作为重要的预测因子。然而,他们的系数值是不同的。情节表明,这些预测不同根据信用评级。

    输入参数

    全部折叠

    石灰的结果,指定为一个石灰对象。

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

    queryPoint不能包含缺失值。

    数据类型:||

    许多重要的预测使用的简单模型,指定为一个正整数标量值。

    • 如果“SimpleModelType”“线性”指定的软件选择,那么一些重要的预测和选择符合线性模型预测。

    • 如果“SimpleModelType”“树”,那么软件指定的最大数量决定分裂(或分支节点)作为许多重要的决策树预测,以便安装使用最多指定数量的预测。

    数据类型:|

    名称-值参数

    指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

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

    协方差矩阵的Mahalanobis距离度量,指定为逗号分隔组成的“浸”和一个K——- - - - - -K正定矩阵,K预测的数量。

    这个论点是有效的前提“距离”“mahalanobis”

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

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

    数据类型:|

    距离度量,指定为逗号分隔组成的“距离”和一个特征向量,字符串标量,或函数句柄。

    • 如果预测数据只包含连续变量,然后适合万博1manbetx支持这些距离度量。

      价值 描述
      “欧几里得”

      欧氏距离。

      “seuclidean”

      标准化的欧氏距离。每个坐标差异观察是通过除以相应的扩展元素的标准差,S =性病(PD omitnan),在那里PD是预测数据或合成预测数据。要指定不同的扩展,可以使用“规模”名称-值参数。

      “mahalanobis”

      而使用的样本协方差距离PD,C = x (PD omitrows)。改变协方差矩阵的值,使用“浸”名称-值参数。

      “cityblock”

      城市街区的距离。

      闵可夫斯基的

      闵可夫斯基距离。默认的指数是2。指定一个不同的指数,使用“P”名称-值参数。

      “chebychev”

      Chebychev距离(最大坐标差异)。

      的余弦

      1 -之间的夹角的余弦值点(视为向量)。

      “相关”

      1 -样本点之间的相关性(作为序列的值)。

      “枪兵”

      1 -样本之间的斯皮尔曼等级相关的观察(作为序列的值)。

      @distfun

      自定义距离函数处理。距离函数的形式

      函数ZJ D2 = distfun(子)%计算距离
      在哪里

      • 是一个1——- - - - - -t向量包含一个观察。

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

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

      如果你的数据不是稀疏的,你可以通过使用一个内置的通常更快的计算距离的距离度量,而不是一个函数处理。

    • 如果预测数据包括连续和分类变量适合万博1manbetx支持这些距离度量。

      价值 描述
      “goodall3”

      修改古德距离

      海底钻井的

      发生频率的距离

    定义,请参阅距离度量

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

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

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

    内核的宽度平方指数(或高斯核函数),指定为逗号分隔组成的“KernelWidth”和数字标量值。

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

    默认值是“KernelWidth”创建时指定的值石灰对象结果。默认的“KernelWidth”的价值石灰是0.75。

    例子:“KernelWidth”, 0.5

    数据类型:|

    的邻居查询点,指定为逗号分隔组成的“NumNeighbors”和一个正整数标量值。这个论证是有效的只有当DataLocality的属性结果“本地”

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

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

    默认值是“NumNeighbors”创建时指定的值石灰对象结果。默认的“NumNeighbors”的价值石灰是1500。

    例子:“NumNeighbors”, 2000年

    数据类型:|

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

    默认值是NumSyntheticData属性值的结果

    例子:“NumSyntheticData”, 2500年

    数据类型:|

    闵可夫斯基距离度量指数,指定为逗号分隔组成的“P”和积极的标量。

    这个论点是有效的前提“距离”闵可夫斯基的

    默认值是“P”创建时指定的值石灰对象结果。默认的“P”的价值石灰是2。

    例子:“P”3

    数据类型:|

    标准化的欧氏距离度量,尺度参数值指定为逗号分隔组成的“规模”和一个非负数字向量的长度K,在那里K预测的数量。

    这个论点是有效的前提“距离”“seuclidean”

    默认值是“规模”创建时指定的值石灰对象结果。默认的“规模”的价值石灰性病(PD omitnan),在那里PD是预测数据或合成预测数据。如果你不指定“规模”值,然后使用不同的软件规模参数计算距离时的预测数据和合成预测数据。

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

    数据类型:|

    类型的简单模型,指定为逗号分隔组成的“SimpleModelType”“线性”“树”

    • “线性”——软件符合线性模型通过使用fitrlinear回归或fitclinear的分类。

    • “树”——软件适合使用决策树模型fitrtree回归或fitctree的分类。

    默认值是“SimpleModelType”创建时指定的值石灰对象结果。默认的“SimpleModelType”的价值石灰“线性”

    例子:“SimpleModelType”、“树”

    数据类型:字符|字符串

    输出参数

    全部折叠

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

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

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

    更多关于

    全部折叠

    距离度量

    距离度量是一个函数,定义了两个观测之间的距离。适合万博1manbetx支持各种连续变量和连续的距离度量和分类变量。

    • 距离度量连续变量

      给定一个mx——- - - - - -n数据矩阵X,这被视为mx(1 -n)行向量x1,x2、……xmx和一个我的——- - - - - -n数据矩阵Y,这被视为我的(1 -n)行向量y1,y2、……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对角矩阵的jth对角线元素是(年代(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距离。

      • Chebychev距离

        d 年代 t = 马克斯 j { | x 年代 j y t j | }

        距离Chebychev闵可夫斯基距离是一个特例,在哪里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 ) ,

        在哪里

        • rsj的排名是xsj接管x1j,x2j,……xmx j所计算的tiedrank

        • rtj的排名是ytj接管y1j,y2j,……y我,我所计算的tiedrank

        • r年代rt的坐标态等级向量x年代yt,也就是说,r年代= (r年代1,r年代2,……rsn),rt= (rt1,rt2,……rtn)。

        • r ¯ 年代 = 1 n j r 年代 j = ( n + 1 ) 2

        • r ¯ t = 1 n j r t j = ( n + 1 ) 2

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

      • 修改古德距离

        这个距离是古德距离的一种变体,分配一个小的距离如果匹配值是罕见的,不管其他的频率值。不匹配,距离预测的贡献是1 /(变量)的数量。

      • 发生频率的距离

        匹配,出现频率分配零距离的距离。不匹配,出现频率距离分配更高的距离不那么频繁的价值和更低的距离更频繁的价值。

    算法

    全部折叠

    石灰

    解释使用石灰机器学习模型的预测[1],软件生成一个合成数据集和一个简单的可说明的模型合成数据集使用石灰适合,如步骤1 - 5所示。

    • 如果你指定queryPointnumImportantPredictors的值石灰,那么石灰函数执行的所有步骤。

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

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

    石灰适合函数执行这些步骤:

    1. 生成一个合成预测数据集X年代使用多元正态分布的连续变量和每个类别变量的多项式分布。您可以指定由使用生成的样本的数量“NumSyntheticData”名称-值参数。

      • 如果“DataLocality”“全球”(默认),然后从整个软件估计分布参数预测数据集(X或预测数据黑箱)。

      • 如果“DataLocality”“本地”,那么软件估计分布参数使用k最近邻居查询的点,在那里k“NumNeighbors”价值。您可以指定一个距离度量找到最近的邻居使用“距离”名称-值参数。

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

      或者,您可以提供一个pregenerated、定制合成预测数据集使用customSyntheticData输入参数的石灰

    2. 计算预测Y年代合成数据集X年代。回归的预测是预测反应或分类标签分类。软件使用预测的函数黑箱模型计算预测。如果您指定黑箱作为处理函数,利用函数处理软件计算预测。

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

    4. 计算权重值w合成样品的预测数据集的查询利用平方指数(或高斯核函数)

      w ( x 年代 ) = 经验值 ( 1 2 ( d ( x 年代 , ) p σ ) 2 )

      • x年代在合成预测数据集是一个样本X年代

      • d(x年代,)样本之间的距离吗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的分类。多级模型,软件使用one-versus-all方案来构造一个二元分类问题。查询的积极类是预测类的黑箱模型和负类指的是其他类。

      • 如果“SimpleModelType”“树”,那么软件适合使用决策树模型fitrtree回归或fitctree的分类。软件指定的最大数量决定分裂(或分支节点)作为许多重要的决策树预测,以便安装使用最多指定数量的预测。

    引用

    [1]里贝罗,马可杜立欧,辛格(manmohan Singh)和c . Guestrin。“我为什么要相信你?:解释任何分类器的预测。”22日ACM SIGKDD国际研讨会论文集知识发现和数据挖掘,1135 - 44。旧金山,加利福尼亚州:ACM, 2016。

    [2]Świrszcz、Grzegorz Naoki安倍,Aurelie Lozano。“分组变量选择的正交匹配追踪和预测。”先进的神经信息处理系统(2009):1150 - 58。

    [3]Lozano, Aurelie C。,Grzegorz Świrszcz, and Naoki Abe. "Group Orthogonal Matching Pursuit for Logistic Regression."《第十四人工智能国际会议上和统计(2011):452 - 60。

    另请参阅

    |

    介绍了R2020b