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之玩转字符串(2)
Sep 14 Python
python实现每次处理一个字符的三种方法
Oct 09 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
在Python中使用dict和set方法的教程
Apr 27 Python
分享一下如何编写高效且优雅的 Python 代码
Sep 07 Python
Python三种遍历文件目录的方法实例代码
Jan 19 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
Python实现的json文件读取及中文乱码显示问题解决方法
Aug 06 Python
python3中property使用方法详解
Apr 23 Python
python3模拟实现xshell远程执行liunx命令的方法
Jul 12 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 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
中国第一家无线电行
2021/03/01 无线电
php获取网页内容方法总结
2008/12/04 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
jQuery事件详解
2017/02/23 Javascript
vue组件间通信子与父详解(二)
2017/11/07 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
python实现TCP服务器端与客户端的方法详解
2015/04/30 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
解决pip install psycopg2出错问题
2020/07/09 Python
容易被忽略的Python内置类型
2020/09/03 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
环保专业大学生职业规划设计
2014/01/10 职场文书
导游词格式
2015/02/13 职场文书
前台岗位职责范本
2015/04/16 职场文书
2015年车间管理工作总结
2015/07/23 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript
MySQL约束超详解
2021/09/04 MySQL