LIME:模型预測结果是否值得信任?

花了一天时间对LIME论文:http://arxiv.org/pdf/1602.04938v1.pdf 细致阅读和代码阅读,实验。大体理解了作者的设计思路。

背景:

我们在建立模型的时候,常常会思考我们的模型是不是够稳定,会不会出现样本偏差效应。 p>>N时候会不会过拟合? 我们检查模型稳定。我们进行一些cross-validation来看看各项评估指标方差大不大。

但是假设样本一開始由于採样偏差导致样本有偏,导致模型和实际情况有差异。这个就不太好评估了。

相同。p>>N也会有类似的问题。尤其在文本挖掘领域。

普通情况。假设特征不是非常多的话。尤其像logistic regression这种model,我们会把模型权重给打印出来看看,看看训练出的模型结果,是否和人的经验吻合。以下是lime
文章中提到一个文本分类的case。预測一段文本是无神论相关的。还是基督徒相关的。文中分类器预測结果这篇文本是无神论相关的,但是主要区分特征却与人的经验十分不吻合的,这种模型是不能让人信服的,当我们把这几个特征删除后。预測结果又反向了。我们能够通过人工构建一些由这些特征组成的文本来增加到预測实验中,会大大减少模型性能。

LIME解释原理:

LIME是Local Interpretable Model-Agnostic Explanations的缩写。LIME的目的是试图解释模型在预測样本上的行为。这样的解释是可被理解的。而且这样的解释是模型无关的,不须要深入到模型内部。

作者提出的方法一种局部方法,非全局的,在每一个预測样本附近随机採样产生一些样本,就像下图所,红色“x”是预測样本。周边‘*’和圆形样本都是採样得到的。

採样的机制是随机替换掉原始样本中若干个特征。

如文本a="我女朋友很喜欢看奇葩说",生成的样本能够是“我很喜欢看奇葩说”,“我女朋友看奇葩说”等等。每一个生成样本和原始样本都有个权重,权重的计算方式: w=exp(-d^2/theta^2), d是距离,文本中我们能够採用cosine 距离来表征文本样本间的距离。

以下是lime_text.py 中__data_labels_distances函数的代码,针对是文本文本分类的解释。以下代码的主要作用怎样给预測样本生成近邻採样样本。以及对应权重,採样样本在当前分类器的预測概率。

生成的样本表征方式是bag of word: [0,1,0,0,1]。注意这时候採样样本特征不是高维的,最大长度仅仅是预測样本的长度。

有了採样样本。以及採样样本的权重。预測概率。

有了这些东西,我们以下该干什么呢?记住我们的目的是要解释我们分类器在该预測样本中怎样起作用的?  简单的说是在该预測样本,分类器都是哪些特征起到作用?我们能够事先设定个数值K,我们仅仅看前K个起作用的特征(太多了。人无法查看)

既然是特征选择问题。那我们能够用这些採样样本做个加权回归模型。做回归模型前,先选取k个重要特种,怎样选取? 方法是能够是依据回归模型训练结果中最大的权重,或者是前向搜索方法(每次选取使回归模型R^2值最大的特征增加到集合中。),或者採用lasso_path的方法。注意样本的权重是不一样的。

详细能够看以下代码:

选取K个特征后,我们就能够在採样的样本。以及这K个特征上,做个加权回归模型。回归模型输出的K个特征以及权重,就是分类器对预測样本的解释。以下是explain_instance_with_data函数代码:

上面的方法整体能够用paper上的描写叙述来概括:

总结:

上面主要环绕文本分类解释展开的,而且主要是基于文本bag of word方式。

事实上基于文本嵌入表征方式也是可行的,文本中词的替换机制一样。仅仅是在预測採样样本分类概率前须要把採样样本变成向量方式。

事实上能够拓展到非常多其它领域,比方风控征信等。

预測一个行为是否有风险,当我们的模型预測到该行为是有风险的,我们须要给我们分析师。客服解释这个行为为什么有风险。模型识别风险行为特征是什么。

拓展时候预測样本的近邻採样机制可能要优化设计下。很多其它场景非常多特征不是离散或者二值的。而是连续的。尤其像Random Forest等树模型事实上更适合处理连续的这样的变量。

针对这样的情况,怎样处理? 採样怎么做? 一种简单的方法是把连续特征进行离散化。one-hot编码。这样就和lime对文本分类模型的解释中採样机制是一样的啦。一种就是全然和文本一样,对特征进行置0採样,无论是否是连续变量。

整体上来说,LIME对模型的解释方法比較简单,论文描写叙述略显复杂(本来非常easy的东西为啥写的这么复杂呢?),论文很多其它是从实验角度来分析LIME方法的有效性。没有太多理论分析。让人感觉不是非常放心(想想这种方法有哪些坑)。毕竟实验是依据样本有关的。在一些复杂的场景是否有效? 还有实验很多其它用的文本和图像场景。其它领域是否奏效?  为什么在预測样本的採样样本中做加权回归分析。回归模型结果特征权重大小能代表原始模型在预測样本的表现呢?

时间: 2024-11-08 18:26:16

LIME:模型预測结果是否值得信任?的相关文章

【Energy Forecasting】能源预測的发展和展望

说明 本文的内容来自Tao Hong博士的Energy Forecasting: Past, Present and Future一文的翻译和整理. 引入 能源预測包括了电力行业中有关预測的广泛的内容,比方短期负荷预測.长期负荷预測.局部负荷预測.电价预測.需求响应预測还有可再生能源发电预測等. 因为电力存储的限制和社会对于电力的需求造成了几个能源预測的有趣性质,比方复杂的季节性模式.24/7的电网数据收集.对精确度的需求等. 高级的能源预測依赖于严格的測试数据集.对于商业需求的理解,从统计学.

KNIMI数据挖掘建模与分析系列_004_利用KNIMI做客户流失预測

利用KNIMI做客户流失预測 老帅 20150801 http://blog.csdn.net/shuaihj 一.測试数据 中国移动客服数据 须要測试数据,请留下邮箱 二.统计已流失客户 1.读取移动客服数据(客户流失.xlsx) 2.统计已流失客户 參数设置 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"

人体运动状态预測-实例分析

背景介绍 : ? 可穿戴式设备的流行.让我们能够更便利地使用传感器获取人体的各项数据, 甚至生理数据. ? 当传感器採集到大量数据后.我们就能够通过对数据进行分析和建模.通过 各项特征的数值进行用户状态的推断.依据用户所处的状态提供给用户更加 精准.便利的服务. 数据介绍: ? 我们如今收集了来自 A, B, C, D, E 5 位用户的可穿戴设备上的传感器数据, 每位用户的数据集包括一个特征文件 (a.feature) 和一个标签文件 (a.label). ? 特征文件里每一行相应一个时刻的全

体系结构复习2——指令级并行(分支预測和VLIW)

第五章内容较多,接体系结构复习1 5.4 基于硬件猜測的指令级并行 动态分支预測是在程序运行时.依据转移的历史信息等动态确定预測分支方向.主要方法有: 基于BPB(Branch Prediction Buffer)和BHT(Branch History Table)的方法 高性能指令发送(High Performance Instruction Delivery) 5.4.1 基于BPB和BHT的方法 (1)1-bit BHT 分支指令PC的低位索引1位记录上一次转移是否成功(不是预測是否正确)

使用excel进行数据挖掘(6)---- 预測

在配置环境后,能够使用excel进行数据挖掘. 环境配置问题可參阅: http://blog.csdn.net/xinxing__8185/article/details/46445435 例子 DMAddins_SampleData.xlsx 文件下载地址:http://download.csdn.net/detail/xinxing__8185/8780481 在数据表中,选择table analysis tools sample表.该表中是用户的信息统计,包含婚姻状况,性别.收入.子女,教

基于SVM的数据分类预測——意大利葡萄酒种类识别

update:把程序源代码和数据集也附上http://download.csdn.net/detail/zjccoder/8832699 2015.6.24 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- w

【天池竞赛系列】资金流入流出预測思路

赛题地址:http://tianchi.aliyun.com/competition/information.htm?spm=5176.100067.5678.2.VZW16k&raceId=3 登录就可以下载数据 题目一句话:依据13年7月到14年8月的申购赎回数据预測14年9月每一天的申购赎回数据. 算法问题:此题能够使用线性回归和时间序列预測,仅仅要特征好效果都还能够.我们使用的是R以下的随机森林+LM  .决赛仅仅有4次提交机会,第一次我们26名,后面每天都降,这些火箭简直太可怕了,最后

吉首大学_编译原理实验题_基于预測方法的语法分析程序的设计【通过代码】

一.实验要求 实验二 基于预測方法的语法分析程序的设计 一.实验目的 了解预測分析器的基本构成及用自顶向下的预測法对表达式进行语法分析的方法,掌握预測语法分析程序的手工构造方法. 二.实验内容 1.了解编译程序的基于预測方法的语法分析过程. 2.依据预測分析原理设计一个基于预測方法的语法分析程序. 三.实验要求 对给定文法G[S]: S->AT       A->BU     T->+AT|$      U->*BU|$    B->(S)|m 当中,$表示空串. 1.推断上

LIME:模型预测结果是否值得信任?

花了一天时间对LIME论文:http://arxiv.org/pdf/1602.04938v1.pdf 仔细阅读和代码阅读,实验,大体理解了作者的设计思路. 背景: 我们在建立模型的时候,经常会思考我们的模型是不是够稳定,会不会出现样本偏差效应, p>>N时候会不会过拟合? 我们检查模型稳定,我们进行一些cross-validation来看看各项评估指标方差大不大. 可是如果样本一开始因为采样偏差导致样本有偏,导致模型和实际情况有差异,这个就不太好评估了.同样,p>>N也会有类似的