python机器学习Github已达8.9Kstars模型解释器LIME


Posted in Python onNovember 23, 2021

简单的模型例如线性回归,LR等模型非常易于解释,但在实际应用中的效果却远远低于复杂的梯度提升树模型以及神经网络等模型。

现在大部分互联网公司的建模都是基于梯度提升树或者神经网络模型等复杂模型,遗憾的是,这些模型虽然效果好,但是我们却较难对其进行很好地解释,这也是目前一直困扰着大家的一个重要问题,现在大家也越来越加关注模型的解释性。

本文介绍一种解释机器学习模型输出的方法LIME。它可以认为是SHARP的升级版,Github链接:https://github.com/marcotcr/lime,有所收获多多支持

LIME

LIME(Local Interpretable Model-agnostic Explanations)支持的模型包括:

  • 结构化模型的解释;
  • 文本分类器的解释;
  • 图像分类器的解释;

LIME被用作解释机器学习模型的解释,通过LIME我们可以知道为什么模型会这样进行预测。

本文我们就重点观测一下LIME是如何对预测结果进行解释的。

代 码

此处我们使用winequality-white数据集,并且将quality<=5设置为0,其它的值转变为1.

# !pip install lime
import pandas as pd
from xgboost import XGBClassifier
import shap
import numpy as np
from sklearn.model_selection import train_test_split
df = pd.read_csv('./data/winequality-white.csv',sep = ';')
df['quality'] = df['quality'].apply(lambda x: 0 if x <= 5 else 1)
df.head()

python机器学习Github已达8.9Kstars模型解释器LIME

# 训练集测试集分割
X = df.drop('quality', axis=1)
y = df['quality'] 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
# 模型训练
model = XGBClassifier(n_estimators = 100, random_state=42)
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
score

The use of label encoder in XGBClassifier is deprecated and will be removed in a future release. 0.832653061224489

对单个样本进行预测解释

下面的图中表明了单个样本的预测值中各个特征的贡献。

import lime
from lime import lime_tabular
explainer = lime_tabular.LimeTabularExplainer(
    training_data=np.array(X_train),
    feature_names=X_train.columns,
    class_names=['bad', 'good'],
    mode='classification'
)

模型有84%的置信度是坏的wine,而其中alcohol,totals ulfur dioxide是最重要的。

python机器学习Github已达8.9Kstars模型解释器LIME

import lime
from lime import lime_tabular
explainer = lime_tabular.LimeTabularExplainer(
    training_data=np.array(X_train),
    feature_names=X_train.columns,
    class_names=['bad', 'good'],
    mode='classification'
)

模型有59%的置信度是坏的wine,而其中alcohol,chlorides, density, citric acid是最重要的预测参考因素。

python机器学习Github已达8.9Kstars模型解释器LIME

exp = explainer.explain_instance(data_row=X_test.iloc[1], predict_fn=model.predict_proba)
exp.show_in_notebook(show_table=True)

适用问题

LIME可以认为是SHARP的升级版,它通过预测结果解释机器学习模型很简单。它为我们提供了一个很好的方式来向非技术人员解释地下发生了什么。您不必担心数据可视化,因为LIME库会为您处理数据可视化。

参考链接

https://www.kaggle.com/piyushagni5/white-wine-quality
LIME: How to Interpret Machine Learning Models With Python
https://github.com/marcotcr/lime
https://mp.weixin.qq.com/s/47omhEeHqJdQTtciLIN2Hw

以上就是Github已达8.9Kstars的最佳模型解释器LIME的详细内容,更多关于模型解释器LIME的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python写的服务监控程序实例
Jan 31 Python
Python简单删除目录下文件以及文件夹的方法
May 27 Python
Python_LDA实现方法详解
Oct 25 Python
django初始化数据库的实例
May 27 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
浅谈Python中(&amp;,|)和(and,or)之间的区别
Aug 07 Python
Python列表切片常用操作实例解析
Dec 16 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
Feb 17 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
May 21 Python
Django实现前台上传并显示图片功能
May 29 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
Mar 03 Python
如何在python中实现ECDSA你知道吗
Python jiaba库的使用详解
Nov 23 #Python
python 中的jieba分词库
Nov 23 #Python
python周期任务调度工具Schedule使用详解
Nov 23 #Python
python百行代码实现汉服圈图片爬取
python可视化大屏库big_screen示例详解
python数据可视化JupyterLab实用扩展程序Mito
You might like
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
js和php邮箱地址验证的实现方法
2014/01/09 PHP
解决php接收shell返回的结果中文乱码问题
2014/01/23 PHP
PHP中soap的用法实例
2014/10/24 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
2015/03/24 PHP
jQuery示例收集
2010/11/05 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
2014/05/11 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
JS动态增加删除UL节点LI及相关内容示例
2014/05/21 Javascript
再探JavaScript作用域
2014/09/24 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
node爬取微博的数据的简单封装库nodeweibo使用指南
2015/01/02 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
深入理解Python3中的http.client模块
2017/03/29 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
python MySQLdb使用教程详解
2018/03/20 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
python em算法的实现
2020/10/03 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
2014年中班元旦活动方案
2014/02/14 职场文书
小学亲子活动总结
2014/07/01 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
2014年职称评定工作总结
2014/11/26 职场文书