适合
适合当地可翻译的简单模型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 (“默认”)%的再现性结果=石灰(黑箱);
找到两个查询点的真实等级值AAA
和B
,分别。
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 =“没有”;
简单的模型newresults1
和newresults2
这两个发现MVE_BVTD
和RE_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 =“没有”;
第一次和第二次查询点的信用评级AAA
和B
,分别。简单的模型newresults1
和newresults4
这两个发现MVE_BVTD
,RE_TA
,WC_TA
作为重要的预测因子。然而,他们的系数值是不同的。情节表明,这些预测不同根据信用评级。
输入参数
结果
- - - - - -石灰的结果
石灰
对象
石灰的结果,指定为一个石灰
对象。
queryPoint
- - - - - -查询点
行向量的数值|单列表
查询点的适合
函数的简单模型,指定为一个行向量的数值或单列表。的queryPoint
价值必须具有相同的数据类型和相同数量的列作为预测数据(结果。
或X
结果。
)SyntheticData
石灰
对象结果
。
queryPoint
不能包含缺失值。
数据类型:单
|双
|表
numImportantPredictors
- - - - - -许多重要的预测中使用简单的模型
正整数标量值
许多重要的预测使用的简单模型,指定为一个正整数标量值。
如果
“SimpleModelType”
是“线性”
指定的软件选择,那么一些重要的预测和选择符合线性模型预测。如果
“SimpleModelType”
是“树”
,那么软件指定的最大数量决定分裂(或分支节点)作为许多重要的决策树预测,以便安装使用最多指定数量的预测。
数据类型:单
|双
名称-值参数
指定可选的逗号分隔条名称,值
参数。的名字
参数名称和吗价值
相应的价值。的名字
必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家
。
“NumSyntheticData”, 2000年,“SimpleModelType”,“树”
样本的数量设置为生成的合成数据设置为2000,并指定简单的决策树模型类型。
距离
- - - - - -距离度量
特征向量|字符串标量|函数处理
距离度量,指定为逗号分隔组成的“距离”
和一个特征向量,字符串标量,或函数句柄。
如果预测数据只包含连续变量,然后
适合
万博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
NumNeighbors
- - - - - -邻居查询点的数量
正整数标量值
的邻居查询点,指定为逗号分隔组成的“NumNeighbors”
和一个正整数标量值。这个论证是有效的只有当DataLocality
的属性结果
是“本地”
。
的适合
函数估计分布参数的预测数据使用指定的最近邻居查询的点的数量。然后使用估计的函数生成合成预测数据分布。
如果你指定一个值大于观测的数量预测数据集(结果。
)X
石灰
对象结果
,然后适合
使用所有的观察。
默认值是“NumNeighbors”
创建时指定的值石灰
对象结果
。默认的“NumNeighbors”
的价值石灰
是1500。
例子:“NumNeighbors”, 2000年
数据类型:单
|双
NumSyntheticData
- - - - - -数量的样本来生成合成数据集
results.NumSyntheticData
(默认)|正整数标量值
样本数为合成数据集,生成指定为逗号分隔组成的“NumSyntheticData”
和一个正整数标量值。
默认值是NumSyntheticData
属性值的结果
。
例子:“NumSyntheticData”, 2500年
数据类型:单
|双
P
- - - - - -闵可夫斯基距离度量的指数
积极的标量
闵可夫斯基距离度量指数,指定为逗号分隔组成的“P”
和积极的标量。
这个论点是有效的前提“距离”
是闵可夫斯基的
。
默认值是“P”
创建时指定的值石灰
对象结果
。默认的“P”
的价值石灰
是2。
例子:“P”3
数据类型:单
|双
SimpleModelType
- - - - - -类型的简单的模型
“线性”
|“树”
类型的简单模型,指定为逗号分隔组成的“SimpleModelType”
和“线性”
或“树”
。
“线性”
——软件符合线性模型通过使用fitrlinear
回归或fitclinear
的分类。
默认值是“SimpleModelType”
创建时指定的值石灰
对象结果
。默认的“SimpleModelType”
的价值石灰
是“线性”
。
例子:“SimpleModelType”、“树”
数据类型:字符
|字符串
输出参数
更多关于
距离度量
距离度量是一个函数,定义了两个观测之间的距离。适合
万博1manbetx支持各种连续变量和连续的距离度量和分类变量。
距离度量连续变量
给定一个mx——- - - - - -n数据矩阵X,这被视为mx(1 -n)行向量x1,x2、……xmx和一个我的——- - - - - -n数据矩阵Y,这被视为我的(1 -n)行向量y1,y2、……y我的,各种向量之间的距离x年代和yt定义如下:
欧氏距离
的欧几里得距离是一个特例闵可夫斯基距离,p= 2。
标准化的欧几里得距离
在哪里V是n——- - - - - -n对角矩阵的jth对角线元素是(年代(j))2,在那里年代是一个向量的每个维度的比例因素。
Mahalanobis距离
在哪里C协方差矩阵。
城市街区的距离
城市街区的距离是一个特例的闵可夫斯基距离,p= 1。
闵可夫斯基距离
的特殊情况p= 1闵可夫斯基距离给出了城市街区距离。的特殊情况p= 2闵可夫斯基距离给出了欧氏距离。的特殊情况p=∞闵可夫斯基距离给Chebychev距离。
Chebychev距离
距离Chebychev闵可夫斯基距离是一个特例,在哪里p=∞。
余弦距离
相关距离
在哪里
和
斯皮尔曼的距离
在哪里
距离度量的连续和分类变量
修改古德距离
这个距离是古德距离的一种变体,分配一个小的距离如果匹配值是罕见的,不管其他的频率值。不匹配,距离预测的贡献是1 /(变量)的数量。
发生频率的距离
匹配,出现频率分配零距离的距离。不匹配,出现频率距离分配更高的距离不那么频繁的价值和更低的距离更频繁的价值。
算法
石灰
解释使用石灰机器学习模型的预测[1],软件生成一个合成数据集和一个简单的可说明的模型合成数据集使用石灰
和适合
,如步骤1 - 5所示。
如果你指定
queryPoint
和numImportantPredictors
的值石灰
,那么石灰
函数执行的所有步骤。如果你不指定
queryPoint
和numImportantPredictors
并指定“DataLocality”
作为“全球”
(默认),那么石灰
函数生成一个合成数据集(步骤1 - 2),和适合
函数与一个简单的模型(步骤3 - 5)。如果你不指定
queryPoint
和numImportantPredictors
并指定“DataLocality”
作为“本地”
,那么适合
函数执行的所有步骤。
的石灰
和适合
函数执行这些步骤:
生成一个合成预测数据集X年代使用多元正态分布的连续变量和每个类别变量的多项式分布。您可以指定由使用生成的样本的数量
“NumSyntheticData”
名称-值参数。如果
“DataLocality”
是“全球”
(默认),然后从整个软件估计分布参数预测数据集(X
或预测数据黑箱
)。如果
“DataLocality”
是“本地”
,那么软件估计分布参数使用k最近邻居查询的点,在那里k是“NumNeighbors”
价值。您可以指定一个距离度量找到最近的邻居使用“距离”
名称-值参数。
软件忽略缺失值的预测数据集时估计分布参数。
或者,您可以提供一个pregenerated、定制合成预测数据集使用
customSyntheticData
输入参数的石灰
。计算预测Y年代合成数据集X年代。回归的预测是预测反应或分类标签分类。软件使用
预测
的函数黑箱
模型计算预测。如果您指定黑箱
作为处理函数,利用函数处理软件计算预测。计算距离d查询点和样品之间的综合预测数据集使用指定的距离度量
“距离”
。计算权重值w问合成样品的预测数据集的查询问利用平方指数(或高斯核函数)
x年代在合成预测数据集是一个样本X年代。
d(x年代,问)样本之间的距离吗x年代和查询点问。
p预测的数量吗X年代。
σ是内核宽度,您可以指定使用哪一个
“KernelWidth”
名称-值参数。默认的“KernelWidth”
值是0.75。
查询点的权重值是1,然后收敛于零的距离值增加。的
“KernelWidth”
值控制体重的速度值收敛于零。越低“KernelWidth”
价值,越快重量值收敛于零。因此,该算法给查询附近的样本点更多的重量。由于该算法使用这样的重量值,选择重要的预测和安装简单的模型有效地解释本地合成数据的预测,在查询点。一个简单的模型。
如果
“SimpleModelType”
是“线性”
(默认),则软件选择的重要预测因子和符合线性模型选择的重要预测因子。选择n重要的预测因子( )通过使用组正交匹配追踪(OMP)算法[2][3],在那里n是
numImportantPredictors
价值。该算法使用合成预测数据集(X年代)、预测(Y年代),和重量值(w问)。符合线性模型选择的重要预测因子( )到预测(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。
MATLAB명령
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。