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编程中包的概念与管理
Oct 16 Python
Python决策树之基于信息增益的特征选择示例
Jun 25 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
Python中dict和set的用法讲解
Mar 28 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
python hough变换检测直线的实现方法
Jul 12 Python
python使用matplotlib绘制雷达图
Oct 18 Python
在Python中使用turtle绘制多个同心圆示例
Nov 23 Python
python 回溯法模板详解
Feb 26 Python
Python2及Python3如何实现兼容切换
Sep 01 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
Oct 18 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
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
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
JavaScript实现LI列表数据绑定的方法
2015/08/04 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
2015/08/21 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
vue-ajax小封装实例
2017/09/18 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
Vue全局loading及错误提示的思路与实现
2019/08/09 Javascript
原生js实现随机点名功能
2019/11/05 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
python中yield的用法详解
2021/01/13 Python
HTML5 Web Database 数据库的SQL语句的使用方法
2012/12/09 HTML / CSS
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
饲料采购员岗位职责
2013/12/19 职场文书
档案检查欢迎词
2014/01/13 职场文书
网络编辑职责
2014/03/01 职场文书
风险评估实施方案
2014/03/09 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
房产协议书范本2014
2014/09/30 职场文书
学生违反校规检讨书
2014/10/28 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技