石灰
局部可解释模型不可知解释(LIME)
描述
石灰通过找到重要的预测因子并拟合一个简单的可解释模型,解释机器学习模型(分类或回归)对查询点的预测。
您可以创建石灰
具有指定查询点(queryPoint
)和指定数目的重要预测因子(numImportantPredictors
).该软件生成一个合成数据集,并拟合一个简单的可解释的重要预测器模型,该模型有效地解释了围绕查询点的合成数据的预测。简单模型可以是线性模型(默认值)或决策树模型。
使用拟合的简单模型来解释机器学习模型在指定查询点的局部预测。使用情节
函数来可视化LIME结果。根据局部解释,您可以决定是否信任机器学习模型。
方法为另一个查询点拟合一个新的简单模型适合
函数。
创建
语法
描述
创建一个结果
=石灰(黑箱
“CustomSyntheticData”,customSyntheticData
)石灰
对象使用预先生成的自定义合成预测器数据集customSyntheticData
.的石灰
函数计算样本的预测值customSyntheticData
.
还可以找到指定数量的重要预测因子,并为查询点拟合一个简单的线性模型结果
=石灰(___“QueryPoint”,queryPoint
“NumImportantPredictors”,numImportantPredictors
)queryPoint
.你可以指定queryPoint
而且numImportantPredictors
除了前面语法中的任何输入参数组合之外。
输入参数
黑箱
- - - - - -待解释的机器学习模型
回归模型对象|分类模型对象|函数处理
要解释的机器学习模型,指定为完整或紧凑的回归或分类模型对象或函数句柄。
完整或紧凑模型对象——您可以指定完整或紧凑的回归或分类模型对象,该对象具有
预测
对象的功能。该软件使用预测
函数计算查询点和合成预测器数据集的预测。如果指定的模型对象不包含预测器数据(例如,紧凑模型),则必须使用
X
或customSyntheticData
.石灰
不支持用稀疏矩阵训万博1manbetx练的模型对象。在训练模型时,对预测器数据使用完整的数值矩阵或表格,其中行对应于单个观测值。
回归模型对象
万博1manbetx支持模型 完整或紧凑回归模型对象 回归模型的集合 RegressionEnsemble
,RegressionBaggedEnsemble
,CompactRegressionEnsemble
采用随机特征展开的高斯核回归模型 RegressionKernel
高斯过程回归 RegressionGP
,CompactRegressionGP
广义加性模型 RegressionGAM
,CompactRegressionGAM
高维数据的线性回归 RegressionLinear
神经网络回归模型 RegressionNeuralNetwork
,CompactRegressionNeuralNetwork
回归树 RegressionTree
,CompactRegressionTree
万博1manbetx支持向量机回归 RegressionSVM
,CompactRegressionSVM
分类模型对象
万博1manbetx支持模型 完整或紧凑分类模型对象 用于多类分类的二叉决策树 ClassificationTree
,CompactClassificationTree
判别分析分类器 ClassificationDiscriminant
,CompactClassificationDiscriminant
分类的学习器集合 ClassificationEnsemble
,CompactClassificationEnsemble
,ClassificationBaggedEnsemble
采用随机特征展开的高斯核分类模型 ClassificationKernel
广义加性模型 ClassificationGAM
,CompactClassificationGAM
k-最近邻模型 ClassificationKNN
线性分类模型 ClassificationLinear
支持向量机或其他分类器的多类模型万博1manbetx ClassificationECOC
,CompactClassificationECOC
朴素贝叶斯模型 ClassificationNaiveBayes
,CompactClassificationNaiveBayes
神经网络分类器 ClassificationNeuralNetwork
,CompactClassificationNeuralNetwork
万博1manbetx二元分类的支持向量机 ClassificationSVM
,CompactClassificationSVM
函数句柄——可以指定一个函数句柄,它接受预测器数据,并返回一个列向量,其中包含预测器数据中每个观测值的预测。预测是回归的预测响应或分类的分类标签。你必须提供预测数据使用
X
或customSyntheticData
并指定“类型”
名称-值参数。
X
- - - - - -预测数据
数字矩阵|表格
预测器数据,指定为数字矩阵或表格。每行X
对应一个观察结果,每一列对应一个变量。
X
必须与训练的预测器数据一致黑箱
,储存在黑箱。X
.指定的值不能包含响应变量。
X
必须具有与预测变量相同的数据类型(例如,trainX
)黑箱
.组成列的变量X
必须有相同的数字和顺序trainX
.如果你训练
黑箱
那么,使用一个数字矩阵X
一定是数值矩阵。如果你训练
黑箱
那么,使用表格X
一定是一张桌子。所有预测变量X
必须具有与中的相同的变量名和数据类型trainX
.
石灰
不支持稀疏矩阵。万博1manbetx
如果黑箱
是否必须提供不包含预测器数据或函数句柄的模型对象X
或customSyntheticData
.如果黑箱
是一个完整的机器学习模型对象,你指定这个参数,那么石灰
不使用预测数据在黑箱
.它只使用指定的预测器数据。
数据类型:单
|双
|表格
customSyntheticData
- - - - - -预生成,自定义合成预测数据集
[]
(默认)|数字矩阵|表格
预先生成的,自定义合成预测数据集,指定为数字矩阵或表格。
如果您提供预先生成的数据集,那么石灰
使用提供的数据集,而不是生成新的合成预测器数据集。
customSyntheticData
必须与训练的预测器数据一致黑箱
,储存在黑箱。X
.指定的值不能包含响应变量。
customSyntheticData
必须具有与预测变量相同的数据类型(例如,trainX
)黑箱
.组成列的变量customSyntheticData
必须有相同的数字和顺序trainX
如果你训练
黑箱
那么,使用一个数字矩阵customSyntheticData
一定是数值矩阵。如果你训练
黑箱
那么,使用表格customSyntheticData
一定是一张桌子。所有预测变量customSyntheticData
必须具有与中的相同的变量名和数据类型trainX
.
石灰
不支持稀疏矩阵。万博1manbetx
如果黑箱
是否必须提供不包含预测器数据或函数句柄的模型对象X
或customSyntheticData
.如果黑箱
是一个完整的机器学习模型对象,你指定这个参数,那么石灰
不使用预测数据在黑箱
;它只使用指定的预测器数据。
数据类型:单
|双
|表格
queryPoint
- - - - - -查询点
数值的行向量|单列表
所在的查询点石灰
解释指定为数值的行向量或单行表的预测。queryPoint
必须具有相同的数据类型和列数X
,customSyntheticData
,或中的预测器数据黑箱
.
如果你指定numImportantPredictors
而且queryPoint
,则石灰
函数在创建石灰
对象。
queryPoint
不能包含缺失值。
例子:: blackbox.X (1)
将查询点指定为完整机器学习模型中预测器数据的第一个观察点黑箱
.
数据类型:单
|双
|表格
numImportantPredictors
- - - - - -在简单模型中使用的重要预测因子的数量
正整数标量值
在简单模型中使用的重要预测器的数量,指定为正整数标量值。
如果
“SimpleModelType”
是“线性”
(默认值),然后软件选择指定数量的重要预测因子,并拟合所选预测因子的线性模型。如果
“SimpleModelType”
是“树”
,然后软件指定最大决策分裂数(或分支节点)作为重要预测因子的数量,使拟合的决策树最多使用指定数量的预测因子。
如果你指定numImportantPredictors
而且queryPoint
,则石灰
函数在创建石灰
对象。
数据类型:单
|双
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:
指定查询点为石灰
(黑箱
,“QueryPoint”
问,“NumImportantPredictors”
n“SimpleModelType”,“树”)问
,用于简单模型的重要预测因子的数量为n
,并将类型简单的模型作为决策树模型。石灰
生成合成预测器数据集的样本,计算样本的预测,并使用最多指定数量的预测器为查询点拟合决策树模型。
DataLocality
- - - - - -用于生成数据的合成数据的局部性
“全球”
(默认)|“本地”
用于生成数据的合成数据的局部性,指定为逗号分隔的对,由“DataLocality”
而且“全球”
或“本地”
.
“全球”
-该软件使用整个预测器数据集估计分布参数(X
或者预测数据黑箱
).该软件生成一个具有估计参数的合成预测数据集,并使用该数据集对任何查询点进行简单的模型拟合。“本地”
-该软件估计分布参数使用k-查询点的最近邻居,其中k是“NumNeighbors”
价值。该软件每次为指定的查询点拟合一个简单模型时,都会生成一个新的合成预测数据集。
详情请参见石灰.
例子:“DataLocality”,“当地”
数据类型:字符
|字符串
NumNeighbors
- - - - - -查询点的邻居个数
1500(默认)|正整数标量值
查询点的邻居数,指定为逗号分隔的对,由“NumNeighbors”
和一个正整数标量值。此论点仅当“DataLocality”
是“本地”
.
如果指定的值大于预测器数据集中的观察数(X
或者预测数据黑箱
),然后石灰
使用所有的观察结果。
例子:“NumNeighbors”,2000年
数据类型:单
|双
NumSyntheticData
- - - - - -为合成数据集生成的样本数量
5000(默认)|正整数标量值
为合成数据集生成的样本数目,指定为逗号分隔的对,由“NumSyntheticData”
和一个正整数标量值。
例子:“NumSyntheticData”,2500年
数据类型:单
|双
KernelWidth
- - - - - -内核宽度
0.75(默认)|数值标量值
平方指数(或高斯)核函数的核宽,指定为由逗号分隔的对组成“KernelWidth”
和一个数值标量值。
的石灰
函数计算查询点与合成预测器数据集中样本之间的距离,然后使用平方指数核函数将距离转换为权重。如果你降低“KernelWidth”
值,然后石灰
使用更侧重于查询点附近样本的权重。详细信息请参见石灰.
例子:“KernelWidth”,0.5
数据类型:单
|双
SimpleModelType
- - - - - -简单模型类型
“线性”
(默认)|“树”
简单模型的类型,指定为逗号分隔的对,由“SimpleModelType”
而且“线性”
或“树”
.
“线性”
-软件拟合线性模型fitrlinear
回归或fitclinear
的分类。
例子:“SimpleModelType”、“树”
数据类型:字符
|字符串
CategoricalPredictors
- - - - - -分类预测器列表
正整数向量|逻辑向量|字符矩阵|字符串数组|字符向量的单元格数组|“所有”
类别预测符列表,指定为逗号分隔的对,由“CategoricalPredictors”
这个表中的一个值。
价值 | 描述 |
---|---|
正整数向量 | 向量中的每个条目都是一个指标值,表明相应的预测器是分类的。索引值在1和之间 如果 |
逻辑向量 | 一个 |
字符矩阵 | 矩阵的每一行都是一个预测变量的名称。名称必须以表的形式与预测器数据的变量名称相匹配。用额外的空格填充名字,这样字符矩阵的每一行都有相同的长度。 |
字符向量的字符串数组或单元格数组 | 数组中的每个元素都是一个预测变量的名称。名称必须以表的形式与预测器数据的变量名称相匹配。 |
“所有” |
所有预测因素都是绝对的。 |
如果你指定
黑箱
作为函数句柄石灰
从预测器数据中识别分类预测器X
或customSyntheticData
.如果预测器数据在表格中,石灰
如果一个变量是逻辑向量、无序分类向量、字符数组、字符串数组或字符向量的单元格数组,则假定它是分类的。如果预测器数据是一个矩阵,石灰
假设所有预测因子都是连续的。如果你指定
黑箱
作为一个回归或分类模型对象,那么石灰
属性标识类别预测符CategoricalPredictors
模型对象的属性。
石灰
不支持有序分类预测万博1manbetx器。
例子:“CategoricalPredictors”、“所有”
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
类型
- - - - - -机器学习模型的类型
的回归
|“分类”
机器学习模型的类型,指定为逗号分隔的对,由“类型”
而且的回归
或“分类”
.
在指定时必须指定此参数黑箱
作为函数句柄。如果你指定黑箱
作为一个回归或分类模型对象,那么石灰
决定了“类型”
值,该值取决于模型类型。
例子:“类型”、“分类”
数据类型:字符
|字符串
距离
- - - - - -距离度量
特征向量|字符串标量|函数处理
距离度量,指定为逗号分隔的对,由“距离”
和字符向量、字符串标量或函数句柄。
如果预测器数据只包含连续变量,则
石灰
万博1manbetx支持这些距离度量。价值 描述 “欧几里得”
欧氏距离。
“seuclidean”
标准化欧氏距离。观测值之间的每个坐标差都通过除以相应的标准偏差元素来缩放,
S = std(PD,'omitnan')
,在那里PD
是预测数据还是合成预测数据。要指定不同的缩放,请使用“规模”
名称-值参数。“mahalanobis”
的样本协方差的马氏距离
PD
,C = cov(PD,'omitrows')
.若要更改协方差矩阵的值,请使用“浸”
名称-值参数。“cityblock”
城市街区距离。
闵可夫斯基的
闵可夫斯基距离。默认指数为2。要指定不同的指数,请使用
“P”
名称-值参数。“chebychev”
切比雪夫距离(最大坐标差)。
的余弦
1减去点间夹角的余弦(作为向量)。
“相关”
1减去点之间的样本相关性(作为值序列处理)。
“枪兵”
1减去观测值之间的样本斯皮尔曼秩相关(被视为值序列)。
@
distfun
自定义距离函数句柄。距离函数有这样的形式
函数D2 = distfun(ZI,ZJ)距离计算%...
子
是一个1
——- - - - - -t
包含单个观测值的向量。ZJ
是一个年代
——- - - - - -t
包含多个观测值的矩阵。distfun
必须接受一个矩阵ZJ
用任意数量的观测值。D2
是一个年代
——- - - - - -1
距离向量,和D2 (k)
观测值之间的距离是多少子
而且ZJ (k,:)
.
如果您的数据不是稀疏的,您通常可以通过使用内置的距离度量而不是函数句柄来更快地计算距离。
如果预测器数据包括连续变量和分类变量,则
石灰
万博1manbetx支持这些距离度量。价值 描述 “goodall3”
修正古道尔距离
海底钻井的
发生频率距离
有关定义,请参见距离度量.
默认值为“欧几里得”
如果预测器数据只包括连续变量,或“goodall3”
如果预测器数据包括连续变量和分类变量。
例子:“距离”、“海底钻井的
数据类型:字符
|字符串
|function_handle
浸
- - - - - -马氏距离度量的协方差矩阵
正定矩阵
马氏距离度量的协方差矩阵,指定为逗号分隔的对,由“浸”
和一个K——- - - - - -K正定矩阵,其中K是预测因子的数量。
这个论点只有在以下情况下才成立“距离”
是“mahalanobis”
.
默认的“浸”
值是浸(PD omitrows)
,在那里PD
是预测数据还是合成预测数据。如果没有指定“浸”
值,然后软件在计算预测数据和合成预测数据的距离时使用不同的协方差矩阵。
例子:“浸”,眼睛(3)
数据类型:单
|双
P
- - - - - -闵可夫斯基距离度量的指数
2
(默认)|积极的标量
规模
- - - - - -标准化欧几里得距离度量的尺度参数值
非负数值向量
标准欧几里得距离度量的刻度参数值,指定为逗号分隔的对,由“规模”
和一个非负的长度向量K,在那里K是预测因子的数量。
这个论点只有在以下情况下才成立“距离”
是“seuclidean”
.
默认的“规模”
值是性病(PD omitnan)
,在那里PD
是预测数据还是合成预测数据。如果没有指定“规模”
值,则软件在计算预测数据和合成预测数据的距离时使用不同的尺度参数。
例子:'Scale',分位数(X,0.75) -分位数(X,0.25)
数据类型:单
|双
属性
指定的属性
属性时,可以指定以下属性石灰
对象。
BlackboxModel
- - - - - -待解释的机器学习模型
回归模型对象|分类模型对象|函数处理
CategoricalPredictors
- - - - - -分类预测指标
正整数向量|[]
此属性是只读的。
分类预测指标,指定为正整数向量。CategoricalPredictors
包含指示相应预测符是分类的索引值。索引值在1和之间p
,在那里p
用于训练模型的预测器的数量。如果没有一个预测符是分类的,则此属性为空([]
).
如果你指定
黑箱
那么,使用函数句柄石灰
从预测器数据中识别分类预测器X
或customSyntheticData
.如果您指定“CategoricalPredictors”
参数,则参数设置此属性。如果你指定
黑箱
作为一个回归或分类模型对象,那么石灰
属性确定此属性CategoricalPredictors
模型对象的属性。
石灰
不支持有序分类预测万博1manbetx器。
如果“SimpleModelType”
是“线性”
(默认)石灰
为每个确定的分类预测器创建虚拟变量。石灰
将指定查询点的类别视为参考组,并创建比类别数量少一个的虚拟变量。详情请参见带参考组的虚拟变量.
数据类型:单
|双
DataLocality
- - - - - -用于生成数据的合成数据的局部性
“全球”
|“本地”
NumImportantPredictors
- - - - - -在简单模型中使用的重要预测因子的数量
正整数标量值
此属性是只读的。
在简单模型中使用的重要预测因子的数目(SimpleModel
),指定为正整数标量值。
的numImportantPredictors
的观点石灰
或者是numImportantPredictors
的观点适合
设置此属性。
数据类型:单
|双
NumSyntheticData
- - - - - -合成数据集中的样本数量
正整数标量值
此属性是只读的。
合成数据集中的样本数,指定为正整数标量值。
如果你指定
customSyntheticData
,则自定义合成数据集中的样本数量设置此属性。否则,
“NumSyntheticData”
的名称-值参数石灰
或者是“NumSyntheticData”
的名称-值参数适合
设置此属性。
数据类型:单
|双
QueryPoint
- - - - - -查询点
数值的行向量|单列表
此属性是只读的。
所在的查询点石灰
解释使用简单模型的预测(SimpleModel
),指定为数值或单行表的行向量。
的queryPoint
的观点石灰
或者是queryPoint
的观点适合
设置此属性。
数据类型:单
|双
|表格
类型
- - - - - -机器学习模型的类型
的回归
|“分类”
此属性是只读的。
机器学习模型的类型(BlackboxModel
),指定为的回归
或“分类”
.
X
- - - - - -预测数据
数字矩阵|表格
此属性是只读的。
预测器数据,指定为数字矩阵或表格。
每行X
对应一个观察结果,每一列对应一个变量。
如果您指定
X
参数,则参数设置此属性。如果您指定
customSyntheticData
参数,则此属性为空。如果你指定
黑箱
作为一个完整的机器学习模型对象并没有指定X
或customSyntheticData
,则此属性值为用于训练的预测器数据黑箱
.
石灰
不使用包含缺失值的行,也不将行存储在其中X
.
数据类型:单
|双
|表格
计算属性
该软件计算以下属性。
BlackboxFitted
- - - - - -机器学习模型计算查询点的预测
标量
安装
- - - - - -机器学习模型计算合成预测器数据的预测
向量
ImportantPredictors
- - - - - -重要预测指标
正整数向量
SimpleModel
- - - - - -简单的模型
RegressionLinear
模型对象|RegressionTree
模型对象|ClassificationLinear
模型对象|ClassificationTree
模型对象
此属性是只读的。
简单模型,指定为RegressionLinear
,RegressionTree
,ClassificationLinear
,或ClassificationTree
模型对象。石灰
根据机器学习模型的类型确定简单模型对象的类型(类型
)和简单模型的类型(“SimpleModelType”
).
SimpleModelFitted
- - - - - -用简单模型计算查询点的预测
标量
此属性是只读的。
由简单模型计算的查询点的预测(SimpleModel
),指定为标量。
如果SimpleModel
是ClassificationLinear
,则SimpleModelFitted
取值为1或-1。
的
SimpleModelFitted
如果简单模型的预测结果与BlackboxFitted
(机器学习模型的预测)。的
SimpleModelFitted
如果简单模型的预测与BlackboxFitted
.如果BlackboxFitted
值是一个
,则情节
函数显示SimpleModelFitted
值作为不是一个
.
数据类型:单
|双
|分类
|逻辑
|字符
|字符串
|细胞
SyntheticData
- - - - - -综合预测数据
数字矩阵|表格
此属性是只读的。
综合预测数据,指定为数字矩阵或表格。
如果您指定
customSyntheticData
输入参数,然后参数设置这个属性。否则,
石灰
从预测器数据估计分布参数X
并生成一个合成预测数据集。
数据类型:单
|双
|表格
例子
用决策树简单模型解释预测
训练一个分类模型并创建一个石灰
对象,该对象使用决策树简单模型。当你创建石灰
对象,指定查询点和重要预测因子的数量,以便软件生成合成数据集的样本,并为具有重要预测因子的查询点拟合一个简单模型。然后利用目标函数在简单模型中显示估计的预测因子重要性情节
.
加载CreditRating_Historical
数据集。数据集包含客户id及其财务比率、行业标签和信用评级。
可读的(“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(tbl,[“ID”,“评级”]);
训练信用评级的黑盒模型fitcecoc
函数。
blackbox = fitcecoc(tblX,tbl。评级,“CategoricalPredictors”,“行业”);
创建一个石灰
对象,该对象使用决策树简单模型解释对最后一次观测的预测。指定“NumImportantPredictors”
作为六个,找出最多6个重要的预测因子。如果您指定“QueryPoint”
而且“NumImportantPredictors”
属性时的值石灰
对象,然后软件生成合成数据集的样本,并为合成数据集拟合一个简单的可解释模型。
queryPoint = tblX(end,:)
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”,“树”)
结果= lime with properties: BlackboxModel: [1x1 ClassificationECOC] DataLocality: 'global' CategoricalPredictors: 6 Type: 'classification' X: [3932x6 table] QueryPoint: [1x6 table] NumImportantPredictors: 6 numsynticdata: 5000 synticdata: [5000x6 table] fitting: {5000x1 cell} SimpleModel: [1x1 ClassificationTree] ImportantPredictors: [2x1 double] blackboxfitting: {'AA'} simplemodelfitting: {'AA'}
画出石灰
对象结果
通过使用对象函数情节
.若要在任何预测器名称中显示现有下划线,请更改TickLabelInterpreter
轴的值“没有”
.
F =图(结果);f.CurrentAxes.TickLabelInterpreter =“没有”;
该图显示了查询点的两个预测,它们对应于BlackboxFitted财产和SimpleModelFitted的属性结果
.
横柱图显示了排序的预测器重要性值。石灰
找到财务比率变量MVE_BVTD
而且RE_TA
作为查询点的重要预测器。
您可以使用数据提示或读取条形长度栏属性.例如,你可以找到酒吧
对象,使用findobj
函数,并将标签添加到条形图的两端文本
函数。
B = findobj(f,“类型”,“酒吧”);文本(b.YEndPoints + 0.001, b.XEndPoints字符串(b.YData))
或者,您可以在具有预测器变量名称的表中显示系数值。
imp = b.YData;flipud (array2table(小鬼”,...“RowNames”f.CurrentAxes.YTickLabel,“VariableNames”, {“预测的重要性”}))
ans =2×1表预测的重要性 ____________________ MVE_BVTD 0.088412 RE_TA 0.0018061
用线性简单模型解释预测
训练一个回归模型并创建一个石灰
对象,该对象使用线性简单模型。当你创建石灰
对象,如果不指定查询点和重要预测因子的数量,则软件生成合成数据集的样本,但不适合简单的模型。使用object函数适合
为查询点拟合一个简单的模型。然后利用目标函数显示拟合后线性简单模型的系数情节
.
加载carbig
数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。
负载carbig
创建一个包含预测变量的表加速度
,气缸
,等等,以及响应变量英里/加仑
.
tbl = table(加速度,气缸,排量,马力,车型年,重量,MPG);
删除训练集中的缺失值可以帮助减少内存消耗并加快fitrkernel
函数。中删除缺失的值资源描述
.
TBL = rmmissing(TBL);
通过删除响应变量来创建一个预测变量表资源描述
.
tblX = removevars(tbl,“英里”);
训练一个黑盒模型英里/加仑
通过使用fitrkernel
函数。
rng (“默认”)%用于再现性mdl = fitrkernel(tblX,tbl。英里/加仑,“CategoricalPredictors”[2 - 5]);
创建一个石灰
对象。指定一个预测器数据集,因为mdl
不包含预测器数据。
results = lime(mdl,tblX)
结果= lime with properties: BlackboxModel: [1x1 RegressionKernel] DataLocality: 'global' CategoricalPredictors: [2 5] Type: 'regression' X: [392x6 table] QueryPoint: [] NumImportantPredictors: [] numsynticdata: 5000 synticdata: [5000x6 table] fitting: [5000x1 double] SimpleModel: [] ImportantPredictors: [] blackboxfitting: [] simplemodelfitting: []
结果
包含生成的合成数据集。的SimpleModel
属性为空([]
).
中第一个观测拟合线性简单模型tblX
.指定要查找的重要预测因子的数量为3。
queryPoint = tblX(1,:)
queryPoint =1×6表加速气缸位移马力Model_Year重量 ____________ _________ ____________ __________ __________ ______ 12 8 307 130 70 3504
results = fit(results,queryPoint,3);
画出石灰
对象结果
通过使用对象函数情节
.若要在任何预测器名称中显示现有下划线,请更改TickLabelInterpreter
轴的值“没有”
.
F =图(结果);f.CurrentAxes.TickLabelInterpreter =“没有”;
该图显示了查询点的两个预测,它们对应于BlackboxFitted财产和SimpleModelFitted的属性结果
.
横柱图显示了简单模型的系数值,按它们的绝对值排序。石灰发现马力
,Model_Year
,气缸
作为查询点的重要预测器。
Model_Year
而且气缸
是具有多个类别的分类预测器。对于线性简单模型,软件为每个分类预测器创建的虚拟变量比类别数少一个。条形图只显示最重要的虚变量。,可以检查其他虚变量的系数SimpleModel
的属性结果
.显示排序系数值,包括所有分类虚拟变量。
[~,I] = sort(abs(results.SimpleModel.Beta),“下”);表(results.SimpleModel.ExpandedPredictorNames (I)”,results.SimpleModel.Beta(我),...“VariableNames”, {“扩展预测器名称”,“系数”})
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 \
指定黑箱模型为函数句柄
训练一个回归模型并创建一个石灰
对象的函数句柄预测
模型的功能。使用object函数适合
为指定的查询点拟合一个简单模型。然后利用目标函数显示拟合后线性简单模型的系数情节
.
加载carbig
数据集,其中包含20世纪70年代和80年代初生产的汽车的测量数据。
负载carbig
创建一个包含预测变量的表加速度
,气缸
等等。
tbl = table(加速度,气缸,排量,马力,车型年,重量);
训练一个黑盒模型英里/加仑
通过使用TreeBagger
函数。
rng (“默认”)%用于再现性Mdl = TreeBagger(100,tbl,MPG,“方法”,“回归”,“CategoricalPredictors”[2 - 5]);
石灰
不支持万博1manbetxTreeBagger
对象的第一个输入参数(黑箱模型)石灰
作为一个TreeBagger
对象。属性的函数句柄预测
函数。属性的选项预测
函数使用函数的名称-值参数。
属性的函数句柄预测
的功能TreeBagger
对象Mdl
.指定要用作的树索引数组1:50
.
myPredict = @(tbl) predict(Mdl,tbl,“树”、1:50);
创建一个石灰
对象使用函数句柄myPredict
.指定黑箱模型作为函数句柄时,必须提供预测器数据并指定“类型”
名称-值参数。资源描述
包括分类预测符(油缸
而且Model_Year
)与双
数据类型。默认情况下,石灰
不使用双
数据类型作为分类预测器。指定第二个(油缸
)及第五(Model_Year
)变量作为分类预测因子。
结果= lime(myPredict,tbl,“类型”,“回归”,“CategoricalPredictors”[2 - 5]);
中第一个观测拟合线性简单模型资源描述
.若要在任何预测器名称中显示现有下划线,请更改TickLabelInterpreter
轴的值“没有”
.
Results = fit(Results,tbl(1,:),4);F =图(结果);f.CurrentAxes.TickLabelInterpreter =“没有”;
石灰
发现马力
,位移
,气缸
,Model_Year
作为重要的预测指标。
更多关于
距离度量
距离度量是定义两个观测值之间距离的函数。石灰
万博1manbetx支持连续变量的各种距离度量以及连续变量和分类变量的混合。
连续变量的距离度量
给定一个mx——- - - - - -n数据矩阵X,则视为mx(1 -n)行向量x1,x2、……xmx,以及我的——- - - - - -n数据矩阵Y,则视为我的(1 -n)行向量y1,y2、……y我的,向量之间的不同距离x年代而且yt定义如下:
欧氏距离
欧几里得距离是闵可夫斯基距离的一个特例,其中p= 2.
标准化欧氏距离
在哪里V是n——- - - - - -n对角矩阵j第Th对角线元素为(年代(j))2,在那里年代是每个维度的比例因子的向量。
Mahalanobis距离
在哪里C是协方差矩阵。
城市街区距离
城市街区距离是闵可夫斯基距离的一个特例,其中p= 1.
闵可夫斯基距离
对于特殊情况p= 1,闵可夫斯基距离为街区距离。对于特殊情况p= 2,闵可夫斯基距离为欧几里得距离。对于特殊情况p=∞,闵可夫斯基距离为切比雪夫距离。
Chebychev距离
切比雪夫距离是闵可夫斯基距离的一种特殊情况,其中p=∞.
余弦距离
相关距离
在哪里
而且
斯皮尔曼的距离
在哪里
连续变量和分类变量混合的距离度量
修正古道尔距离
这个距离是Goodall距离的变体,如果匹配值不频繁,无论其他值的频率如何,Goodall距离都会分配一个小的距离。对于不匹配,预测器的距离贡献为1/(变量数)。
发生频率距离
对于匹配,出现频率距离指定为零距离。对于不匹配,发生频率距离在频率较低的值上分配较高的距离,在频率较高的值上分配较低的距离。
算法
石灰
用LIME解释一个机器学习模型的预测[1]时,该软件生成合成数据集,并将一个简单的可解释模型拟合到合成数据集石灰
而且适合
,如步骤1-5所述。
如果您指定
queryPoint
而且numImportantPredictors
的值石灰
,则石灰
函数执行所有步骤。如果您没有指定
queryPoint
而且numImportantPredictors
并指定“DataLocality”
作为“全球”
(默认),则石灰
函数生成一个合成数据集(步骤1-2),而适合
函数适合简单的模型(步骤3-5)。如果您没有指定
queryPoint
而且numImportantPredictors
并指定“DataLocality”
作为“本地”
,则适合
函数执行所有步骤。
的石灰
而且适合
函数执行以下步骤:
生成一个合成预测数据集X年代对连续变量采用多元正态分布,对每个分类变量采用多项分布。属性指定要生成的样本数量
“NumSyntheticData”
名称-值参数。如果
“DataLocality”
是“全球”
(默认值),然后软件从整个预测器数据集(X
或者预测数据黑箱
).如果
“DataLocality”
是“本地”
的分布参数进行估计k-查询点的最近邻居,其中k是“NumNeighbors”
价值。属性指定距离度量来查找最近的邻居“距离”
名称-值参数。
该软件在估计分布参数时忽略了预测器数据集中的缺失值。
方法提供预先生成的自定义合成预测器数据集
customSyntheticData
的输入参数石灰
.计算预测Y年代对于合成数据集X年代.预测是回归的预测反应或分类的分类标签。该软件使用
预测
的功能黑箱
模型来计算预测。如果你指定黑箱
作为函数句柄,然后软件使用函数句柄计算预测。计算距离d在查询点和合成预测器数据集中的样本之间使用指定的距离度量
“距离”
.计算权重值w问合成预测器数据集中相对于查询点的样本的问使用平方指数(或高斯)核函数
x年代样本是否在合成预测数据集中X年代.
d(x年代,问)样品之间的距离是多少x年代和查询点问.
p预测因子的数量在吗X年代.
σ是内核宽度,您可以使用
“KernelWidth”
名称-值参数。默认的“KernelWidth”
值为0.75。
查询点的权重值为1,然后随着距离值的增加收敛到0。的
“KernelWidth”
Value控制权重值收敛到零的速度。越低“KernelWidth”
值时,权重值收敛到零的速度越快。因此,算法对查询点附近的样本赋予了更大的权重。由于该算法使用了这些权重值,因此选取的重要预测因子和拟合的简单模型能够有效地在查询点附近局部解释合成数据的预测。拟合一个简单模型。
如果
“SimpleModelType”
是“线性”
(默认值),然后软件选择重要的预测因子,并拟合所选重要预测因子的线性模型。选择n重要预测指标( ),采用群正交匹配追踪(OMP)算法[2][3],在那里n是
numImportantPredictors
价值。该算法使用合成预测器数据集(X年代)、预测(Y年代)和权重值(w问).拟合所选重要预测因素的线性模型( )与预测(Y年代)使用权重值(w问).软件使用
fitrlinear
回归或fitclinear
的分类。对于多类模型,该软件使用“一对所有”方案来构造二元分类问题。类中的正类是查询点的预测类黑箱
模型,而负类则指其他类。
如果
“SimpleModelType”
是“树”
,然后软件拟合决策树模型fitrtree
回归或fitctree
的分类。该软件指定决策分割(或分支节点)的最大数量作为重要预测因子的数量,以便拟合的决策树最多使用指定数量的预测因子。
参考文献
[1]里贝罗,马可·图里奥,s·辛格和c·格斯特林。“‘我为什么要相信你?《解释任何分类器的预测》第22届ACM SIGKDD知识发现和数据挖掘国际会议论文集, 1135 - 44。旧金山,加利福尼亚州:ACM, 2016年。
[2] Świrszcz, Grzegorz, Abe直树和Aurélie C. Lozano。变量选择与预测的分组正交匹配追踪神经信息处理系统研究进展(2009): 1150 - 58。
[3]洛萨诺,Aurélie C., Grzegorz Świrszcz,和阿部直树。Logistic回归的群正交匹配追踪"第十四届人工智能与统计国际会议论文集(2011): 452 - 60。
版本历史
R2020b中介绍
Matlab명령
다음matlab명령에해당하는링크를클릭했습니다。
명령을실행하려면matlab명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。