目录
- Lime简介
- 结构
- 原理
- Lime重要函数
- 1、生成解释器
- 2、对局部点的解释
- 3、显示详细信息图
- 4、显示权重图
- 5、显示权重表
- Lime结果的解释
- 1、verbose=True的信息
- 2、show_in_notebook的信息
- 3、as_pyplot_figure的信息
- 4、as_list的信息
Lime简介
1 | import lime |
结构

主要用到的是
原理
在需要解释的点附近将机器学习模型局部线性化,利用该近似的线性模型进行局部解释,判断对于该点来说,哪些特征更重要。
局部线性化的形式:
positive:积极权重
negative:消极权重
Intercept:截距
具体意义会在后文解释
Lime重要函数
1、生成解释器
1 2 3 4 5 6 7 | explainer = lime.lime_tabular.LimeTabularExplainer( training_data, mode='classification', feature_names=None, categorical_features=None, verbose=False, class_names=None) |
training_data:训练机器学习模型的自变量数据
mode:模式,可选
feature_names:特征的名称列表
categorical_features:索引列表,即用作线性化近似的特征只会由该列表中选中的特征组成
verbose:决定是否在使用
class_names:字符串列表,决定后续权重表的标题
2、对局部点的解释
1 2 3 4 5 | exp = explainer.explain_instance( data_row, predict_fn, top_labels=None, num_features=10) |
data_row:一维ndarray,单个数据点(要解释的点)
predict_fn:预测函数,对分类模式,预测函数应该是一个输出各种情况可能性的函数;对回归模式,预测函数应该是一个输出预测值的函数
top_labels:若
num_features:若
3、显示详细信息图
注:该函数仅用于jupyter,否则只会返回一个
1 | exp.show_in_notebook(show_table=True, show_all=False) |
show_table:是否显示解释点对应的“特征名称——实际值”表格
show_all:是否显示show_table中的全部特征,为False则只显示num_features中指定的特征
4、显示权重图
注:权重图也包含在第3点所说的详细信息图中
1 | exp.as_pyplot_figure(labels=1) |
labels:在多分类情况下,才需要填充的参数,表面针对该类的预测概率的权重图
5、显示权重表
注:权重表即第四点所说的权重图用列表表示的形式
1 | exp.as_list(labels=1) |
labels:在多分类情况下,才需要填充的参数,表面针对该类的预测概率的权重图
Lime结果的解释
无论是回归模式还是分类模式,Lime的解释都是相似的,分类模式下,可以认为是对每种分类情况的概率的回归,即一个n分类模型的解释可以看做对n个回归模型的解释
1、verbose=True的信息
信息形式如下:

Intercept:模型局部线性化后的截距
Prediction_local:局部线性化后的模型对解释点给出的预测
Right:原机器学习模型对解释点给出的预测
2、show_in_notebook的信息
信息形式如下:


上图中
Predicted value 和 Prediction probabilities图则为原机器学习模型对解释点的预测值;
Positive / Negative 和 xxx / Not xxx图则为权重图,左边表示的是消极权重(即原理中的negative),右边表示的是积极权重(即原理中的positive);
Feature——Value图则是“特征名称——实际值”表格。
3、as_pyplot_figure的信息
信息形式如下:

同第2点所提的权重图
4、as_list的信息
信息形式如下:

同第2点所提的权重图