风控模型黑箱可解释,试下这个方法来演示

news/2024/5/17 18:46:55/文章来源:https://blog.csdn.net/weixin_45545159/article/details/126652646

模型的开发,目前在互金领域场景中因为变量多,开发周期短,目前用得最多的就是XGB、LGB这类的机器学习模型。
比如我们之前跟大家输出的关于个人信贷反欺诈评分卡的开发内容里,我们用的就是lightgbm来建模的,相关的操作细节如下:
在这里插入图片描述

在这里插入图片描述

关于这一类机器学习模型,虽然说有黑箱的内容在里面,但常规上我们还是可以用特征重要性,也就是feature_importance来查看特征对模型重要度的贡献:
在这里插入图片描述

                                                   【图:绘制lgb模型的特征重要性的排序图】

关于模型特征可解释性的的内容,除了如以上提供的模型都有importance这一接口外,目前常用的还有SHAP这一个模型可解释性的内容,今天我们跟大家讲讲这个内容,而且还会实操一个只能用SHAP来演绎模型特征重要性的算法。
一.SHAP介绍
可解释机器学习在这几年慢慢成为了机器学习的重要研究方向。作为数据科学家需要防止模型存在偏见,且帮助决策者理解如何正确地使用我们的模型。越是严苛的场景,越需要模型提供证明它们是如何运作且避免错误的证据
关于模型解释性,除了线性模型和决策树这种天生就有很好解释性的模型意外,sklean中有很多模型都有importance这一接口,可以查看特征的重要性。如这里提到的特征重要性的内容:
在这里插入图片描述

关于特征的重要性,比如上面我们用xgboost这种集成模型时是用feature_importance方法的。那对于某些算法,比如异常检测中的孤立森林算法,只能用shap value来表达。

二.如何实现SHAP
实现SHAP,可以直接调用SHAP模块就能实现。本次在实操过程中,我们用之前跟大家介绍过的孤立森林这个算法,来特别实现,因为孤立森林接口直接调不出feature_importance的。

如上所述,shap是Python开发的一个"模型解释"包,可以解释任何机器学习模型的输出。其名称来源于SHapley Additive exPlanation,在合作博弈论的启发下shap构建一个加性的解释模型,所有的特征都视为“贡献者”。对于每个预测样本,模型都产生一个预测值,shap value就是该样本中每个特征所分配到的数值。
在这里插入图片描述

Python中shap值的计算由shap这个package实现,下面我们对训练出的base_iforest模型,计算其shap值。先引用package并且获得解释器explainer,再获取各个样本的shap值,然后调用summary_plot绘制重要性排序图,可以看到绘制出的图表类似xgboost的feature_importance图,shap value可理解为一个特征对目标变量影响程度的绝对值的均值作为这个特征的重要性。
在这里插入图片描述

在这里插入图片描述

关于本文所提及的机器学习模型相关的数据集跟代码实操内容,可以同步至知识星球后台,查看完整版本内容,欢迎星球同学移步到知识星球查收完整内容:
在这里插入图片描述

~原创文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_381788.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式--简单工厂方法

简介 简单工厂模式属于创建型模式,是工厂模式的一种。简单工厂模式通过定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类,这个父类具有共有的属性和方法。因在简单工厂模式中用于创建实例的方法通常是静态方法,因此也称为静态工厂方…

SpringBoot整合Flowable工作流引擎框架

Flowable工作流引擎框架介绍 一个Java编写的轻量级业务流程引擎,为开发人员、系统管理员和业务用户提供工作流和业务流程管理(BPM)平台。不仅包括BPMN,还有DMN决策表和CMMN Case管理引擎,并且有自己的用户管理、微服务…

新机器(禁止上网)安装vscode及公钥方式登陆linux

1.1 新机器(禁止上网)安装vscode 注意:以下三个程序版本必须一至。 1) vscodeWin10安装程序 2) win10插件(ssh客户端) 3) linux里vscode-server-linux-x64.tar.gz(ssh服务端)方法一:从原桌面直接copy文件夹(绿色)转移到新机器 方法二:安装新的VSCodeUserSetup-x64-1.70.2.ex…

macOS分发app打包+签名+公证+添加票据+生成dmg文件

1.打包 网上有很多使用命令行的打包的方式大家可自行查找,以下是使用Xcode进行打包. 首先配置证书要配置Developer ID Application证书然后使用的是Xcode进行打包:Product->Archive 这种打包方式的好处是省去了签名的过程,但是用网上其他人的命令查看签名时候还是未成功&a…

lararvel学习文档

学习文档 http://laravel.p2hp.com/ http://laravel.p2hp.com/cndocs/9.x/eloquent#generating-model-classes laravel9.x https://learnku.com/docs/laravel/9.x laravel8.5 https://learnku.com/docs/laravel/8.5 laravel8.x https://learnku.com/docs/laravel/8.x …

CentOS7安装MySQL(完整版)

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。 1 下载并安装MySQL官方的 Yum Repository [rootlocalhost ~]# wget -i -c http://dev.mysql.com…

最新小红书数据 小红书爬虫 小红书接口 xhs 小红书算法 小红书api

最新版小红书APP接口,需要交流的朋友联系,少量勿扰,谢谢! 只取APP公开数据,不做违法事情,如有侵犯贵公司,请联系删除! 博主详情 笔记详情 博主笔记列表 笔记评论 关键词搜索等等接口已部署,支持并发,可测试!

openmmlab 教程1-安装

文章目录openmmlab 教程11. 安装1.1 介绍1.2 安装1) 安装mmcv-full(建议)2) 安装mmseg3) mmcv-full和mmcv区别1.3 验证安装成功1) 源码安装2) pip 安装openmmlab 教程1 官方文档 安装 MMCV — mmcv 1.6.1 文档 依赖 — MMSegmentation 0.27.0 文档 笔记链接 https://gitee.co…

windows安装JDK与系统变量配置

目录 问题现象: 解决方法: 1、安装 2、系统变量配置 2.1、JAVA_HOME 2.2、Path 2.3、CLASSPATH 问题现象: 今天梳理了一下JDK的安装和系统变量配置! 解决方法: 1、安装 双击下载好的jdk安装包: 安装…

【区块链 | 默克尔树】如何利用Merkle实现空投,像Uniswap一样使用Merkle执行Airdrop

如果你想直接跳过如何实现 Uniswap Airdrop,请继续阅读以下部分:创建 Merkle Airdrop 的步骤 图片来自 https://ccoingossip.com/what-is-airdrop-in-crypto-world/ Airdrop Airdrop 是指项目决定向一组用户分发代币的事件。以下是实现 Airdrop 的一些潜在方法: 1. 管理员…

2.1 Elasticsearch DSL搜索-数据准备

自定义词库建立索引dsl_search(名字随意)手动建立mappingsPOST /dsl_search/_mapping { "properties": { "id": { "type": "long" }, "age": { "type&quo…

High Performance Computing 综述

文章目录OverviewHeterogeneous ComputingMPI (Message Passing Interface)ConcurrencyMulti-ProcessingIPCMulti-ThreadingCPUCPU InfoARM CPU featuresCPU BenchmarkSysbenchhtop压力测试CPU Instructions & IntrinsicsAssemblySIMDIntel MMX & SSEARM NEONConverter…

DoozyUI⭐️十六、Progressor Group:可视化帮手,进度条组自动求平均值

文章目录 🟥 效果展示🟧 实现过程1️⃣ 建立四个进度条2️⃣ 建立进度条组Progressor Group3️⃣ 运行看看效果吧Progressor Group,进度器组,它可以自动计算所有引用的进度器的进度值的平均值。 🟥 效果展示 下图Gif所示,下方的共5个进度条,下方的4个共同控制了最上…

redux太繁琐?一文入门学会使用mobx简化项目的状态管理

一、mobx基本介绍 mobx是一个简单、可扩展状态工具,相比redux,具有以下特点 简洁、无模板代码(redux需要写大量模板代码)响应式数据,可直接修改(redux需要保证不可变)可直接处理异步&#xff…

Ubuntu1604从0安装CUDA

港澳 2020年12月31日 目录通过安装CUDA来安装驱动先安装驱动禁用第三方驱动、卸载初始驱动、关闭图形界面再安装CUDA卸载CUDA安装Tensorflow安装VSCode和Requirements包InternalError: Dst tensor is not initialized实时监测GPU状态demo运行结果重要参考通过安装CUDA来安装驱动…

自动控制原理6.5---复合校正

参考书籍:《自动控制原理》(第七版).胡寿松主编. 《自动控制原理PDF版下载》 5.复合校正 5.1 按扰动补偿的复合校正 如果在系统的反馈控制回路中加入前馈通路,组成一个前馈控制和反馈控制相组合的系统,只要系统参数选择得当,既可…

Nginx -- SSL模块

目录 一、什么是ssl证书 二、证书的作用 1.浏览器绿色安全标志 2.网站数据加密传输 3.安全标志获得访客信任 4.强大的加密等级保障 5.SSL证书帮助网站保护了用户和网站之间的任何数据的安全 三、SSL证书的类别 1.按照验证方式 2.按照一张SSL证书保护的域名数 3.按照 …

虚拟土地+VRGDA:一种可持续的元宇宙土地销售策略

元宇宙可能刚刚开始形成,但虚拟土地危机已经存在 30 年了。 有啥问题?在稀缺性方面,让虚拟土地过于接近实体土地会导致经济问题,从而扼杀游戏和虚拟世界的发展。 我在今年早些时候写了一篇关于这个话题的文章,并指出…

NettyNIO

什么是Netty Netty是由JBOSS提供的一个开源框架,现为Github上的独立项目,Netty是一个异步的、基于事件驱动的网路应用框架,用以快速开发高性能、高可靠性的网络IO程序。Netty主要针对于TCP协议下,面向Clients端的高并发应用&…

Hive中的数据倾斜优化

数据倾斜一.概述何为数据倾斜导致的问题二.优化group by 数据倾斜join 数据倾斜一.概述 何为数据倾斜 运行的过程当中,有多个Reduce,每个Reduce拿到的数据不均匀,其中有一个或几个拿到的数据远远大于其他reduce拿到的数量,此时任…