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使用scrapy解析js示例
Jan 23 Python
Python自定义scrapy中间模块避免重复采集的方法
Apr 07 Python
python3中set(集合)的语法总结分享
Mar 24 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
python实现移位加密和解密
Mar 22 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
Python分支语句与循环语句应用实例分析
May 07 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
python中seaborn包常用图形使用详解
Nov 25 Python
Python错误的处理方法
Jun 23 Python
Pytorch如何切换 cpu和gpu的使用详解
Mar 01 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
php下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
关于使用runtimeStyle属性问题讨论文章
2007/03/08 Javascript
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
Angularjs 实现动态添加控件功能
2017/05/25 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
JavaScript常用工具函数汇总(浏览器环境)
2020/09/17 Javascript
Python实现的多线程http压力测试代码
2017/02/08 Python
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
django foreignkey(外键)的实现
2019/07/29 Python
关于python 的legend图例,参数使用说明
2020/04/17 Python
python字典与json转换的方法总结
2020/12/28 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
品酒会策划方案
2014/05/26 职场文书
代理人委托书
2014/09/16 职场文书
网站出售协议书范文
2014/10/10 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
出纳岗位职责
2015/01/31 职场文书
SQL Server使用导出向导功能
2022/04/08 SQL Server