银行风控建模

news2025/1/21 9:20:11

风控简介

所谓风险控制(风控),即针对用户风险进行管理规避的过程。

贷前阶段:

这一阶段的数据来源主要分为申请信息、历史消费信息、外部信息(例如多投借贷、公积金等)。常用风控模型包括:
1、用户响应风控模型:针对互联网,数据来源多样,类似漏斗模式,分析获客阶段的用户转化情况,如:引流、导流、注册成功等信息,以及在某个阶段进行埋点分析流失状态。
2、申请评分卡风控模型:即A卡,主要侧重贷前风控,在客户获取初期,建立申请评分卡模型,预测未来客户在放款后逾期与违约的概率。
3、申请反欺诈风控模型:识别欺诈风险高的客户,捕捉各类欺诈行为,如身份造假,非客户本人的行为等。一般分为第一方反欺诈和第三方反欺诈。
4、风险定价风控模型:根据客户的历史情况分析,应该制定多少初始额度和初始利率比较合适。
5、用户价值风控模型:在风险评分难以决策的灰分区域,制定置入置出策略,预测客户在开户后能够为机构带来潜在收益。在相同风险等级客户里,可以筛选收益等级高的客户,最大化挖掘其收益潜力。

贷中阶段:

和贷前阶段不同,这个阶段用户已经有过至少一次的还款行为,所以在数据维度会加入借贷数据,进入到贷中客户管理阶段。常用风控模型包括:
1、行为评分卡风控模型:也就是我们常说的B卡,通过分析不断去挖掘客户的各种需求,去推荐一些差异化的信贷产品,主要是给我们的客户交叉销售产品和提额。
2、交易反欺诈风控模型:交易阶段,识别一些羊毛党刷单、薅羊毛和套现行为。
3、客户流失风控模型:对客户流失的原因进行分析,提前知道哪些客户会流失,及时采取挽回措施。

贷后阶段:

经过以上两个阶段,还有一小部分用户会逾期进入催收阶段。常用风控模型包括:
1、催收预警风控模型:预测出来一些轻度逾期的客户,这类客户可能只是单纯的忘记还款而已,这个时候就不需太多人工催收参与进来,先进行短信提醒等简单的催收工作即可。
2、还款率预测风控模型:预测经过催收之后,最终收回的欠款比率。
3、迁徙率模型:评估客户短期内会不会违约,可以预测逾期的人群从轻度逾期发展到重度逾期的概率。
4、失联修复风控模型:逾期阶段,客户本身联系不上,通过数据库挖掘新的联系方式(如,身边的亲戚朋友等),修复客户失联状态。

一、好坏样本定义

好坏样本的定义需要根据实际的业务需求进行界定,而不是存在逾期就界定为坏样本(由于收益与风险的正比关系,银行为了找到平衡,不会认为所有发生过逾期的客户都是坏客户,并且“适当”的逾期不仅不会带来损失,反而带来了可观的逾期利息收入),所以对于银行来说,他所关注的坏客户是坏到某一程度,也就是逾期等级较高且不还款的客户。

Vintage分析(账龄分析)用于确定合适的表现期,即确定有多久表现期的客户能纳入模型。(随着账龄的变化,贷款逾期的变化情况,贷款逾期趋于稳定后,则可作为表现期,比如经过6个月);滚动率分析用于定义客户的好坏程度(逾期状态为M4的客户,几乎都会进一步恶化,则可将M4作为坏样本)。

1.2 名词定义

假设有一个人在2021年4月12日上午10点8分在网络平台上借了一笔1万元的信用贷款,以等额本息的方式在未来12个月进行偿还。
在这里插入图片描述
1.观察点(obs_date):客户贷款的时点(2021年4月12日上午10点8分)。
我们用截止到贷款申请时点过去一段时间的数据去预测客户未来逾期的可能性。
2.观察期:用来生成客户特征(自变量)的时间区间。
3.表现期:用来定义客户好坏的时间区间。严格来讲,分期12期的客户只有在所有钱都还完后才能定义好坏。
但是通过
Vintage分析
可以看出放款客户在经过多久后,该变坏的已经变坏,剩下的基本都能按时还款了,从而可以缩短表现期的时间,增加能进入建模的客户数量。
**4.表现点:**截止到多长时点的客户能被定义成“好客户”和”坏客户“。
5.账龄MOB(Month on Book):资产放款月份。
MOB0:放款日至当月月底,例子中指2021年4月12日到2021年4月30日。
MOB1:放款第二个月,例子中指2021年5月1日到2021年5月31日。
MOB2:放款第三个月,例子中指2021年5月1日到2021年5月31日。
MOB3:放款第四个月,例子中指2021年6月1日到2021年6月30日。
依此类推,
MOB12:指放款第13个月,例子中指2022年3月31日到2022年4月30日。
如果产品是12期的,那么该资产的生命周期是12期,MOB最大到MOB12。如果产品是24期的,MOB最大到MOB24。

**6.逾期:**客户未能在应还款日全额偿还当月应还款额,那么这个合同就产生了逾期。

7.逾期天数DPD(Days Past Due)
定义:客户到了应还款日还未还款,逾期天数为应还日次日起到实还日(含)期间的日数,如客户当期未还款无实还日,则取数据统计日取代实还日。
表达方式:DPDN+表示逾期天数≥N天的客户,如DPD60+表示逾期天数≥60天的客户。
示例:
在这里插入图片描述
即客户在第一个还款日(2021年5月12日)未还款,那么2021年5月13日即为逾期一天,客户在5月17日还款,该客户首逾5天。
其他说明:
分析时按需求可采用任何逾期天数,如逾期3天/7天/15天/30天等。
分析时按逾期天数设定取决于入催方式及催回率。
8.逾期期数
计算方式:以指定的逾期天数作为逾期一期,如逾期1-30天对应M1、逾期31~60天对应M2、以此类推,则逾期期数和逾期天数有必然对应关系,可以通过逾期天数直接计算逾期期数(注:不同的机构划分可能会有差异)。
定义:自应还日次日起到实还日(含)期间的期数,如客户当期未还款无实还日,则取数据统计日取代实还日。
表达方式:
M0:正常资产,当前未逾期(也可用C来表示)。
M1:逾期1-30天,逾期一期。
M2:逾期31-60天,逾期二期。
M3:逾期61-90天,逾期三期。
M4:逾期91-120天,逾期四期。
M5:逾期121-150天,逾期五期。
M6:逾期151-180天,逾期六期。
Mn:逾期30n-29~30n天,逾期N期。
类似的,
M3+:逾期90天以上,逾期3期(不含)以上。
M4+:逾期120天以上,逾期4期(不含)以上。
M6+:逾期180天以上,逾期6期(不含)以上,也被称为呆账,会注销账户。
Mn+:逾期3*n天以上,逾期n期(不含)以上。

9.逾期率
订单笔数口径:逾期率=逾期订单笔数/总放贷订单笔数
金额口径:逾期率=逾期剩余本金/总放贷本金。

1.3 账龄分析

1.目的:统计每个月新增放款后在每个MOB中的逾期情况,对比每月放款的逾期情况,判断策略、模型的有效性,分析客户的风险成熟期。
2.表现方式:Vintage曲线的横坐标是MOB,纵坐标是逾期率。逾期率可以计算金额维度的,也可以计算订单维度的。
3.逾期率计算及统计方式(金额):

  • 逾期率=逾期剩余本金/总放贷本金。
  • 分母是放款当月的总计本金,即合同金额,不随时间变动(不因结清或核销减少)。
  • 分子是逾期达到Bad定义时的本金余额,假设Bad定义为M3+,分子有两种计算方式。
    在这里插入图片描述
    4.逾期率计算及统计方式(订单笔数):
  • 逾期率=逾期订单笔数/总放贷订单笔数
  • 分母是放款当月的总计订单笔数,不随时间变动(不因结清或核销减少)。
  • 分子是逾期达到Bad定义时的订单笔数,假设Bad定义为M3+,分子同样有两种计算方式。
    在这里插入图片描述

1.3.2 Vintage表建立

现假设有一款对客费率36%的现金贷产品,产品期限12期,件均2千元,月均放款笔数在1万笔左右,还款方式为等额本息。
由滚动率分析可以得到逾期Mn+的客户几乎不会从良,从而可以定义坏客户为Mn+的客户。
本文假设该产品通过滚动率分析后得到逾期状态为M3+的客户几乎不会从良。
统计2021年3月到2022年5月(如今)该产品的放款表现,可得到如下表格:
在这里插入图片描述
按MOB的维度,把不同放款月份的订单重新整理,可得到如下表格:
在这里插入图片描述
把MOB维度的表绘制成折线图,可得到如下Vintage表:
在这里插入图片描述

由vintage表知:

①横轴表明客户的生命周期,体现了客户成熟过程中发生的变化。
②纵轴体现了拥有相同账龄的客户随时间改变而发生的变化,展示了不同月份的违约率变化情况。
③由于产品期限为12期,所以MOB(账龄)最长为12个月,反之也成立。
④数据统计的是Ever M3+逾期率,所以账龄MOB1、MOB2的都为0。
⑤放贷月份从2021年3月到2021年11月账户的逾期率都在降低,说明资产质量在不断提升,有可能是风控对该产品风险维度有了更全面的认识,风控水平在不断提升。
⑥不同月份放款的客户在经过9个MOB后逾期率M3+趋于稳定,说明账户的成熟期是9个月
⑦由于统计的是Ever M3+逾期率,所以单月的逾期率数值只增不减。

从该Vintage表知,如果我们现在想要建立信用贷前评分卡模型(A卡),有完整表现(放款走完了12 期)的放款月份是2021年3月到2021年6月。
如果只以有完整表现的数据建模,样本只能从放款月份是2021年3月到2021年5月的客户中取。
如果以账户成熟期9个月的数据建模,样本可以从2021年3月到2021年8月中取,多三个月的样本数据。
由于该Vintage表的数据是虚造的,看起来比较清晰。现实中有些放贷数据可能突然在某一个月由于流量、外部环境、风控策略调整等因素导致逾期表现突增。
比如有一个电商客群贷,产品期限12期、件均5,000元、对客费率36%的现金贷产品,Vintage表现如下(数据经过处理):
在这里插入图片描述
从该产品的Vintage表中可以看到2018年10月的放款逾期率相较于之前月份陡增,可能是由于由于流量、外部环境、风控策略调整等因素造成的。

1.4 滚动率分析

1.目的:为了让风控模型有更好的区分能力,我们需要确定逾期多久的客户定义为1(坏客户)。
因为有些逾期几天的客户很可能是忘记还款了,经过提醒就还了,并非没有还款意愿和还款能力。
如果所有有逾期表现的客户都定义为1,会导致模型的坏客户定义不清晰,从而影响模型的区分能力。
滚动率分析可以展示客户在不同时间段从一种状态向另一种状态转移的情况,从而可以分析不同逾期状态的客户发展变化情况。
2.定义:从观察点1之前一段时间(观察期1)的最坏状态,向观察点1之后一段时间(观察期2)的最坏状态转移情况。
在这里插入图片描述
3.滚动率分析具体步骤:
step1:选择观察点1,以观察点1为截止时间,根据还款计划表统计客户在观察期1(如过去6个月)的最长逾期期数,按最坏逾期状态将客户分为不同层次,如C、M1、M2、M3、M4+等。
step2:以观察点1为起始时间,统计客户在观察期2(如未来6个月)的最长逾期期数,按最坏逾期状态将用户分为不同层次,如C、M1、M2、M3、M4+等。
step3:交叉统计转移矩阵中的客户数。
step4:根据转移矩阵中的客户数统计占比。
step5:选择不同的观察点,重复step1~step4,对比滚动率数值。
例如,选择观察点为2021年6月30日晚上12点,取20,000个客户作为观察对象,统计这些客户从观察期1到观察期2的最大逾期状态变化情况。
首先统计出如下客户逾期状态的明细表(非真实数据):
在这里插入图片描述
根据逾期状态明细表统计出如下滚动率分析矩阵:
在这里插入图片描述

观察滚动率分析矩阵可知:
①观察期1中逾期状态为C(正常)的客户,在未来6个月里,有95.29%会继续保持正常状态,4.71%会转变为逾期客户。
②观察期1中逾期状态为M1的客户,未来有81.16%会回到正常状态,即从良率为81.86%,有11.96%依然是M1状态,6.88%会进一步恶化。
③观察期1中逾期状态为M2的客户,从良率为25.96%,有6.41%转化为M1状态,26.12%依然是M2状态,41.51%会进一步恶化。
④观察期1中逾期状态为M3的客户,从良率为19.77%,10.6%转化为M1和M2,11.46%依然是M3状态,58.17%会进一步恶化。
⑤观察期1中逾期状态为M3+的客户,从良率为3.36%,24.16%转化为M1、M2和M3,72.48%依然是M3+状态。

根据从良率数量来看,逾期状态为M3+的客户几乎不会从良,为了让风控模型有更好的区分能力,可以定义坏客户为逾期状态为M3+(逾期超过90天)的客户。
实际信贷建模时,由于业务规模、产品上线时间等约束,建模样本量可能较少,导致坏样本数量更少。
有时会人为划定逾期n天以上的为1(坏样本),未逾期的客户定义为0(好样本),逾期n天以内的定义为灰样本(舍弃)。
现在逾期多少天以上的客户定义为坏客户已经有了衡量的标准。需要确定有多久表现期的客户才能纳入评估。
假设一个产品的贷款期限是12期,我们是需要12期都走完才能定义一个客户是否为坏客户吗?
严格来讲,确实如此。否则,我们只能说到目前为止,该客户不是坏客户,但并不能知道在未来几期会不会逾期变成坏客户。
而且有些账户是在前几期就达到M3+,有些是在后几期才达到M3+。
因此,我们只需确定一个合适的表现期能够覆盖足够多的坏客户即可。vintage分析就是确定表现期设定多久比较合适。

1.5 因变量Y的确定

1.定义:因变量Y即为客户好坏标签变量。
2.方法:用滚动率分析定义客户的好坏程度,Vintage分析确定合适的表现期。
3.具体操作步骤:

  • step1:利用滚动率定义坏客户,例如上文案例中定义:逾期率为M3+的客户是坏客户。
  • step2:以M3+作为资产质量统计指标,统计Vintage数据表,绘制Vintage曲线,分析账户成熟期。例如上文案例确定:账户成熟期是9个月。
  • step3:表现期大于成熟期的样本可以用于建模,表现期小于成熟期的样本无法准确定义Y变量,暂时舍弃。

4.结论:根据上文案例知,表现期超过9个月,且M3+逾期的客户定义为1,表现期超过9个月,且未逾期的客户定义为0,其他客户舍弃。

二、建模流程

1)前期准备工作:不同的模型针对不同的业务场景,在建模项目开始前需要对业务的逻辑和需求有清晰的理解,明确好模型的作用,项目周期时间和安排进度,以及模型效果的要求。
2)模型设计:包括模型的选择(评分卡还是集成模型),单个模型还是做模型的细分,是否需要做拒绝推论,观察期,表现期的定义,好坏用户的定义,数据的获取途径等都要确定好。
3)数据拉取及清洗:根据观察期和表现期的定义从数据池中取数,并进行前期的数据清洗和稳定性验证工作,数据清洗包括用户唯一性检查,缺失值检查,异常值检查等。稳定性验证主要考察变量在时间序列上的稳定性,衡量的指标有PSI,平均值/方差,IV等。
4)特征工程:主要做特征的预处理和筛选,如果是评分卡,需要对特征进行离散化,归一化等处理,再对特征进行降维,降维的方法有IV筛选,相关性筛选,显著性筛选等。另外会基于对业务的深入理解做特征构造工作,包括特征交叉,特征转换,对特征进行四则运算等。
5)模型建立和评估:选择合适的模型,像评分卡用逻辑回归,只需要做出二分类预测可以选择xgboost等集成模型,模型建好后需要做模型评估,计算AUC,KS,并对模型做交叉验证来评估泛化能力及模型的稳定性。
6)模型上线部署:在风控后台上配置模型规则,对于一些复杂的模型还得需要将模型文件进行转换,并封装成一个类,用Java等其他形式来调用。
7)模型监控:前期主要监控模型整体及变量的稳定性,衡量标准主要是PSI,并每日观察模型规则的拒绝率与线下的差异。后期积累一定线上用户后可评估线上模型的AUC,KS,与线下进行比较,衡量模型的线上的实际效果。

三、常用模型

逻辑回归
决策树
集成学习(随机森林,Adaboost,GBDT,XGBOOST,LightGbm)

四、模型效果

4.1.评分卡建模之前的评估:

主要评估建模样本的稳定性,根据评分卡的目的不同,比较对象为总体或者近段时间的样本。

4.2.建模过程的评估

变量分箱的同时会计算WOE,这里是对WOE进行可解释性上的评估,包括变化趋势,箱体之间WOE差异,WOE绝对值大小等。
变量稳定性的评估psi

4.3 模型评估

  • 1)区分度:主要是KS和GINI指标,一般二分类都是用KS衡量模型的效果,这里着重理解KS的定义及用法,理解AUC和KS的关系,他们之间有一个公式,大致可以推断出你模型得到的指标是不是正确的。
  • 2)准确性:主要是ROC曲线和AUC指标,理解AUC的定义和用法,需要注意的是,在建模的过程无论是训练集、测试集,还是验证集AUC的值不能相差太大,最好的状态是三个值一致。

4.4 模型上线后评估

4.4.1 前期监控(模型上线后一个月内):

1)模型最后设定cutoff点后可以得出模型的拒绝率(线下拒绝率), 上线后需要比较模型每日的拒绝率与线下拒绝率。如果两者差异较大,说明线上的用户与建模的用户分布有很大差异,原因可能是没做拒绝推断,或者用户属性随着时间发生了偏移。
2)监控模型整体的稳定性,通常用PSI来衡量两个时间点的差异程度。模型的稳定性是一个需要长期观察的指标,可绘制月/周PSI变化趋势图来分析稳定性的变化,从中可以发现用户是否随着时间推移属性发生了变化,以便及时对模型做出合理的调整。
3)变量稳定度分析,目的是如果模型的稳定性不好,可利用变量稳定度分析来了解是哪些变量造成的。对于不稳定的变量要分析其原因,并对模型做出调整,弃用不稳定的变量或者找其他变量来替换。

4.4.2 后期监控(用户表现出了好坏程度):

此时已积累了一些线上的好坏用户,可做模型的线上效果的评估,评估的指标有AUC, KS, 基尼系数,如果模型的线下效果好,但线上效果却不理想,这个模型是要做优化的。
好坏用户的评分分布。绘制线上好坏用户的评分分布图,如果符合期望(高分段好用户占比多,低分段坏用户占比多),则说明模型的线上的区隔能力较好。
变量鉴别力分析。用线上的好坏用户来计算变量的IV值,评价变量的预测能力,预测能力不好的变量可以考虑弃用。

四、线上部署

评分卡的部署较为简单,因为评分卡将变量映射到了一个个区间及得分,所以在普通的风控决策引擎上就可以配置。像一些比较复杂的模型,比如Xgboost和lightgbm,一般是将模型文件转换成pmml格式,并封装成pmml,在风控后台上传pmml和变量参数文件,并配置好模型的阈值。Python和R开发的模型都可以用这种方式来部署。

五 其他

5.1 拒接推断

5.1.1 为什么要做拒绝推断

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

5.1.2 拒绝推断的几种方法

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

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

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

4)打包法
打包法类似于上面提到的简单数据扩充法,区别之处在于在给拒绝样本打好坏标签时,不单单使用一个切分点,而是根据模型打分,把样本进行分组,并依据每组的预期坏账水平对该组样本进行好坏标记:
在这里插入图片描述
如图中所示,我们根据表现样本得分分了十档,根据每一档表现样本的坏账率,我们对组内的拒绝样本按照该组的坏账率随机打标记,比如190-199这一档,坏账是10%,拒绝样本有7334个,就可以根据比例,随机取733个标记为坏,剩下的标记为好。但根据业务经验,拒绝样本的坏账水平一般会高于通过样本,所以我们在给拒绝样本打标的时候可以适当对通过样本的坏账率乘以2-4倍。

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

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

5.1.3 如何验证拒绝推断的效果

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

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

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

原文链接:https://blog.csdn.net/baidu_39413110/article/details/106430745

5.2 异常原因分析

5.2.1 通过率下降

针对这个场景,其实我们要回答以下问题:

  • 1)具体是具有什么样特征的用户导致了通过率的下降;
  • 2)主要的影响特征具体指哪些;
  • 3)基于通过率需要恢复到之前水平这个目标,策略模型需要如何调整;

分析的思路框架:

1)定位通过率降低的具体时间点&比对的样本(降低前群体,降低后群体)
2)定位拒绝率升高的部分归属哪类规则(准入,反欺诈,黑名单,信用)
3)定位拒绝率升高的具体子规则
4)根据确定的子规则,确立规则对应的特征具体哪个区间导致通过率的下降
5)根据定位到的特征,根据以下2个方向确立决策建议和策略调整方向

  • 方向1(特征在某个渠道,某类用户上比较集中时)
    进一步看进件占比较大的几个渠道,在上述特征上拒绝率差异
    根据找到的渠道和特征,建议前端获客时,尽量避免相应渠道的此类用户
  • 方向2(特征在几乎所有渠道的用户上都有所体现时)
    往往这种情况是公司对应的客群,某个特征整体迁移了,其整个分布已和原先进行策略阈值设定时发生了较大改变,这个时候如果目标是保持通过率恢复到接近原来的水平,则需要考虑重新划定相应特征的阈值,但我们需要控制风险水平不会有太大提升,因此需要此特征结合其他特征(有较强区分度的综合分数,风险评级,历史上表现较好的渠道等)来调整策略

5.2.2 逾期率上升

针对这个场景,其实我们要回答以下问题:

  • 1)具体是具有什么样特征的用户导致了逾期的上升;
  • 2)主要的影响特征有哪些;
  • 3)基于这些特征,策略模型需要如何调整,才能使逾期降下来;

分析的思路框架:

1)定位升高的具体时间点&用于比对的样本(当前时点客群B,之前时点客群A)
2)确定具体的逾期率指标是否因为本身定义或者一些业务操作而导致的变化
  从逾期指标可能影响的相关操作来看,假设上升的指标是入催率,那么首先可能需要考虑对到期用户的触达方式是否出了问题,短信通道是否正常,自动机器人催收是否正常,代扣是否正常等
  从逾期指标本身的口径角度出发,假设上升指标是dpd30+,且此指标口径是dpd30+在保金额/当期剩余在保金额,此时需要考虑分子对应的逾期用户的平均剩余在保和比对时点是否发生较大变化从而导致逾期上升,分母的角度主要是看当期剩余在保和比对时点相比是否发生明显下降;
3)分析逾期样本构成,定位逾期升高的客群大体的客群归属(客群B1);
用于比对的指标为逾期率差异
比对的维度方向,可以从以下角度:
  用户类型:首贷,复贷
  用户来源渠道
  用户类型&用户来源渠道交叉
  vintage上升对应的放款月(主要为了确认促使逾期升高的放款月份归属)
4)找到逾期客群与剩下客群有明显差异的特征
比对对象:当前时点致使逾期上升的客群B1和当前时点剩余客群B2
用于筛选两个客群差异较大的特征的指标:IV(对于y的标记将上述两个客群分别标记为2个类别)
比对的特征类别
  人口属性(性别,年龄,地域,婚育状态等)
  业务属性(分期金额,期数,针对一些特定场景分期,还可从场景本身特征提取一些因子,如汽车分期场景,车龄,车类型,车品牌类型,车价等)
  主要变量(入模和策略的主要变量)
5)结合差异较大特征和客户的客群归属类型,进行策略设定
6)由于分析的样本因为有贷后表现,具有一定滞后性,策略确定好后,可拿较近期的数据按照策略套用一下,以此预估对通过率的影响比率;

5.3 风控模型的冷启动

风控模型的冷启动是指产品刚上线时,没有积累的用户数据,或者用户还没有表现出好坏,此时需要做模型就是一个棘手的问题,常用的方法如下:
1)不做模型,只做规则。凭借自己的业务经验,做一些硬性规则,比如设定用户的准入门槛,考量用户的信用历史和多头风险,而且可以接入第三方提供的反欺诈服务和数据产品的规则。另外可以结合人审来对用户的申请资料做风险评估。
2)**借助相同模式产品的数据来建模。**如果两个产品的获客渠道,风控逻辑,用户特征都差不多的话,可以选择之前已上线那个产品所积累的用户来建模,不过在模型上线后需要比较线上用户的特征是否与建模用户有较大的差异,如果差异较大,需要对模型对一些调整。
3)无监督模型+评分卡。这种方法适用于产品上线一段时间后,表现出好坏的用户比较少,但需要做一个模型出来,此时可用线上的申请用户做无监督模型,找出一部分坏样本和好样本,用这些数据来做评分卡模型,当然这种模型准确性是存疑的,需要后续对模型不断迭代优化。

5.4 决策点(cutoff点)设定

规则只是判断用户好坏,而不会像模型会输出违约概率,所以设定决策点时需要考虑到规则的评估指标(精准率,查全率,误伤率,拒绝率),一般模型开发前会设定一个预期的拒绝率,在这个拒绝率下再考量精确率,查全率和误伤率的取舍,找到最佳的平衡点。好的模型能接受更多的好用户,拒绝掉更多的坏用户,也就是提高好坏件比例,所以可事先设定一个预期目标的好坏件比例来选择最佳的决策点。

5.5 模型稳定性

1)在数据预处理阶段可以验证变量在时间序列上的稳定性,通过这个方法筛掉稳定性不好的变量,也能达到降维的目的。筛选的手段主要有:计算月IV的差异,观察变量覆盖率的变化,两个时间点的PSI差异等。
2)异常值的检查,剔除噪声,尤其对于逻辑回归这种对于噪声比较敏感的模型。
3)在变量筛选阶段剔除与业务理解相悖的变量,如果是评分卡,可以剔除区分度过强的变量,这种变量一般不适合放入模型中,否则会造成整个模型被这个变量所左右,造成模型的稳定性下降,过拟合的风险也会增加。
4)做交叉验证,一种是时间序列上的交叉验证,考察模型在时间上的稳定性,另一种是K折随机交叉验证,考察模型的随机稳定性。
5)选择稳定性较好的模型,例如随机森林或xgboost这类泛化能力较好的模型。

5.6 第三方数据评测

5.7 做评分卡中为什么要进行WOE转化?

1)更好的解释性,变量离散化之后可将每个箱体映射到woe值,而不是通常做one-hot转换。
2)woe化之后可以计算每个变量的IV值,可用来筛选变量。
3)对离散型变量,woe可以观察各个level间的跳转对odds的提升是否呈线性。
4)对连续型变量,woe和IV值为分箱的合理性提供了一定的依据,也可分析变量在业务上的可解释性。
5)用woe编码可以处理缺失值问题,提升模型的鲁棒性。
6)逻辑回归属于广义线性模型,表达能力受限,单变量变量离散化后,为每个变量都引入单独的权重,相当于为模型引入了非线性,提升表达能力。
不使用哑变量而使用WOE的原因:对于逻辑回归来说,one-hot encoding输出的矩阵太稀疏了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

『 Linux 』文件系统

文章目录 磁盘构造磁盘抽象化 磁盘的寻址方式磁盘控制器磁盘数据传输文件系统Inode数据块(Data Blocks)超级块(SuperBlock)块组描述符(Group Descriptor)格式化 磁盘构造 磁盘内部构造由磁头臂,磁头,主轴,盘片,盘面,磁道,柱面,扇区构成; 磁头臂:控制磁头的移动,可以…

WowTab:简洁界面,效率神器,重塑新标签页浏览体验

目录 一、插件简介 二、插件功能 2.1 支持两种模式切换 2.2 效率组件介绍 2.3 设置中心 三、使用总结 四、插件安装说明 4.1 Edge安装 4.2 Chrome安装 大家在日常办公当中,是不是觉得新标签页太平淡无奇?来,给自己的浏览器加点料&…

uniapp学习(001 前期介绍)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第1p-第p10的内容 简介 目录结构 效果 打包成小程序 配置开发者工具 打开安全按钮 使用uniapp的内置组件…

计算机网络学习实践:模拟PPP协议验证虚拟局域网(VLAN)

计算机网络实践:模拟PPP协议&&验证虚拟局域网(VLAN) 挺有意思的大家可以跟着做一做,我是跟着韩志刚老师的视频做的 https://www.bilibili.com/video/BV1Qr4y1N7cH?p31&vd_source7831c5b97cfc5c745eb48ff04f6515e7 …

PostgreSQL 17 Beta1 发布,酷克数据再次贡献核心力量

得益于全球的开发者贡献,PostgreSQL已成长为一款拥有众多全球用户和贡献者、成熟稳定的开源数据库。2024年5月23日,PostgreSQL全球开发组宣布,PostgreSQL 17的首个 Beta 版本现已开放下载。本次新版本带来了众多惊喜。值得一提的是&#xff0…

算法金 | 再见,PCA 主成分分析!

1. 概念:数据降维的数学方法 定义 主成分分析(PCA)是一种统计方法,通过正交变换将一组可能相关的变量转换为一组线性不相关的变量,这组新的变量称为主成分。大白话,PCA能够从数据中提取出最重要的特征&am…

深入JVM:全面解析GC调优

文章目录 深入JVM:全面解析GC调优一、序言二、GC调优指标三、GC在线监控1、Jstat工具2、VisualVM工具 四、GC日志分析1、收集GC日志2、GCViewer工具3、GCeasy工具 五、GC问题调优1、调整JVM内存大小(1)调整堆内存大小及比例(2&…

从头搭hadoop集群--分布式hadoop集群搭建

模板虚拟机安装配置见博文:https://blog.csdn.net/weixin_66158110/article/details/139236148 配置文件信息如下:https://pan.baidu.com/s/1074eD5aNVugEPcjwVvi9jA?pwdl1xq(提取码:l1xq) hadoop版本:h…

行车记录仪人体感应雷达开关模块,飞睿智能雷达模块穿透玻璃、告别漏触烦恼,安防停车监控新方案

随着汽车保有量的持续增长,行车记录仪作为汽车安全配件的必备品,其重要性日益凸显。然而,传统的行车记录仪传感器在停车时往往存在无法穿透玻璃、漏触等问题,给车主带来了诸多不便和安全隐患。本文将深入探讨停车场景下&#xff0…

2024年清洁能源与可持续发展国际会议(ICDESMF 2024)

2024 International Conference on Clean Energy and Sustainable Development 【1】大会信息 会议简称:ICDESMF 2024 大会时间:2024-07-22 大会地点:中国大理 截稿时间:2024-07-08(以官网为准) 审稿通知&#xff1a…

【云原生】Kubernetes----POD控制器

目录 引言 一、Pod控制器概述 二、Pod控制器的种类 (一)ReplicaSet (二)Deployment (三)StatefulSet (四)DaemonSet (五)Job 三、使用POD控制器 &a…

五、nodejs存储图片

nodejs存储图片 // 静态托管和数据库创建 创建数据库 新建Public进行静态托管 新建个img的文件夹 在index.js里 // 托管静态 app.use(/public, express.static(./Public))//托管静态资源 /*** 1.引入一个express框架* 2.在加载所有服务模块前,要先连接数据库* …

MySQL是怎么保证持久性的(redo log日志相关)

Mysql中 事务的很多实现,都是因为有日志的支撑,比如binlog、undo log、redo log等 MySQL是怎么保证持久性的 持久性是指,事务一旦提交,它对数据库的改变就应该是永久性的,接下来的其他操作或故障不能对其有影响。In…

Java(十)——内部类

文章目录 内部类静态内部类实例内部类匿名内部类局部内部类 内部类 Java内部类是一种特殊的类定义方式,它允许在一个类的内部定义另一个类。 内部类可以访问其所在外部类的成员变量和成员方法,这使得它非常适用于封装与外部类紧密相关的私有逻辑。 内…

如何处理SSL证书过期问题?

SSL证书是网络安全的重要组成部分,它为网站提供了数据加密、身份验证和增强用户信任等多重保护。然而,SSL证书并非永久有效,其有效期通常为一年。当SSL证书过期时,网站安全性会受到影响,甚至可能面临安全风险。本文旨在…

实战|基于YOLOv10与MobileSAM实现目标检测与分割【附完整源码】

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推…

开发一个comfyui的自定义节点-支持输入中文prompt

文章目录 目标功能开发环境实现过程翻译中文CLIP编码拓展仓库地址完整代码目标功能 目前comfyui的prompt提示词输入节点 CLIP Text Encode 只支持输入英文的prompt,而有时候我们需要自己制定一些prompt,所以就得将我们想要的提示词翻译为英文后再复制粘贴到该节点的输入框中…

PMP考试难吗?考试通过率有多少?

我们通常以考试的通过率来评判一个考试的难易程度。通常通过率达到60%以上,这个考试就不太难;达到80% ,这个考试就是不难的。 PMP考试难吗? 不少想要考PMP的小伙伴都会有这样的疑惑,首先以PMP的含金量来说&#xff0…

基于Dify的QA数据集构建(附代码)

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模…

python 内置map()函数(高效处理序列数据方法,将函数应用于一个序列的每个元素)(懒加载)

文章目录 深入解析 Python 内置函数 map()函数定义与用法基本示例 map() 与列表推导式比较(列表推导式在语法上更加简洁, map() 在某些情况下执行效率更高)示例:将数字转化为字符串 map() 结合 lambda 函数使用多个序列结论 深入解…