首页 > 其他分享 >[可解释性分析]LIME

[可解释性分析]LIME

时间:2023-05-13 15:56:14浏览次数:33  
标签:分析 解释 特征 模型 样本 解释性 线性 LIME

1. 前言

出自论文《“Why Should I Trust You?”Explaining the Predictions of Any Classifier》,LIME是通用的机器学习可解释性分析方法。使用“可解释特征”,训练“可解释模型”,在“特定样本的局部线性邻域”拟合“原模型”。通过可解释模型的特征权重,定量分析特征重要度,及特定样本的某个特征对模型预测某一类的影响。挑选有代表性的非冗余样本,代表模型全局可信度。在表格、文本、图像等数据模态上的模拟实验和人工实验,都表现出良好的可信性和可解释性。

2. 算法原理

2.1. 思路

总体思路:使用“可解释特征”,训练“可解释模型”,在“特定样本的局部线性邻域”拟合“原模型”。

如下图所示,LIME的思想是在需要关注的样本点,在该样本点周围进行扰动采样,并按照他们到X额距离赋予样本权重,然后用原模型对这些样本进行预测,获得标签值,并使用这些局部样本,训练一个可解释性比较强的线性模型,这样就可以利用线性模型的可解释性,对复杂模型进行局部解释。

LIME算法的步骤

如下图所示,原始的模型很复杂,非线性,但是在待测样本附近,可以拟合一个局部线性模型。

领域

如下图所示,X为原始特征(样本数据),转换为可解释特征X’代表的样本,然后扰动X’获得领域特征Z’,再将Z’恢复为原始特征Z,将Z输入原模型获得预测值f(z),重复n遍,最后使用所有X’为样本,f(z)为标签,训练一个可解释模型g。

 

提取到训练

2.2. 目标函数

LIME会产生一个新的数据集(选定样本x周围进行扰动得到), 接着在这个新的数据集上,训练一个简单模型(可解释的模型), 通过以下目标函数衡量衡量两个模型之间的差异:

目标函数

  • f表示原始的模型, 即需要解释的模型;
  • g表示简单模型, G是简单模型的一个集合, 如所有可能的线性模型;
  • πx表示新数据集中的数据x'与原始数据 x的距离;
  • Ω(g)表示模型g的复杂程度;

假设原始模型f为需要被解释的复杂模型,对实例x 的解释模型是模型g (例如线性回归模型),G 是可能的可解释模型的集,接近度πx 定义了实例x 附近进行采样的邻域大小(即对x附近进行扰动,扰动前后的样本距离)。我们希望可解释模型的复杂度Ω(g) 保持较低水平时,最小化损失L (例如均⽅误差) ,即解释模型g 与原始模型f 预测的接近程度。

2.3. 样本相似度

在样本X附近进行扰动,对扰动前后的样本相似度进行定义,样本类型不同会有不同的定义(文本的话就是余弦相似性,图像的话就是L2范数距离)。相似度计算公式如下

Snipaste_2023-05-13_15-35-16

2.4. 最终函数

有了相似度的定义,便可以将原先的目标函数改写成如下的形式。其中f(z)就是扰动样本,在d维空间(原始特征)上的预测值,并把该预测值作为答案,g(z’)则是在d’维空间(可解释特征)上的预测值,然后以相似度作为权重,因此上述的目标函数便可以通过线性回归的方式进行优化。

Snipaste_2023-05-13_15-36-42

3. 不同领域的应用

原始特征vs可解释特征:

在文本分类领域,原始特征是抽象是Word Embedding,可解释特征是unigram词袋模型(二进制向量,位代表是否有指定单词)。

在图像分类,原始特征是代表三通道像素的tensor,可解释特征是连续图块的二进制表示(图像用分割后,用二进制代表是否存在特定图块)。

3.1. 表格数据

对每个待测样本特征进行扰动取样,并在原模型上获得标签值,然后基于这些训练一个可解释模型,然后在待测样本上就可以使用这个可解释模型进行解释了。

表格数据

3.2. 图像数据

原始图片,利用超像素分割算法,分割为m个区域,然后将这m个区域当作是原图的m个特征,对区域使用灰色模块进行遮挡形成2^m个样本,如下图所示:

图像2

将这些样本喂入原模型,获得预测值,并利用可解释性特征(图块向量)和预测值,训练一个局部线性模型,用这个模型结合图块特征对原模型进行解释,如下图所示:

图像4

3.3. 文本数据

在文本分类任务上,原模型使用的特征是Word Embedding:

文本

将其转为可解释性的词袋模型:

文本2

然后在词袋模型的基础上进行扰动,取样,训练局部线性模型,最后用这个模型解释原模型。

4. 优缺点与挑战

4.1. 优点

  • 兼容任意一种机器学习算法
    特征重要性:解释、理解、信赖、改进 (特征工程)
  • What-if 场景:如果每个月多挣500元,额度是多少
  • 可解释单个样本预测结果、选取代表性样本
    可人工设计、构造可解释特征

4.2. 缺点

  • 人工设计、构造的“可解释特征”’,不一定科学
  • “局部线性”可能无法拟合原模型
  • 不同样本,如何计算邻域样本权重
  • 每个待测样本都需训练对应可解释模型,耗时长

4.3. 挑战

  • 如何构造可解释特征——仍然需要人工先验知识。
  • 如果原模型在局部邻域仍然非线性,可解释模型无法很好拟合。

5. 参考

[1] LIME机器学习可解释性分析

[2] LIME: explain Machine Learning predictions

[3] 机器学习可解释性Lime方法小结

(完)

标签:分析,解释,特征,模型,样本,解释性,线性,LIME
From: https://www.cnblogs.com/harrymore/p/17397528.html

相关文章

  • spring框架_@AutoWiredAnnotationBeanPostProcessor执行分析
    AutoWiredAnnotationBeanPostProcessor执行依赖注入的时候(解析@Autowired)调用了postProcessProperties方法这个方法首先要找到哪些属性,方法被标注了@Autowired注解,把这些数据添加到InjectMetadata中,然后调用metadata.inject方法按类型进行依赖注入,注入时按类型进行查找按类......
  • 汽车交易情况分析及价格预测4_模型融合
    一、加权融合defWeighted_method(test_pre1,test_pre2,test_pre3,w=[1/3,1/3,1/3]):Weighted_result=w[0]*pd.Series(test_pre1)+w[1]*pd.Series(test_pre2)+w[2]*pd.Series(test_pre3)returnWeighted_result##InittheWeightw=[0.3,0.4,0.3]##测试验证集准确......
  • 汽车交易情况分析及价格预测3_搭建模型
    一、线性回归sample_feature=sample_feature.dropna().replace('-',0).reset_index(drop=True)sample_feature['notRepairedDamage']=sample_feature['notRepairedDamage'].astype(np.float32)train=sample_feature[continuous_feature_names......
  • 汽车交易情况分析及价格预测2_特征工程
    一、特征构造#训练集和测试集放在一起,方便构造特征train['train']=1test_data['train']=0data=pd.concat([train,test_data],ignore_index=True,sort=False)增加新特征:使用时间data['used_time']=(pd.to_datetime(data['creatDate'],format='%Y%m%......
  • 汽车交易情况分析及价格预测1_EDA
    一、数据简介二手车交易记录,训练集数据15万条,测试集数据5万条。包括交易ID、汽车交易名称、汽车注册日期、车型编码、汽车品牌、车身类型、汽车已行驶公里、报价类型、二手车交易价格等信息。同时会对name、model、brand和regionCode等信息进行脱敏。name-汽车编码regDate......
  • 550. 游戏玩法分析 IV
    【题目】Table:Activity+--------------+---------+|ColumnName |Type   |+--------------+---------+|player_id   |int    ||device_id   |int    ||event_date  |date   ||games_played|int    |+--------------+---------+......
  • 游戏APP用户行为分析
    游戏APP用户行为流程:数据导入install_table=pd.read_excel('./Data/游戏APP安装与注册信息.xlsx',sheet_name='安装信息')register_table=pd.read_excel('./Data/游戏APP安装与注册信息.xlsx',sheet_name='注册信息')数据概况print("安装信息:")print(install_......
  • Nacos Client 源码分析(二)服务订阅与推送消息处理
    1.概述在上一篇文章《NacosClient源码分析(一)事件的发布与订阅》分析了NacosClient的发布订阅机制,但我们现在还不清楚NotifyCenter的publishEvent方法是怎么被调用的以及客户端向服务端订阅服务的具体流程。下面我们对继续分析Nacos的源码。2.服务订阅还是从NacosNamin......
  • 基于出租车GPS轨迹数据的研究:出租车行程的数据分析|附代码数据
    原文链接:http://tecdat.cn/?p=7553最近我们被客户要求撰写关于出租车GPS轨迹数据的研究报告,包括一些图形和统计输出。通过解析原始数据,得到模式如下所示数据 每次骑行都有非常具体的上/下车位置以及开始/结束时间的详细信息。 下面显示了一个示例 : 我们留下了158,320,......
  • 精选论文 | Capon算法与MUSIC算法性能的比较与分析
    公众号【调皮连续波】,其他平台为自动同步,内容若不全或乱码,请前往公众号阅读。持续关注调皮哥,获得更多雷达干货学习资料和建议,和大家一起学习雷达技术。【正文】首先说结论:当信噪比(SNR)足够大时,Capon算法和MUSIC算法的空间谱非常相似,因此在SNR比较大时它们的性能几乎一样,当不同信号源......