MLK | 如何解决机器学习树集成模型的解释性问题
MLK,即Machine Learning Knowledge,本专栏在于对机器学习的重点知识做一次梳理,便于日后温习,这篇文章主要是结合前几天看到的一个问题,然后结合自己的理解来写的。
? 前情回顾
? Index
机器学习模型不可解释的原因
特征重要度方法盘点
SHAP可能是出路,SHAP到底是什么
SHAP的案例展示
01 机器学习模型不可解释的原因
02 特征重要度方法盘点
有2个模型,Model A 和 Model B,其中A和B完全一致,但是我们在计算预测值的时候,强行给 Model B 的 特征 Cough 加上 10分。如下图所示(点击看大图):
03 SHAP可能是出路,SHAP到底是什么
SHAP(Shapley Additive exPlanation)是解释任何机器学习模型输出的统一方法。SHAP将博弈论与局部解释联系起来,根据期望表示唯一可能的一致和局部精确的加性特征归属方法。
Definition 2.1. Additive feature attribution methods have an explanation model g that is a linear function of binary variables
04 SHAP的案例展示
0401 SHAP的安装
pip install shaporconda install -c conda-forge shap
0402 对树集成模型进行解释性展示
import xgboostimport shap # load JS visualization code to notebookshap.initjs() """训练 XGBoost 模型,SHAP里提供了相关数据集""" X,y = shap.datasets.boston()model = xgboost.train({"learning_rate": 0.01}, xgboost.DMatrix(X, label=y), 100) """通过SHAP值来解释预测值(同样的方法也适用于 LightGBM, CatBoost, and scikit-learn models)"""explainer = shap.TreeExplainer(model)shap_values = explainer.shap_values(X) # 可视化解释性 (use matplotlib=True to avoid Javascript)shap.force_plot(explainer.expected_value, shap_values[0,:], X.iloc[0,:])
output:
这个数据集有这些特征:'CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT'
# visualize the training set predictionsshap.force_plot(explainer.expected_value, shap_values, X)
output:
"""创建一个SHAP图用于展示 单一特征在整个数据集的表现情况,每个点代表一个样本"""shap.dependence_plot("RM", shap_values, X)
output:
"""画出所有特征的重要度排序图"""shap.summary_plot(shap_values, X)
output:
shap.summary_plot(shap_values, X, plot_type="bar")
output:
References
MLK | 如何解决机器学习树集成模型的解释性问题相关推荐
- 解决laravel-admin 树状模型删除失效
解决laravel-admin 树状模型删除失效 处理方法 处理方法 修改 vendor\encore\laravel-admin\src\Tree.php 中的 script() 方法: //原代码 ...
- 【机器学习】集成模型方法
作者 | Salma Elshahawy, MSc. 编译 | VK 来源 | Towards Data Science 介绍 我们之前讨论了一些利用机器学习(ML)模型预测能力的常用方法.这些方法主 ...
- 论文阅读:机器学习模型可解释性方法、应用与安全研究综述
近日阅读了一篇讲述可解释性的中文综述文章机器学习模型可解释性方法.应用与安全研究综述,对模型可解释性的相关知识有了进一步的了解.本文是阅读这篇综述的一些笔记以内容摘要. 0 引言 背景:虽然机器学习和 ...
- 第二课第二周第1-5节-基于树的模型用于医学预后
本周,我们将使用决策树(Decision Trees)构建我们的第一个机器学习模型.树(trees)在医学应用中非常有用的的原因是:1️⃣ 它们处理连续和分类数据的能力,2️⃣ 它们的可解释性以及训练 ...
- 模型可解释性-SHAPE
在算法建模过程中,我们一般会用测试集的准确率与召回率衡量一个模型的好坏.但在和客户的实际沟通时,单单抛出一个数字就想要客户信任我们,那肯定是不够的,这就要求我们摆出规则,解释模型.但不是所有的模型都是 ...
- 集成模型Xgboost!机器学习最热研究方向入门,附学习路线图
导读:本文介绍了集成学习中比较具有代表性的方法,如Boosting.Bagging等.而XGBoost是集成学习中的佼佼者,目前,一些主流的互联网公司如腾讯.阿里巴巴等都已将XGBoost应用到其业务 ...
- 机器学习训练建模、集成模型、模型评估等代码总结(2019.05.21更新)
这篇博客总结一些有关机器学习的模型代码与评价指标,力求一针见血,复制粘贴即可食用,hhhhhh,不定期更新 代码中使用的案例是pandas构造的dataframe型的数据,变量名为 dataframe ...
- Python集成机器学习:用AdaBoost、决策树、逻辑回归集成模型分类和回归和网格搜索超参数优化
最近我们被客户要求撰写关于集成机器的研究报告,包括一些图形和统计输出. Boosting 是一类集成机器学习算法,涉及结合许多弱学习器的预测. 视频:从决策树到随机森林:R语言信用卡违约分析信贷数据实 ...
- 【机器学习】集成学习之梯度提升树GBDT
Boosting方法的核心思想是对错分类的样本给予更高关注度,也就是样本权重,在提升树中与之对应的就是残差,在梯度提升树中就是梯度了. Regression Decision Tree:回归树 回归树 ...
最新文章
- 如何用计算机弹出ink sans,INKSANS模拟器PC
- 交互原型细节提升之路
- 怎么下载正版am_新买的笔记本电脑如何重装自带的正版Office学生版
- DOM方式进行的XML文件、Document、String之间的相互转换
- [开源]jquery.ellipsis根据宽度(不是字数)进行内容截断,支持多行内容
- mysqls压力测试怎么用_MySQL压力测试工具使用
- cv2 imshow窗口大小_cv2.imshow()图片无法显示
- Win32项目关于MessageBox参数的详细说明
- 5种你未必知道的JavaScript和CSS交互的方法
- python中利用opencv对图片进行缩放
- C#出题库项目的总结(1)
- 热议创新 众专家再谈 “中国企业如何创造”
- windows xp下Apache2.2.11整合Tomcat6.0.20(集群模式无集群模式)
- win7藏文打印部分文字乱码问题处理
- java 1.8 32位_JDK1.8 32位官方下载
- 公众号获取token失败_如何利用公众号获取电影引流?如何利用电影网站嫁接公众号?...
- HDU 6975 Forgiving Matching 快速傅里叶变换处理带通配符字符串匹配
- 【刷爆LeetCode】七月算法集训(14)栈
- R语言——数据清洗之缺失值处理
- 深度神经网络之Keras(三)——正则化、超参数调优和学习方向
热门文章
- 微信小程序API全局域名配置设置
- 头歌教学实践平台(高级程序语言设计(c))
- 法国计算机专业怎么样,法国计算机科学专业大学排名(2020年USNEWS)_快飞留学
- 最后一夜的温柔与爱情无关
- 【调剂】山东科技大学赵子亮教授团队(智能新能源动力创新团队)招收调剂研究生...
- 用计算机听音乐和看电影的ppt,小学信息技术川教版五年级下册第六课 用计算机听音乐和看电影教案...
- 虚幻引擎 制作像素化消散效果(下)
- 遗传算法(GA)计算二元函数极值(C语言实现、matlab工具箱实现)
- 在页面右下角加上悬浮图片
- 坚果Pro续航能力超强?如果这个东西质量不合格也白搭