机器学习相对简单线性模型有更优异的效果,但是其复杂的原理让模型并不容易理解和解释。可解释的方法有很多众,大概可以分为全局解释和局部解释,以及与模型适配和与模型无关的方法,本文对一种局部的、与模型无关的方法Lime进行介绍,尝试从原理并结合python的Lime工具包进行梳理。
原理介绍
Lime(Local Interpretable Model-Agnostic Explanations)是使用训练的局部代理模型来对单个样本进行解释。假设对于需要解释的黑盒模型,取关注的实例样本,在其附近进行扰动生成新的样本点,并得到黑盒模型的预测值,使用新的数据集训练可解释的模型(如线性回归、决策树),得到对黑盒模型良好的局部近似。
实现步骤
- 如上图是一个非线性的复杂模型,蓝/粉背景的交界为决策函数;
- 选取关注的样本点,如图粗线的红色十字叉为关注的样本点X;
- 定义一个相似度计算方式,以及要选取的K个特征来解释;
- 在该样本点周围进行扰动采样(细线的红色十字叉),按照它们到X的距离赋予样本权重;
- 用原模型对这些样本进行预测,并训练一个线性模型(虚线)在X的附近对原模型近似。
这样就可以使用可解释性的模型对复杂模型进行局部解释。
目标函数
LIME会产生一个新的数据集(选定样本x周围进行扰动得到&#x