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获取当前时间对应unix时间戳的方法
May 15 Python
Python HTTP客户端自定义Cookie实现实例
Apr 28 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
python爬虫实现中英翻译词典
Jun 25 Python
pandas 如何分割字符的实现方法
Jul 29 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
使用matplotlib绘制图例标签中带有公式的图
Dec 13 Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 Python
Python %r和%s区别代码实例解析
Apr 03 Python
django上传文件的三种方式
Apr 29 Python
Django与数据库交互的实现
Jun 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
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
深入了解PHP类Class的概念
2012/06/14 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
layui实现三级导航菜单
2019/07/26 Javascript
jQuery实现评论模块
2020/08/19 jQuery
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
Python读取图片EXIF信息类库介绍和使用实例
2014/07/10 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
Python笔记之观察者模式
2019/11/20 Python
Ubuntu16.04安装python3.6.5步骤详解
2020/01/10 Python
俄罗斯皮肤健康中心:Pharmacosmetica.ru
2020/02/22 全球购物
行政助理求职自荐信
2013/10/26 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
会计专业应届生自荐信
2014/02/07 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
微笑服务标语
2014/06/24 职场文书
银行求职自荐书
2014/06/25 职场文书
经典演讲稿开场白
2014/08/25 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python
Golang Web 框架Iris安装部署
2022/08/14 Python