Lime对表格数据的机器学习模型解释


目录

  • 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

结构

lime结构
主要用到的是lime_tabular模块

原理

在需要解释的点附近将机器学习模型局部线性化,利用该近似的线性模型进行局部解释,判断对于该点来说,哪些特征更重要。
局部线性化的形式:

predict = ∑(positive) - ∑(negative) + Intercept

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:模式,可选'classification'(分类)和'regression'(回归)

feature_names:特征的名称列表

categorical_features:索引列表,即用作线性化近似的特征只会由该列表中选中的特征组成

verbose:决定是否在使用explain_instance的时候输出详细信息

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:若top_labels=k,则选取预测出的概率最高的k种情况来进行解释

num_features:若num_features=k,则选出k个最有效的特征来进行局部线性化

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点所提的权重图