局部可解释模型不可知解释(LIME)
石灰通过查找重要的预测值并拟合简单的可解释模型,解释对查询点的机器学习模型(分类或回归)的预测。
您可以创建石灰
对象与指定的查询点机器学习模型(查询点
)和指定数量的重要预测(numImportantPredictors
). 该软件生成一个合成数据集,并适合重要预测值的简单可解释模型,该模型可有效解释查询点周围合成数据的预测。简单模型可以是线性模型(默认)或决策树模型。
使用拟合的简单模型在指定的查询点处本地解释本地机器学习模型的预测。使用情节
函数可视化LIME结果。根据局部的解释,你可以决定是否相信机器学习模型。
将新的简单模型用于另一个查询点适合
函数。
创造一个结果
=石灰(黑盒子
'CustomSyntheticData',customSyntheticData
)石灰
对象,使用预生成的自定义合成预测器数据集customSyntheticData
. 这个石灰
函数计算中样本的预测customSyntheticData
.
还发现的重要预测指定数量和适合的查询点的线性简单的模型结果
=石灰(___“QueryPoint”,查询点
“NumImportantPredictors”,numImportantPredictors
)查询点
. 您可以指定查询点
和numImportantPredictors
除了前面语法中的任何输入参数组合之外。
使用一个或多个名称-值对参数指定其他选项。例如,结果
=石灰(___那名称,价值
)“SimpleModelType”、“树”
指定简单模型的类型为决策树模型。
黑盒子
-需要解释的机器学习模型要解释的机器学习模型,指定为函数句柄或完整或紧凑的回归或分类模型对象。
函数句柄——可以指定一个函数句柄,该函数句柄接受预测器数据,并为预测器数据中的每个观测返回一个预测。您必须提供预测数据使用X
或customSyntheticData
并指定“类型”
名称值对参数。
完整或紧凑的模型对象-可以指定完整或紧凑的回归或分类模型对象,该对象具有预测
对象功能。该软件使用预测
函数来计算查询点的预测和合成预测器数据集。
回归模型对象
金宝app支持模型 | 全部或紧凑型回归模型对象 |
---|---|
回归模型集合 | 回归套 那RegressionBaggedEnsemble 那CompactRegressionEnsemble |
高斯核回归模型采用随机特征展开 | 回归科内尔 |
高斯过程回归 | 回归方程 那CompactRegressionGP |
线性回归用于高维数据 | RegressionLinear |
回归树 | RegressionTree 那Compactregressiontree. |
金宝app支持向量机回归 | RegressionSVM 那CompactRegressionSVM |
分类模型对象
金宝app支持模型 | 完整或紧凑分类模型对象 |
---|---|
判别分析分类 | ClassificationDiscriminant 那CompactClassificationDiscriminant |
支持向量机或其他分类器的多类模型金宝app | 分类 那紧凑分类 |
乐团为学习者分类 | ClassificationEnsemble 那CompactClassificationEnsemble 那ClassificationBaggedEnsemble |
基于随机特征展开的高斯核分类模型 | ClassificationKernel |
K.最近的邻居分类器 | ClassificationKNN |
线性分类模型 | ClassificationLinear |
多类朴素贝叶斯模型 | ClassificationNaiveBayes 那CompactClassificationNaiveBayes |
金宝app支持向量机分类为一类和二元分类 | ClassificationSVM 那CompactClassificationSVM |
用于多类分类的二叉决策树 | 分类树 那CompactClassificationTree |
如果指定了一个紧凑的模型对象,它不包含预测数据,则必须使用提供的预测数据X
或customSyntheticData
.
石灰
不支持使用稀疏矩阵金宝app训练的模型对象。训练模型时,使用完整的数值矩阵或表格作为预测数据,其中行对应于单个观测值。
X
-预测数据预测数据,指定为数字矩阵或表。每一排X
对应一个观察值,每一列对应一个变量。
X
必须与预测数据一致的培训黑盒子
,存储在一个blackbox.X
或黑盒变量
. 这个S.P.ecified value must not contain a response variable.
X
必须具有与预测变量相同的数据类型(例如,trainX
)训练有素黑盒子
. 这个variables that make up the columns ofX
必须有相同的数字和顺序trainX
.
如果你训练黑盒子
然后使用数字矩阵X
必须是一个数值矩阵。
如果你训练黑盒子
那就用表格吧X
必须是一个表。所有的预测变量中X
必须具有与中相同的变量名和数据类型trainX
.
石灰
不支持稀疏矩阵。金宝app
如果黑盒子
是一个紧凑的机器学习模型对象或功能手柄,您必须提供X
或customSyntheticData
.如果黑盒子
是一个完整的机器学习模型对象,并指定此参数,然后石灰
不使用中的预测数据黑盒子
.它只使用指定的预测器数据。
数据类型:单
|双倍的
customSyntheticData
-预先生成的,定制合成的预测数据集[]
(默认)|数字矩阵|桌子预先生成的、自定义的合成预测器数据集,指定为数字矩阵或表。
如果提供预生成的数据集,则石灰
使用提供的数据集而不是生成新的合成预测器数据集。
customSyntheticData
必须与预测数据一致的培训黑盒子
,存储在一个blackbox.X
或黑盒变量
. 这个S.P.ecified value must not contain a response variable.
customSyntheticData
必须具有与预测变量相同的数据类型(例如,trainX
)训练有素黑盒子
. 这个variables that make up the columns ofcustomSyntheticData
必须有相同的数字和顺序trainX
如果你训练黑盒子
然后使用数字矩阵customSyntheticData
必须是一个数值矩阵。
如果你训练黑盒子
那就用表格吧customSyntheticData
必须是一个表。所有的预测变量中customSyntheticData
必须具有与中相同的变量名和数据类型trainX
.
石灰
不支持稀疏矩阵。金宝app
如果黑盒子
是一个紧凑的机器学习模型对象或功能手柄,您必须提供X
或customSyntheticData
.如果黑盒子
是一个完整的机器学习模型对象,并指定此参数,然后石灰
不使用中的预测数据黑盒子
;它只使用指定的预测器数据。
数据类型:单
|双倍的
|桌子
查询点
-查询点查询点石灰
解释了预测,指定为数字值的行向量或单行表中。查询点
必须有相同的数据类型和列数X
那customSyntheticData
,或中的预测数据黑盒子
.
如果您指定numImportantPredictors
和查询点
,那么石灰
函数在创建模型时适用于简单模型石灰
对象。
例子:: blackbox.X (1)
指定查询点的预测数据的全部机器学习模型中的第一观察黑盒子
.
数据类型:单
|双倍的
|桌子
numImportantPredictors
-简单模型中使用的重要预测值的数量在简单模型中使用的重要预测数,指定为正整数标量值。
如果'simplemodeltype'
是“线性”
,那么软件选择的重要预测和配合所选择的预测器的线性模型指定的数量。
如果'simplemodeltype'
是'树'
,然后软件指定决策拆分(或分支节点)的最大数量作为重要预测器的数量,以便拟合的决策树最多使用指定数量的预测器。
如果您指定numImportantPredictors
和查询点
,那么石灰
函数在创建模型时适用于简单模型石灰
对象。
数据类型:单
|双倍的
指定可选的逗号分离对名称,价值
论据。的名字
是参数名和价值
为对应值。的名字
必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:名称1,值1,…,名称,值
.
石灰
(黑盒子
那'QueryPoint'
,Q,“NumImportantPredictors”
,n,'simpleModeltype','树')
将查询点指定为问:
,使用很简单模型的重要预测数N
和简单的模型决策树模型的类型。石灰
产生合成的预测数据集的样品,计算用于样本预测,以及适合用于使用至多预测的指定数目的查询点决策树模型。
'datalocality'
-用于数据生成的合成数据的局部性“全球”
(默认)|'当地的'
用于数据生成的合成数据的位置,指定为由逗号分隔的对组成'datalocality'
和“全球”
或'当地的'
.
“全球”
-软件使用整个预测器数据集估计分布参数(X
或者是预测数据黑盒子
).该软件利用估计的参数生成一个综合预测数据集,并使用该数据集对任何查询点进行简单的模型拟合。
'当地的'
- 软件估计使用分布参数K.-查询点的最近邻,其中K.是“NumNeighbors”
价值。该软件在每次适合指定查询点时都会生成新的合成预测器数据集。
有关更多详细信息,请参阅石灰.
例子:“数据位置”,“本地”
数据类型:字符
|细绳
“NumNeighbors”
-查询点的邻居数查询点的邻居数,由逗号分隔的对组成“NumNeighbors”
和一个正整数标量值。此参数仅在以下情况下有效'datalocality'
是'当地的'
.
如果指定的值大于预测器数据集中的观察数(X
或者是预测数据黑盒子
), 然后石灰
使用所有观察结果。
例子:“NumNeighbors”,2000年
数据类型:单
|双倍的
'NumSyntheticData'
-样本数,以产生合成数据集为合成数据集生成的样本数,指定为逗号分隔对,由'NumSyntheticData'
和一个正整数标量值。此参数仅在以下情况下有效'datalocality'
是'当地的'
.
例子:'NumSyntheticData',2500
数据类型:单
|双倍的
'KernelWidth'
-粒宽平方指数(或高斯)核函数的核宽度,指定为逗号分隔对组成'KernelWidth'
和一个数值标量值。
这石灰
函数计算查询点与合成预测数据集中样本之间的距离,然后使用平方指数核函数将距离转换为权值。如果你降低'KernelWidth'
值,则石灰
使用了更侧重于查询点附近的样本权重。有关详细信息,请参阅石灰.
例子:'KernelWidth',0.5
数据类型:单
|双倍的
'simplemodeltype'
-简单的模型的类型“线性”
(默认)|'树'
简单模型的类型,指定为逗号分隔的对组成'simplemodeltype'
和“线性”
或'树'
.
“线性”
- 该软件通过使用适合的线性模型菲特利恩
回归或者FitClinear.
进行分类。
例子:“SimpleModelType”、“树”
数据类型:字符
|细绳
'pationoricalpricictors'
-分类预测因子表“全部”
分类预测器列表,指定为逗号分隔对,由'pationoricalpricictors'
和此表中的一个值。
价值 | 描述 |
---|---|
正整数的向量 | 向量中的每个条目是与包含分类变量的预测数据列对应的索引值。 |
逻辑向量 | 一种真正的 输入意味着预测数据的对应列是一个分类变量。 |
字符矩阵 | 矩阵的每一行是预测器变量的名称。名称必须匹配表格中的预测器数据的变量名称。使用额外的空白填充名称,因此字符矩阵的每行具有相同的长度。 |
字符串阵列或字符向量的单元数组 | 数组中的每个元素都是预测变量的名称。这些名称必须以表格的形式与预测数据的变量名称相匹配。 |
“全部” |
所有的预测都是绝对的。 |
如果您指定黑盒子
作为函数句柄石灰
从预测数据中确定分类预测X
或customSyntheticData
.如果预测器数据在表中,石灰
假定一个变量是分类,如果它是一个逻辑向量,无序的分类矢量,字符数组,字符串数组,或字符向量的单元阵列。如果预测数据是矩阵,石灰
假设所有预测因子都是连续的。要将任何其他预测因子识别为分类预测器,请通过使用来指定它们'pationoricalpricictors'
名称值对参数。
如果您指定黑盒子
作为回归或分类模型对象石灰
通过使用CategoricalPredictors
属性。
石灰
不支持有序分类预测金宝app。
例子:“CategoricalPredictors”、“所有”
数据类型:单
|双倍的
|逻辑
|字符
|细绳
|细胞
“类型”
-机器学习模型的类型'回归
|'分类'
键入机器学习模型的,指定为逗号分隔的一对组成的“类型”
和'回归
或'分类'
.
当你指定你必须指定此参数黑盒子
作为函数句柄。如果您指定黑盒子
作为回归或分类模型对象石灰
确定“类型”
值取决于模型类型。
例子:“类型”,“分类”
数据类型:字符
|细绳
“距离”
-距离度量距离度量,指定为逗号分隔对,由“距离”
以及字符向量、字符串标量或函数句柄。
如果预测数据仅包括连续变量,则石灰
金宝app支持这些距离度量。
价值 | 描述 |
---|---|
“欧几里得” |
欧氏距离。 |
“seuclidean” |
标准化的欧几里德距离。观测值之间的每个坐标差是由标准偏差的对应元件除以缩放, |
“马氏 |
使用样本协方差的Mahalanobis距离 |
'城市街区' |
城市街区的距离。 |
“明可夫斯基” |
闵可夫斯基距离。默认指数是2。要指定不同的指数,请使用 |
“切比切夫” |
Chebychev距离(最大坐标差异)。 |
的余弦 |
1减去点之间夹角的余弦值(作为向量)。 |
“相关性” |
一减去点之间的样本相关性(作为值的序列处理)。 |
“矛曼” |
1减去观察值之间的样本斯皮尔曼等级相关性(作为值的序列处理)。 |
@ |
自定义距离函数句柄。距离函数的形式为 功能D2 = distfun(ZI,ZJ)%距离计算......
如果数据不是稀疏的,通常可以使用内置距离度量而不是函数句柄更快地计算距离。 |
如果预测数据包括连续变量和分类变量,然后石灰
金宝app支持这些距离度量。
价值 | 描述 |
---|---|
“goodall3” |
改性古德尔距离 |
海底钻井的 |
发生频率距离 |
定义,请参阅距离度量.
默认值是“欧几里得”
如果预测数据只包含连续变量,或“goodall3”
如果预测数据包括连续变量和分类变量。
例子:“距离”、“海底钻井的
数据类型:字符
|细绳
|function_handle.
“冠状病毒”
-为马氏距离度量的协方差矩阵协方差矩阵的马哈拉诺比斯距离度量,指定为逗号分隔的一对组成的“冠状病毒”
A.K.——- - - - - -K.正定矩阵,其中K.是预测值的数量。
此参数仅当“距离”
是“马氏
.
默认值“冠状病毒”
价值是COV(PD,'omitrows')
, 在哪里PD.
是预测数据或合成预测数据。如果您没有指定“冠状病毒”
值,然后该软件在计算预测器数据和合成预测器数据的距离时使用不同的协方差矩阵。
例子:“浸”,眼睛(3)
数据类型:单
|双倍的
“P”
-指数为闵可夫斯基距离度量2
(默认)|正标量'规模'
-尺度参数值的标准欧几里得距离度量对于标准化欧几里德距离度量,指定为逗号分隔的一对组成的比例参数值'规模'
和一个长度的非负数字矢量K., 在哪里K.是预测值的数量。
此参数仅当“距离”
是“seuclidean”
.
默认值'规模'
价值是STD(PD, 'omitnan')
, 在哪里PD.
是预测数据或合成预测数据。如果您没有指定'规模'
值,然后软件在计算预测器数据和合成预测器数据的距离时使用不同的比例参数。
例子:'Scale',Smianile(x,0.75) - smartile(x,0.25)
数据类型:单
|双倍的
在创建对象时,可以指定以下属性石灰
对象。
BlackboxModel
-需要解释的机器学习模型CategoricalPredictors
-分类预测指标[]
此属性是只读的。
分类预测指标,指定为一个正整数向量。CategoricalPredictors
包含与包含分类预测器的预测器数据列对应的索引值。如果没有任何预测器是绝对的,则此属性为空([]
).
如果您指定黑盒子
使用函数句柄,然后石灰
从预测数据中确定分类预测X
或customSyntheticData
.如果您指定了'pationoricalpricictors'
名称 - 值对参数,则参数设置该属性。
如果您指定黑盒子
作为回归或分类模型对象石灰
通过使用CategoricalPredictors
属性。
石灰
不支持有序分类预测金宝app。
如果'simplemodeltype'
是“线性”
(默认)石灰
创建针对每个识别分类预测虚拟变量。石灰
将指定查询点的类别视为引用组,并创建一个比类别数少的虚拟变量。有关详细信息,请参阅带参考组的虚拟变量.
数据类型:单
|双倍的
DataLocality
-用于数据生成的合成数据的局部性“全球”
|'当地的'
NumImportantPredictors
-简单模型中使用的重要预测值的数量此属性是只读的。
简单模型中使用的重要预测因子数量(SimpleModel
),指定为正整数标量值。
这numImportantPredictors
的观点石灰
或者是numImportantPredictors
的观点适合
设置此属性。
数据类型:单
|双倍的
numsyntheticdata.
-合成数据集中的样本数此属性是只读的。
合成数据集中的样本数,指定为正整数标量值。
如果您指定customSyntheticData
,则自定义合成数据集中的样本数将设置此属性。
否则,'NumSyntheticData'
的名称-值对参数石灰
或者是'NumSyntheticData'
的名称-值对参数适合
设置此属性。
数据类型:单
|双倍的
QueryPoint
-查询点类型
-机器学习模型的类型'回归
|'分类'
此属性是只读的。
机器学习模型的类型(BlackboxModel
),指定为'回归
或'分类'
.
X
-预测数据此属性是只读的。
预测数据,指定为数字矩阵或表。
每一排X
对应一个观察值,每一列对应一个变量。
如果您指定了X
参数,则参数设置该属性。
如果您指定了customSyntheticData
参数,则此属性为空。
如果您指定黑盒子
作为完整机器学习模型对象,并未指定X
或customSyntheticData
,然后该属性值是用于训练的预测数据黑盒子
.
数据类型:单
|双倍的
|桌子
该软件计算下列属性。
黑匣子
-预测查询点通过机器学习模型计算合身
-预测用于通过机器学习模型计算的合成预测数据ImportantPredictors
-重要的预测指标SimpleModel
-简单的模型RegressionLinear
模型对象|RegressionTree
模型对象|ClassificationLinear
模型对象|分类树
模型对象此属性是只读的。
简单模型,指定为RegressionLinear
那RegressionTree
那ClassificationLinear
,或分类树
模型对象。石灰
根据机器学习模型的类型确定简单模型对象的类型(类型
)以及简单模型的类型('simplemodeltype'
).
简单模型
-简单模型计算的查询点预测此属性是只读的。
简单模型计算的查询点的预测(SimpleModel
),指定为标量。
如果SimpleModel
是ClassificationLinear
,那么简单模型
值为1或-1。
数据类型:单
|双倍的
|绝对的
|逻辑
|字符
|细绳
|细胞
SyntheticData
-综合预测数据此属性是只读的。
合成预测器数据,指定为数字矩阵或表。
如果您指定了customSyntheticData
输入参数,然后该参数设置此属性。
否则,石灰
来自预测数据估计分布参数X
并产生一个合成的预测数据集。
数据类型:单
|双倍的
|桌子
培训分类模型并创建石灰
使用决策树简单模型的对象。当你创造一个石灰
对象,指定查询点和重要预测器的数量,以便软件生成合成数据集的样本,并为具有重要预测器的查询点拟合一个简单模型。然后利用目标函数在简单模型中显示估计的预测量的重要性情节
.
加载CreditRating_Historical
数据集。该数据集包含客户ID及其财务比率、行业标签和信用评级。
台= readtable ('信用_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和评级列来创建一个预测器变量表tbl
.
tblx = removevars(tbl,[“ID”那“评级”]);
通过使用培训Blackbox模型的信用评级模型fitcecoc.
函数。
黑箱= fitcecoc (tblX,资源描述。评级,'pationoricalpricictors'那“行业”);
创建一个石灰
对象,该对象使用决策树简单模型解释最后一次观察的预测。具体说明“NumImportantPredictors”
至于最多6个重要预测因子。如果您指定了'QueryPoint'
和“NumImportantPredictors”
当您创建石灰
对象,然后软件生成一个合成数据集的样本,并将一个简单的可解释模型适合于该合成数据集。你的结果可能与由于随机性所示的变化石灰
.您可以设置一个随机种子使用RNG.
用于再现性。
queryPoint=tblX(结束:)
查询点=1×6表WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业 _____ _____ _______ ________ ____ ________ 0.239 0.463 0.065 2.924 0.34 - 2
结果=石灰(黑盒,'QueryPoint'queryPoint,“NumImportantPredictors”6......'pationoricalpricictors'那“行业”那'simplemodeltype'那'树')
结果=石灰与属性:BlackboxModel:[1×1 ClassificationECOC] DataLocality: '全局' CategoricalPredictors:6类型: '分类' X:[3932×6表] QueryPoint:[1×6表] NumImportantPredictors:6个NumSyntheticData:5000 SyntheticData:[5000×6表]合身:{5000×1细胞} SimpleModel:[1×1 ClassificationTree] ImportantPredictors:[2 4] BlackboxFitted:{ 'AA'} SimpleModelFitted:{ 'AA'}
绘制石灰
目的结果
通过使用目标函数情节
.要显示任何预测名称的现有下划线,改变ticklabelinterpreter.
轴到的值'没有任何'
.
f =情节(结果);f.CurrentAxes.TickLabelInterpreter ='没有任何';
绘图显示查询点的两个预测,它们对应于黑匣子财产和简单模型性质结果
.
水平条形图显示排序的预测值重要性值。石灰
查找财务比率变量息税前利润
和WC_TA
作为查询点的重要预测器。
您可以通过使用数据提示或栏属性. 例如,您可以找到酒吧
通过使用对象findobj
函数,并在栏的末端添加标签文本
函数。
B = findobj(F,“类型”那'酒吧');文本(b.YEndPoints + 0.001,b.XEndPoints,串(b.YData))
或者,您可以使用预测器变量名在表中显示系数值。
小鬼= b.YData;flipud (array2table(小鬼”,......“RowNames”f.CurrentAxes.YTickLabel,'VariableNames', {“预测的重要性”})))
ans =.2×1表预测的重要性 ____________________ MVE_BVTD 0.088695 RE_TA 0.0018228
训练回归模型并创建石灰
对象,该对象使用线性简单模型。当你创造一个石灰
对象,如果不指定查询点和重要的预测数,则该软件生成的合成数据集的样本,但是不符合一个简单的模型。使用对象功能适合
以适应查询点的简单模型。然后用目标函数显示拟合的线性简单模型的系数情节
.
加载carbig
数据集,其中包含在上世纪70年代和80年代初制造的汽车的测量..
负载carbig
创建一个包含预测变量的表加速
那气瓶
,等等,以及响应变量MPG.
.
TBL =表(加速度,缸,排气量,马力,Model_Year,体重,MPG);
在训练组中删除丢失的值可以帮助减少内存消耗和加快培训菲特克内尔
函数。删除tbl
.
台= rmmissing(台);
通过删除响应变量来创建预测变量表tbl
.
tblX = removevars(资源描述,'mpg');
列车的黑匣子模型MPG.
通过使用菲特克内尔
功能,并创建一个石灰
对象。指定一个预测器数据集,因为mdl
不包含预测数据。你的结果可能与由于随机性所示的变化菲特克内尔
和石灰
.您可以设置一个随机种子使用RNG.
用于再现性。
mdl = fitrkernel (tblX,资源描述。英里/加仑,'pationoricalpricictors'[2 - 5]);结果=石灰(mdl tblX,'pationoricalpricictors',[2 5])
结果=石灰与属性:BlackboxModel:[1×1 RegressionKernel] DataLocality:“全球”CategoricalPredictors:[2 5]类型:“回归”X:[392×6表]QueryPoint: [] NumImportantPredictors: [] NumSyntheticData: 5000 SyntheticData:[5000×6表]安装:[5000×1双]SimpleModel: [] ImportantPredictors: [] BlackboxFitted:[] SimpleModelFitted: []
结果
包含生成的合成数据集。这SimpleModel
属性为空([]
).
为第一次观测拟合线性简单模型tblx.
.指定要查找的重要预测器的数量为3。
queryPoint = tblX(1,:)
查询点=1×6表加速度油缸位移马力Model_Year重量____________ _________ ____________ __________ __________ ______ 12 8 307 130 70 3504
结果=拟合(结果,queryPoint,3);
绘制石灰
目的结果
通过使用目标函数情节
.要显示任何预测名称的现有下划线,改变ticklabelinterpreter.
轴到的值'没有任何'
.
f =情节(结果);f.CurrentAxes.TickLabelInterpreter ='没有任何';
绘图显示查询点的两个预测,它们对应于黑匣子财产和简单模型性质结果
.
水平条形图显示简单模型的系数值,按其绝对值排序。石灰发现马力
那Model_Year
,气瓶
作为查询点的重要预测器。
培训分类模型并创建石灰
使用决策树简单模型的对象。适合多个查询点的多种型号。
加载CreditRating_Historical
数据集。该数据集包含客户ID及其财务比率、行业标签和信用评级。
台= readtable ('信用_historical.dat');
通过删除客户id和评级列来创建一个预测器变量表tbl
.
tblx = removevars(tbl,[“ID”那“评级”]);
通过使用培训Blackbox模型的信用评级模型fitcecoc.
函数。
黑箱= fitcecoc (tblX,资源描述。评级,'pationoricalpricictors'那“行业”)
blackbox = ClassificationECOC PredictorNames: {'WC_TA' 'RE_TA' 'EBIT_TA' 'MVE_BVTD' 'S_TA' 'Industry'} ResponseName: 'Y' CategoricalPredictors: 6 ClassNames: {'A' ' 'AA' ' 'AAA' ' 'B' ' 'BB' 'BBB' ' 'CCC'} ScoreTransform: 'none' BinaryLearners: {21×1 cell} CodingName: 'onevsone'属性,方法
创建一个石灰
对象的黑盒子
模型由于数据的随机性,您的结果可能与显示的结果不同石灰
.您可以设置一个随机种子使用RNG.
用于再现性。
结果=石灰(黑盒,'pationoricalpricictors'那“行业”);
发现两个查询点,其真实的评价值AAA
和B.
, 分别。
queryPoint(1,:) = tblX(FIND(STRCMP(tbl.Rating,“AAA”), 1):);queryPoint (2) = tblX(找到(strcmp(资源描述。评级,'B'), 1),:)
查询点=2×6表WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业_____ _____ _______ ________ _____ ________ 0.121 0.413 0.057 3.647 0.466 0.019 12 0.009 0.042 0.257 0.119 1
适合第一个查询点的线性简单模型。将重要预测因子的数量设置为4。
newresults1 =适合(结果,queryPoint (1:), 4);
绘制LIME结果图新结果1
第一个查询点。要显示任何预测名称的现有下划线,改变ticklabelinterpreter.
轴到的值'没有任何'
.
f1 =情节(newresults1);f1.CurrentAxes。TickLabelInterpreter ='没有任何';
适用于第一个查询点的线性决策树模型。
newresults2 =适合(结果,queryPoint(1:), 6日'simplemodeltype'那'树');f2 =情节(newresults2);f2.CurrentAxes。TickLabelInterpreter ='没有任何';
简单的模型新结果1
和新结果2
既找到MVE_BVTD
和RE_TA
作为重要的预测因子。
适用于第二个查询点的线性简单模型,并对第二个查询点绘制石灰结果。
newresults3=拟合(结果,查询点(2,:),4);f3=绘图(新结果3);f3.CurrentAxes.TickLabelInterpreter='没有任何';
来自黑盒子
模型是B.
,但简单模型的预测则不然B.
.当两个预测是不一样的,你可以指定一个较小的'KernelWidth'
价值。该软件使用更重要的权重拟合在查询点附近的样本上的权重。如果查询点是异常值或位于决策边界附近,那么即使指定小型,两个预测值也可以不同'KernelWidth'
价值。在这种情况下,您可以更改其他名称 - 值对的参数。例如,您可以生成本地合成数据集(指定'datalocality'
的石灰
作为'当地的'
)对于查询点并增加样本的数量('NumSyntheticData'
的石灰
或适合
)在合成数据集中。您还可以使用不同的距离度量(“距离”
的石灰
或适合
).
适合线性简单模型,小'KernelWidth'
价值。
newresults4 =适合(结果,queryPoint (2:), 4,'KernelWidth', 0.01);f4 =情节(newresults4);f4.CurrentAxes。TickLabelInterpreter ='没有任何';
第一个和第二个查询点的信用评级是AAA
和B.
, 分别。简单的模型新结果1
和新结果4
既找到MVE_BVTD
那RE_TA
,WC_TA
作为重要的预测因子。但是,它们的系数值是不同的。图表显示,这些预测者的行为因信用评级的不同而不同。
距离度量是定义两个观测值之间距离的函数。石灰
金宝app支持连续变量和连续和分类变量的混合的各种距离度量。
连续变量的距离度量
给予A.mx——- - - - - -N数据矩阵X,被视为mx(一)-N)行向量X1那X2,......,Xmx和一个我的——- - - - - -N数据矩阵y,被视为我的(一)-N)行向量y1那y2,......,y我的的矢量之间的各种距离XS.和yT.定义如下:
欧氏距离
欧几里得距离是闵可夫斯基距离的一种特例P.= 2.
标准化欧氏距离
在哪里V.是N——- - - - - -N对角线矩阵谁j第Th对角元素为(S.(j))2, 在哪里S.是每个维度的比例因子向量。
Mahalanobis距离
在哪里C是协方差矩阵。
城市街区距离
城市街区距离是Minkowski距离的特殊情况,在哪里P.= 1.
闵可夫斯基距离
对于特殊情况P.= 1,闵可夫斯基距离表示城市街区距离。对于特殊情况P.= 2,闵可夫斯基距离给出了欧几里得距离。对于特殊情况P.=∞,闵可夫斯基距离给出了切比切夫距离。
Chebychev距离
Chebychev距离是Minkowski距离的特例,其中P.=∞.
余弦距离
相关距离
在哪里
和
斯皮尔曼的距离
在哪里
连续变量和分类变量混合的距离度量
改性古德尔距离
这个距离是Goodall距离的一种变体,如果匹配的值不频繁,不管其他值的频率如何,都会分配一个小的距离。对于不匹配,预测器的距离贡献是1/(变量的数量)。
发生频率距离
对于匹配,出现频率距离指定为零距离。对于不匹配,出现频率距离在频率较低的值上分配较高的距离,在频率较高的值上分配较低的距离。
使用LIME解释机器学习模型的预测[1],该软件生成一个合成数据集,并通过使用该合成数据集拟合一个简单的可解释模型石灰
和适合
,在步骤1-5所描述的。
如果您指定了查询点
和numImportantPredictors
价值观石灰
,那么石灰
函数执行所有步骤。
如果您未指定查询点
和numImportantPredictors
并指定'datalocality'
作为“全球”
(默认),则石灰
函数生成一个合成数据集(步骤1-2),并且适合
功能适合一个简单的模型(步骤3-5)。
如果您未指定查询点
和numImportantPredictors
并指定'datalocality'
作为'当地的'
,那么适合
函数执行所有步骤。
这石灰
和适合
功能执行以下步骤:
生成合成预测数据集XS.对连续变量使用多元正态分布,对每个分类变量使用多项式分布。可以使用指定要生成的样本数'NumSyntheticData'
名称值对参数。
如果'datalocality'
是“全球”
(默认),然后软件从整个预测器数据集(X
或预测数据黑盒子
).
如果'datalocality'
是'当地的'
,那么软件估计使用分布参数K.查询点的最邻居,在哪里K.是“NumNeighbors”
价值。您可以指定距离度量标准,以通过使用距离指标来查找最近的邻居“距离”
名称值对参数。
当估计分布参数时,该软件忽略预测器数据集中的缺失值。
或者,您可以通过使用customSyntheticData
输入参数的石灰
.
计算预测yS.对于合成数据集XS.. 这个预测ions are predicted responses for regression or classified labels for classification. The software uses the预测
的函数黑盒子
模型来计算预测。如果您指定黑盒子
作为函数句柄,然后软件使用函数句柄计算预测。
计算距离D.查询点和由规定的使用距离度量在合成预测数据集的样本之间“距离”
.
计算权重值W.问:关于查询点的合成预测数据集中的样本数问:采用平方指数(或高斯)内核函数
XS.是否在合成预测数据集中有一个样本XS..
D.(XS.那问:)样品之间的距离是多少XS.和查询点问:.
P.是预测的在数XS..
σ是内核宽度,您可以通过使用指定'KernelWidth'
名称值对参数。默认值'KernelWidth'
该值为0.75。
查询点的权值为1,然后随着距离值的增加,权值收敛为0。这'KernelWidth'
值控制权重值收敛到零的速度。越低'KernelWidth'
值越大,权值收敛到零的速度越快。因此,该算法赋予了查询点附近的样本更大的权重。由于该算法使用了这样的权重值,所选择的重要预测因子和拟合的简单模型有效地解释了查询点附近的局部合成数据的预测。
适合一个简单的模型。
如果'simplemodeltype'
是“线性”
(默认),然后软件选择重要预测值并拟合所选重要预测值的线性模型。
选择N重要的预测因子(
)通过使用该组正交匹配追踪(OMP)算法[2][3], 在哪里N是numImportantPredictors
价值。该算法利用合成预测数据集(XS.),预测(yS.)和权重值(W.问:).
拟合所选重要预测值的线性模型(
)与预测相符(yS.),使用权重值(W.问:).软件使用菲特利恩
回归或者FitClinear.
进行分类。对于多种多组模型,该软件使用一个与所有方案来构造二进制分类问题。正类是从中查询点的预测类黑盒子
模型,负类指的是其他类。
如果'simplemodeltype'
是'树'
然后,软件使用fitrtree
回归或者fitctree
用于分类。软件将决策拆分(或分支节点)的最大数量指定为重要预测器的数量,以便拟合的决策树最多使用指定数量的预测器。
[1] Ribeiro,Marco Tulio,S. Singh和C.宾馆。“”我为什么要相信你?':解释任何分类器的预测。“第22届ACM SIGKDD国际知识发现与数据挖掘会议论文集1135-44。旧金山加利福尼亚州美国:ACM,2016。
[2]świrszcz,grzegorz,naoki abe和auréliec. lozano。“分组正交匹配追求变量选择和预测。”神经信息处理系统研究进展(2009年):1150年至1158年。
[3] Lozano Aurélie C., Grzegorz Świrszcz,和Naoki Abe。逻辑回归的组正交匹配追踪。第十四届国际会议人工智能和统计程序(2011):452-60。
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。