风控建模七:拒绝推断

  • 1、为什么要做拒绝推断
    • 解决建模时的样本偏差问题
    • 方便策略下探时风险评估
  • 2、拒绝推断的几种方法
    • 开放部分测试集
    • 借助外部数据
    • 简单数据扩充
    • 打包法
    • 模糊扩增法
    • 聚类法
  • 3、如何验证拒绝推断的效果
    • 坏账和分箱
    • 部分通过样本做验证
    • AB测试

1、为什么要做拒绝推断

解决建模时的样本偏差问题

在开发准入模型(A卡)的时候,我们开发模型用的是通过的有表现的样本,而我们使用模型是在进件样本上,这就导致了模型开发和使用上的样本偏差。这种样本偏差有什么影响呢,我们可以从两方面去看。
从样本维度上:
假设这样一个场景,在一万人的申请样本中,存在这么一小撮具有相同特征的人,假设有1000人,这1000人整体坏账水平非常高,假设能有50%,而之前策略精挑细选,优中选优在这1000人中选出了50人给予了放款,这50人在后期表现上也毫无意外地表现良好。此时,如果我们仅使用有放款表现的样本建模,这50人的标签就是好人,模型对这样一小撮人的判断就是优质人群。而一旦我们用这样一个模型替代了原策略,就会导致这50%坏账水平的1000人全部被放进来。如果我们能通过拒绝推断推演出在拒绝样本上,这一小撮人是非常坏的,那我们构建的模型就不会对这样一小撮人的判断产生大的偏差。
从变量维度上:
假设有一个区分度很强的变量var1,因为其效果很好,所以我们会在策略中或老模型中对它相当倚重(比如策略中会用var1拒绝很大比例的人,或者模型中var1重要性排名第一)。而如果我们在迭代新模型时,选用的是近期通过样本,那这些样本则都是经过了var1变量筛选过的样本,自然var1在这样的样本上区分度会相对弱很多,很可能导致var1变量无法入模,或者即便入模了重要性也很低。这就会导致我们新迭代的模型没有使用到var1这个最好用的变量,导致模型远未达到它应有的效果。
业务上通过率越低,这种样本偏差带来的影响越大,尤其是当风控收紧导致业务出现大规模缩量时,如果继续用通过样本来建模,那很有可能导致风控再次宽松后的风险不可控。

方便策略下探时风险评估

规则下探时:
假设现在业务的首要任务是放量,策略要做的就是对某些规则进行下探,比如之前模型通过3挡,现在想要打开通过5挡,而4-5挡的人之前都是我们拒绝的人,表现根本看不到,如何评估这两档人群的风险呢。如果能有合理的拒绝推断,就能够对拒绝人群的风险进行一个估算。
替换评分卡时:
每次新评分卡迭代完成,我们都会做一个新老评分卡的swap分析(如图所示),其中老评分卡拒绝但新评分卡通过的人群,我们称之为swap-in人群(图中的Inf G人群),一旦用新卡替换老卡,这部分我们未知风险的人群就会被我们放进来,所以为了评分卡替换后风险的可估可控,我们需要拒绝推断来帮助我们评估swap-in这部分人群的风险水平。

2、拒绝推断的几种方法

开放部分测试集

最直接有效的拒绝推断办法就是开放一部分测试人群,给他们放款,直接看这部分人的表现怎样。根据需求放开的这部分人可以是所有进件人群,也可以是反欺诈规则之后的人群,还可以是模型决策时点的人群。一旦我们有了这部分测试人群的真实表现,就可以用来纠正建模样本偏差,或是用于策略风险估算。这种方式是最直接,最有效的拒绝推断方法,比任何其它理论推断都要精准,但这种方法缺点也很明显,一是成本高,因为放开策略往往意味着风险水平提高;二是定价不好定,这部分测试人群要怎么给他们定额度和费率呢,如果从节省成本的角度考虑,就给最低的额度,那这样会不会导致很对人风险暴露不出来呢。
开放测试方案建议把每天的测试准入人群缩小,但把时间线拉长,这样的样本可以平滑掉季节性振荡的影响。

借助外部数据

我们这边因拒绝而看不到表现的样本,可以借助外部数据源来反映他们的风险信息。比如中国互金协会和百行征信等等,都能够提供客户的历史逾期及多头信息,我们可以直接根据他们的数据来定义拒绝样本的好坏。
但使用外部数据同样存在很多问题,比如逾期口径不一致的问题,这个问题可以通过交叉对比外部数据标签和内部标签来解决,如果在表现样本上内外部标签的一致性足够高,那我们就可以直接使用。另一个问题就是坏容易定义但好不好区分,因为外部数据查不到并不代表这个客户每逾期,毕竟每个数据源覆盖度都有限,而且这个客户也可能是白户。

简单数据扩充

第一步:根据已知好坏的样本训练一个模型;
第二步:用这个模型给拒绝所有拒绝样本打分;
第三步:设置一个切点,对于所有拒绝样本,得分高于该切点标记为坏,反之标记为好;
第四步:把所有标记样本加入到表现样本中重新训练模型。
为了使结果更加可靠,我们可以对第3-4步进行迭代,知道模型对样本的打分基本稳定。

打包法

打包法类似于上面提到的简单数据扩充法,区别之处在于在给拒绝样本打好坏标签时,不单单使用一个切分点,而是根据模型打分,把样本进行分组,并依据每组的预期坏账水平对该组样本进行好坏标记:

如图中所示,我们根据表现样本得分分了十档,根据每一档表现样本的坏账率,我们对组内的拒绝样本按照该组的坏账率随机打标记,比如190-199这一档,坏账是10%,拒绝样本有7334个,就可以根据比例,随机取733个标记为坏,剩下的标记为好。但根据业务经验,拒绝样本的坏账水平一般会高于通过样本,所以我们在给拒绝样本打标的时候可以适当对通过样本的坏账率乘以2-4倍。

模糊扩增法

这种方法和简单数据扩增法类似,但不同于简单数据扩增法中根据切点简单粗暴打出好坏标签,模糊扩增法对每个拒绝样本一分为二,并分别乘以P(good)和P(bad)作为权重,步骤如下:
第一步:根据表现样本训练的模型对拒绝样本进行打分;
第二步:给出每个拒绝样本的好坏概率P(good)和P(bad);
第三步:把每个拒绝样本一分为二,一个好一个坏;
第四步:对好样本乘以权重P(good),对坏样本乘以权重P(bad),当然可以根据业务经验,对拒绝样本的坏权重进行2-4倍的放大;
第五步:把拒绝好通过样本放在一起构建新模型。

聚类法

聚类法不需要借助于任何已知模型进行打分,直接把有表现的好坏样本分为两类,分别计算每一类的的中心点;对于每个拒绝样本,分别计算它到两个中心点的欧式距离,并根据距离进行归类。

3、如何验证拒绝推断的效果

坏账和分箱

拒绝推断的效果验证一般也要根据业务经验来判断,一方面是看坏账率,通过拒绝推断推测出的拒绝样本的坏账率,一般来讲应该达到通过样本的2-4倍,才是合理的;另一方面就是看每个单变量的分箱变化和IV值的变化,一般加入拒绝样本后,单变量的IV值都是提高的。

部分通过样本做验证

在执行拒绝推断过程中,我们可以把通过样本分出70%来做拒绝推断模型,剩下的30%来当做验证集(即把这30%的通过样本当做已知表现的拒绝样本,用来验证拒绝推断的准确性)。

AB测试

当然最准确的方法还是用事实来说话,所以最准确的验证方法也需要线上表现来验证。可以在业务中开一定比例的灰度,用拒绝推断的模型来做决策,并通过对比通过样本模型效果,来量化拒绝推断模型的提升。


最后,欢迎参看风控建模其它相关内容:
风控建模一:好坏标签定义
风控建模二:建模方案拟定
风控建模三:变量筛选原则
风控建模四:逻辑回归评分卡开发
风控建模五:GBM模型开发
风控建模六:变量相关性分析及筛选方法

风控建模七:拒绝推断相关推荐

  1. 风控建模中的样本偏差与拒绝推断

    风控业务背景 幸存者偏差(Survivorship Bias)是一个广泛存在的逻辑谬误.我们在进行统计的时候,可能会忽略样本的随机性和全面性,用局部样本代替了总体样本,对总体的描述出现偏差,从而得出错 ...

  2. 风控ML[16] | 风控建模中怎么做拒绝推断

    00 Index 01 什么是拒绝推断? 02 为什么要做拒绝推断? 03 什么时候做拒绝推断? 04 做拒绝推断都有哪些方法? 05 验证拒绝推断效果的方式 06 总结一下

  3. 评分卡建模—拒绝推断

    首先,大家都知道我们的A卡模型时建立在历史数据之上的,而很多被婉拒的用户没有被纳入到评分卡建模的数据集中,这就造成了建模数据的偏差,因此有必要利用拒绝推断来预测这些被婉拒的客户的0-1标签,并纳入到建 ...

  4. 风控建模(七):催收评分卡的流程—上(所有评分模型与机器学习模型同样适用)

    关注公众号" 番茄风控大数据",获取更多数据分析与风控大数据的实用干货.   说了那么久的建模,今天应该跟大家分享一下实际建模的流程步骤了.   整套建模代码我分别用sas跟pyt ...

  5. 【模型迭代】拒绝推断(RI)

    问:项目刚上线,贷后表现也有了,能不能开发评分卡? 问:一般评分卡开发这块怎么处理呢?就只针对准入审批通过的客群吗? 问:你们业务中,是直接用模型通过的样本去迭代模型吗? 问:拒绝推断有什么好方法吗? ...

  6. 风控建模 python 知乎_风控建模基本要求及面试问题小结

    (本文是写给风控入门同学的建议!) 一 准备工作 根据核心职业CD法则,找工作前,你得先清楚自己有什么,自己要什么:面试单位有什么,面试单位要什么.就笔者近一年的学习及工作经验总结而言: 科班同学,最 ...

  7. 风控建模 python 知乎_智能风控:Python金融风险管理与评分卡建模

    推荐序 前言 第1章 信用管理基础 /1 1.1 信用与管理 /2 1.2 风控术语解读 /3 1.2.1 信贷基础指标 /4 1.2.2 信贷风险指标 /5 1.3 企业信贷风控架构 /7 1.4 ...

  8. 风控建模二:建模方案拟定

    风控建模二:建模方案拟定 引言 一.是否需要分客群建模 二.全时段建模一定更好吗 三.进件vs规则过件vs放款件 四.怎么选训练集 五.还原真实好坏比例 引言 好坏标签定义完成并整理好数据集并不意味着 ...

  9. 《Python金融大数据风控建模实战》 第6章 变量分箱方法

    <Python金融大数据风控建模实战> 第6章 变量分箱方法 本章引言 Python代码实现及注释 本章引言 变量分箱是一种特征工程方法,意在增强变量的可解释性与预测能力.变量分箱方法主要 ...

最新文章

  1. Java数组在内存中是如何存放的
  2. 极致的线上产品设计与终极数据分析工具,两者缺一不可(中)
  3. Windows Subsystem for Linux——[WslRegisterDistribution failed with error: 0x8007019e]解决方案
  4. UVa11729 - Commando War(贪心)
  5. MATLAB编程与应用系列-关于MATLAB编程入门教程的总体编写安排
  6. make xdb file.php,SCWS入门使用指南
  7. as的使用技巧及注意点
  8. micropython webrepl_4-5 MicroPython WebREPL 命令行交互环境设置-2 接入点模式
  9. 丘成桐:年轻学者要敢于“无法无天”
  10. jstat查看JVM的GC情况
  11. (react+dva+antd)知识点总结
  12. 运行 Pycharm,提示 Error running ‘xxx‘: Unexpected content storage modification: page=221; newRecord=112
  13. oracle数据库答辩,数据库课程设计答辩.ppt
  14. 保姆级教程,阿里云快速搭建个人网站
  15. 怎么把文字转换成语音?如何将文字变成音频呢?
  16. 通过源码简要分析之Android消息机制Handler、Looper、MessageQueue运行机制
  17. 高德地图web端js
  18. 艺赛旗RPA验证码处理系列(一):解决滑动加文字识别验证码
  19. 从零开始学习机器学习五:决策树算法特征工程
  20. IS-IS 邻居关系建立的过程(2-way 3-way)

热门文章

  1. vs2019的下载及安装教程
  2. 有备无患!浪擎全融合灾备云为企业数据信息保驾护航
  3. 游戏无法定位程序输入点于动态链接库怎么办?
  4. DevExpress XtraReports打印添加水印
  5. 使用java代码实现exchange类型的邮箱进行发送邮件
  6. 用户风格,Molly Guard和愚蠢的Web验证
  7. 华为三层交换机,三层交换机如何配置IP和路由表、vlan划分,trunk,eth-trunk
  8. 浏览器 console使用方法
  9. WORD BYTE 相互转换
  10. BugFree的7种解决方案各自的含义是什么?