【模型迭代】拒绝推断(RI)
问:项目刚上线,贷后表现也有了,能不能开发评分卡?
问:一般评分卡开发这块怎么处理呢?就只针对准入审批通过的客群吗?
问:你们业务中,是直接用模型通过的样本去迭代模型吗?
问:拒绝推断有什么好方法吗?
本文关键词:
① 冷启动 ② 选择偏差 ③ 模型失效 ④ 样本补齐 ⑤拒绝推断
评分模型开发中,模型训练非常依赖样本的选择。负样本不足,预测效果不好;负样本太多,则可能过度学习,导致过拟合;部分特征的分布随业务或时间的变化而发生变化,也会导致模型训练的结果发生偏移。
我们先来思考三个场景:
场景一:冷启动: 在业务初期,通常由于各种原因,风控需要冷启动,如果没有之前留存的或者外部协助开发的评分模型,那么就很难通过量化评分的手段参与授信决策。这时,就需要多维度的策略规则去筛选初期用户,类似准入规则、反欺诈规则、风险名单、多头借贷、共债信息等。这个时候的审批策略,可能不一定行之有效,相当于随机选择接受的客户,那么接受样本和拒绝样本的分布所差无几,这种情况下,EDA探索分析后如无明显问题,首批有贷后表现的样本,是可以直接投入模型开发的。
场景二:规则影响 在业务开展一段时间后,信贷审批流程便会逐步添加包括反欺诈识别、策略规则、PRE_A过滤、授信评分、人工审批等内容。随着数据共联的加强、数据维度的丰富、风控策略的完善,审批环节的前置策略和规则在整个授信体系的作用愈加明显。这个时候,通常为了开源节流,我们会以漏斗模型和决策树模型去设计信贷风险体系。那么强规则拒绝的客户,便不再需要通过评分模型的检测。这就导致通过模型的用户,已经经过了层层筛选,样本本身携带的强负样本信息,也经过了层层过滤,那么,假如这个时候开发评分卡,虽然模型所选的特征基本不与前置规则重叠,特征分布不会受到影响,但Label中的负样本占比,会大大降低。导致本应有的极差的那些坏客户的信息,没有在模型中出现。这就引出本文第二个问题:“一般评分卡开发这块怎么处理呢?就只针对准入审批通过的客群吗?”
场景三:模型迭代 业务进行的很顺利,模型评分的作用越来越强,随着时间推移,模型效果会随之下降,就需要迭代模型,即重新选择样本,重新训练模型,重新设置评分区间,重新决策。因为只有模型审批通过的客户才会有贷后,才会有Label,所以,此刻在用这部分样本进行建模,受影响的不单单是负样本数量的占比、负样本信息的收集,整个模型的特征分布,也会发生很大的偏移。
综上几个场景,我们发现:在做申请评分卡时,受业务阶段、授信流程、策略规则、通过率、样本迭代等的影响,如果建模仅基于具有已知性能的可接受总体,则申请评分卡具有自然发生的选择偏差。自然样本信息多多少少会有损失,机器学习模型效果偏移。因此,在每一次模型开发中,都需要检测样本的分布,必要的时候调整负样本占比,使其尽可能降低偏差,达到均衡的效果。特征分布合理,且无缺失,好坏样本信息得以完全学习,才会训练一个预测能力强稳定性较高的模型。
那么,为了解决选择偏差问题,申请评分卡模型应该包含两个人群。 这意味着需要推断拒绝的未知性能,我们使用拒绝推断(RI)方法来完成,也就是拒绝假设、拒绝演绎。
评分卡开发过程中,拒绝推断的大致步骤为:
- ① 基于接受样本构建模型 :BM(Base_Model)
- ② 使用拒绝推断技术推断拒绝样本违约概率
- ③ 将接受样本和拒绝推断后的样本合并成一个数据集:DS(DataSet)
- ④ 在DS上构建一个新模型:FM(Final_Model)
- ⑤ 验证FM
- ⑥ 根据FM创建完整的评分卡模型
拒绝推断是对一种“非随机性缺失数据”(MNAR)的处理形式。 总体来说有两种广泛的技术:分配法和增强法,一种依赖经验,一种依赖算法。两种技术还可以选择不同的方法。如下图所示:
下面,着重介绍几种比较流行的方法,即增量下探、比例分配、简单扩展、模糊增扩展、分段扩展等。
(一)增量下探法
下探法就是在生产环境中某一段时间内,接受所有申请,积累全量数据。或者将模型评分cutoff的取值下移部分,让更多的的申请通过审批。等该批客户有了贷后表现,直接选择全量样本建模,这样会缩小样本数据和未来要预测的数据在分布上的偏差。下探法可能要承受较大的坏账损失,有点花钱买数据的感觉,一般银行和机构通常不这么做,所以一般可用于通过率较高,坏账率对应也高的现金贷业务中。之前现金贷火爆的时候,行业监管还没到位,加之催收力度很强,所以坏账可控,收益也就高。那时许多现金贷公司的风控手段极其简陋,基本是验证身份、过一下黑名单等简单措施,通过率极高。这样的环境相当于提供了一个天然的数据收集实验场,各类样本的信息都比较完整。实际生产环境表明,增量下探的效果很明显。
(二)分配赋值法
赋值法是指通过外部数据或人工的方法,为拒绝样本打上好坏标签。比如比例分配;比如通过查看外部数据发现此人在其他机构发生过很严重的违约行为,或者在多家机构被打上了各种风险名单的标签,基于规则直接标记。如果数据采集的成本不高,采集难度不大,这种方法可行且有效。(如:有些机构的数据服务是以年费形式,这样成本便可忽略不计),不过,这种方法对增加标签定义维度的要求较高。另外还可以让审批人员对拒绝客户进行电核复核,标记出认为违约可能性高的样本,不过此种方法需要花费很多的人力,且加入了主观的人为因素,容易造成偏差。
例:比例分配:
(三)扩展法
那么, 对模型师而言,最为常用的技术便是模型扩展法,基于数据,创造数据。基本思路为先用接受样本建模,然后预测拒绝样本的好坏,最后将拒绝样本和接受样本放在一起重新建模。模型扩展法有以下几种。
1、简单扩展法
步骤:
- ① 在有贷后表现的样本上建模。
- ② 用此模型预测拒绝样本违约概率吧,设置阈值ppp,大于ppp为坏,小于ppp为好。阈值选择的依据为拒绝样本的坏账率比接受样本的坏账率高,一般为2-5倍,当然要结合客群特征、通过率等因素综合考虑。该方法的一个缺点是,拒绝样本的分类有一定的随机性。
- ③ 将完成预测的拒绝样本和真实贷后样本混合,重新建模。
- ④ 重复②③,至模型参数收敛,一般迭代两三次就能得到收敛模型。
2、模糊扩展法
模糊扩展法并不是将拒绝样本直接标记为好或坏,而是根据打分概率将一个拒绝样本拆分成一个好样本和一个坏样本,打分概率为权重。具体可以按以下步骤进行:
- ① 在有贷后表现的样本上建模。
- ② 用此模型为第iii个拒绝样本打分Pi(bad概率),然后将该拒绝样本拆分成一个坏样本和一个好样本,坏样本的权重为Pi,好样本的权重为1-Pi,而每个接受样本的权重均设置为1,这时可以根据权重计算坏账率。还可以调整拆分后的拒绝样本的权重,使拒绝样本的坏账率是接受样本坏账率的F倍,比如坏样本的权重调整为PiC/(PiC+1-Pi),好样本的权重调整为(1-Pi)/(Pi*C+1-Pi)。
- ③ 将完成预测的拒绝样本和真实贷后样本混合,重新建模。
- ④ 重复②③,至模型参数收敛。
3、分段扩展法(Parcelling)
上述所说的简单扩展,将拒绝样本按照某个阈值采用一刀切的方式分成好样本和坏样本,这样的切分使拒绝样本的违约分布和接受样本差别较大,而分段扩展正好修正这一缺点。步骤如下:
- ① 在有贷后表现的样本上建模。
- ② 然后为接受样本和拒绝样本打分score,下图为每个评分区间内接受样本的违约分布和拒绝样本的数量:
接下来,按照各分数段对拒绝样本打标签。一般拒绝样本的违约率高于接受样本,这里假设拒绝样本的违约率是同分数段接受样本的2倍。分段之后,按照简单扩展法中的做法继续进行。下图为打好标签的拒绝样本的违约分布:
- ③ 将②中打好标签的拒绝样本和接受样本放在一起建模。
- ④ 重复②③,至模型参数收敛。
4、其他方法
除了上述几种方法,还有一些其他方法,比如可以通过近邻(Nearest Neighbor)算法预测拒绝样本的好坏,然后用拒绝样本和接受样本建立模型。
不难想到,手段越复杂,推断效果越不明显,甚至比原有模型效果更差。排除成本环境等因素的考虑,最直接高效的方法,仍然是增量下探,将更多的坏样本放入模型。其次,采用半赋值半扩展的方式,也许也会收获较好的效果。
完成拒绝推断后,检验效果的方式依旧是我们熟知的分段Bad_rate&方法以及KS、PSI等指标,不再赘述。
就本文主要内容做如下两方面的总结:
1)什么时候做拒绝推断?:
① 前置规则少,或者前置策略不是很有效的情况下,接受样本和拒绝样本的分布应该差别不大,就没必要做拒绝推断。
② 相反,前置审批策略越有效,接受样本和拒绝样本的特征分布差别就越大,那么就越有必要做拒绝推断。
2)拒绝推断采用什么方法?:
按照效果排序优先级:
① 首先考虑增加真实业务样本,在老板允许的情况下,增量下探,探个究竟。
② 其次尽可能分配赋值,基于强特征和比例采集等方法打出标签,效果也很欣慰。
③ 采用简单扩展、拆分扩展、分段扩展的方式,基于样本,训练样本。
④ 最后,做一些半监督或者无监督的尝试。
其实,拒绝推断一直存在争议,有人认为没必要做,有人认为有必要做。但在条件允许的情况下,比如若有充足的数据和时间,尝试做一下,两者做出来的结果做个对比,总不是坏事。另外做拒绝推断也是为了更多更准确地找出好客户,降低成本,提高收益。
【参考】
- ① 大数据建模的一点一滴,作者:小石头 https://mp.weixin.qq.com/s/RnQXPUBJe8-NUvtPDho0vw
- ②申请评分卡模型中的拒绝推断(RI)技术,作者:猪逻辑公园 https://blog.csdn.net/qq_15111861/article/details/84663490
- ③ 研习社群成员
对数据分析、机器学习、数据科学、金融风控等感兴趣的小伙伴,需要数据集、代码、行业报告等各类学习资料,可添加微信:wu805686220(记得要备注喔!),也可关注微信公众号:风控圏子(别打错字,是圏子,不是圈子,算了直接复制吧!)
关注公众号后,可联系圈子助手加入如下社群:
- 机器学习风控讨论群(微信群)
- 反欺诈讨论群(微信群)
- python学习交流群(微信群)
- 研习社资料(qq群:102755159)(干货、资料、项目、代码、报告、课件)
相互学习,共同成长。
【模型迭代】拒绝推断(RI)相关推荐
- 风控建模中的样本偏差与拒绝推断
风控业务背景 幸存者偏差(Survivorship Bias)是一个广泛存在的逻辑谬误.我们在进行统计的时候,可能会忽略样本的随机性和全面性,用局部样本代替了总体样本,对总体的描述出现偏差,从而得出错 ...
- 让模型理解和推断代码背后的意图是预训练模型的核心挑战 | NPCon演讲实录
分享嘉宾 | 卢帅 整理 | 王子彧 出品 | CSDN(ID:CSDNnews) 2023 年 3 月 25 日下午,在 CSDN 与<新程序员>联合主办的"新程序员(NPCo ...
- 风控建模七:拒绝推断
风控建模七:拒绝推断 1.为什么要做拒绝推断 解决建模时的样本偏差问题 方便策略下探时风险评估 2.拒绝推断的几种方法 开放部分测试集 借助外部数据 简单数据扩充 打包法 模糊扩增法 聚类法 3.如何 ...
- UA MATH571A 多元线性回归I 模型设定与推断
UA MATH571A 多元线性回归I 模型设定与推断 模型设定 最小二乘法(Method of Least Square) 系数 Mean Response and Residual 多元回归的AN ...
- 评分卡建模—拒绝推断
首先,大家都知道我们的A卡模型时建立在历史数据之上的,而很多被婉拒的用户没有被纳入到评分卡建模的数据集中,这就造成了建模数据的偏差,因此有必要利用拒绝推断来预测这些被婉拒的客户的0-1标签,并纳入到建 ...
- 最强云硬盘来了,让AI模型迭代从1周缩短到1天
虽然我们已经进入大数据时代,但多数企业数据利用率只有10%,数据的价值没有得到充分释放.面对海量数据爆炸式的增长和发掘数据内在价值的巨大需求,拥有弹性伸缩.无限扩展能力的云存储正发展成为时代的智能数据 ...
- 【机器学习】机器学习模型迭代方法(Python)
一.模型迭代方法 机器学习模型在实际应用的场景,通常要根据新增的数据下进行模型的迭代,常见的模型迭代方法有以下几种: 1.全量数据重新训练一个模型,直接合并历史训练数据与新增的数据,模型直接离线学习全 ...
- 百度大脑 EasyEdge 推出端云协同服务,大幅提升本地部署模型迭代效率
在实际业务场景中越来越多的企业选择将模型部署在本地进行应用,比如部署在本地服务器上或者智能摄像头等硬件设备端上.当本地设备越来越多或者模型频繁迭代时,如何快速高效的完成本地设备上的模型部署和迭代成为了 ...
- [书蕴笔记-2]使用word2vec模型迭代获取标签
使用word2vec模型迭代获取标签 前言 整体索引在此 :书蕴--基于书评的人工智能推荐系统 之前把书评预处理并将每本书训练出了word2vec模型,本篇博客针对如何提取书籍的标签具体展开描述. 思 ...
最新文章
- canvas绘制的文字如何换行
- 读excel图片到数据库和上传图片到数据库
- bt5重启网卡命令_Linux文件的常用操作命令
- Azure 和 Linux
- [洛谷P1341]无序字母对
- linux 快组描述符,Linux 进程描述符 task struct
- python PHP 多进程,python多进程的用法示例(代码)
- 理财产品利息可每天提取吗?
- 揭秘微信朋友圈这种信息推流背后的系统设计
- Atitit 文档的格式演变attilax总结
- tomcat:学习:一:(第1次操作:成功)手机下载 tomcat 服务器里面的文件+tomcat 安装配置使用
- 一些用JAVA实现的小题目
- vs2010中svn使用教程_VS2010中使用ankhSVN | 学步园
- 天津理工大学和天津工业大学计算机考研,天津工业大学和天津理工大学,谁的实力更强?谁的录取分数更高呢...
- 小程序设置appId
- 小程序云开发点赞案例实现及环境vant插件配置等问题
- git an error occurred
- 《易经》里的28条法则与64个大智慧
- 80老翁谈人生(40):加快步伐,坚定信念,继续前行
- 一款非常nice的国产U盘启动制作工具——Ventoy
热门文章
- 如何判断基因组的重复区域_Nat Comm. | 15万人类基因组中多核苷酸变异(MNV)的起源及功能研究...
- 单片机代码怎么读懂_单片机程序员的面试经验
- postgre 没有主键自增ma_PostgreSQL 主键自增解决方案
- 登录 googlecloud,链接数据库
- python os.system执行shell 命令
- mongodb update
- adguard没有核心 core no_Spring 核心组件原理解析
- gtk移植到嵌入式_物联网时代的盛行,应届毕业生是学嵌入式好呢,还是安卓或ios呢?...
- Leetcode - 347. Top K Frequent Elements(堆排序)
- BPMF论文辅助笔记: 固定U,更新θU 部分推导