文章目录
- 2 风控建模流程
- 2.1 ABC评分卡简介
- 2.2 机器学习模型工作的完整流程
- 2.3 项目准备期
- 2.3.1 明确需求
- 2.4 模型设计
- 2.4.1 业务抽象成分类/回归问题
- 2.4.2 模型算法
- 2.4.3 模型输入
- 2.4.4 Y标签定义
- 2.4.5 样本选取
- 2.4.6 样本采样
- 2.4.7 观察期和表现期
- 2.4.8 Y标签阈值确定
- 2.4.9 样本种类
- 2.4 特征工程
- 2.4.1 特征构建
- 2.4.2 特征评估
- 2.4.2 特征工程小结
- 2.5 模型构建
- 2.5.1 设计实验
- 2.5.2 模型评估
- 2.6 上线运营
2 风控建模流程
2.1 ABC评分卡简介
风控模型其中包含了A/B/C卡。模型可以采用相同算法,一般以逾期天数来区分正负样本,也就是目标值Y的取值(0或1)
-
贷前 申请评分卡 Applicatio score card
-
贷中 行为评分卡 Behavior score card
-
贷后 催收评分卡 Collectio score card
C卡因为用途不同Y的取值可能有区别
-
公司有内催,有外催。外催回款率低,单价贵
-
可以根据是否被内催催回来定义C卡的Y。
2.2 机器学习模型工作的完整流程
-
准备
-
明确需求
-
模型设计
-
业务抽象成分类/回归问题
-
定义标签(目标值)
-
-
样本设计
-
-
特征工程
-
数据处理,选取合适的样本,并匹配出全部的信息作为基础特征
-
特征构建
-
特征评估
-
-
模型
-
模型训练
-
模型评价
-
模型调优
-
-
上线运营
-
模型交付
-
模型部署
-
模型监控
-
2.3 项目准备期
2.3.1 明确需求
-
明确需求
-
目标人群:新客,优质老客,逾期老客
-
给与产品:额度,利率
-
市场策略:冷启动,开拓市场,改善营收
- 冷启动:数据量少,不能进行有监督学习
- 开拓市场:利率可以降低一些
- 改善营收:找到额度、利率的最佳平衡点
-
使用时限:紧急使用,长期部署
-
举例:
1. 业务需要针对全新客户开放一个小额现金贷产品,抢占新市场
2. 针对高风险薄数据新客的申请评分卡
2.4 模型设计
A/B卡预测用户是否会违约,是一个二分类问题。与业务、运营和推荐系统,一般都是二分类问题。
l模型设计
2.4.1 业务抽象成分类/回归问题
- 风控场景下问题通常都可以转化为二分类问题:
- 信用评分模型期望用于预测一个用户是否会逾期,逾期用户1
- 营销模型期望用于预测一个用户被营销后是否会来贷款,没贷用户1
- 失联模型期望用于预测一个用户是否会失联,失联用户1
- 风控业务中,只有欺诈检测不是二分类问题。因为样本数量不足,可能是一个无监督学习模型
2.4.2 模型算法
-
规则模型
-
逻辑回归
-
集成学习
-
融合模型
2.4.3 模型输入
- 数据源
- 时间跨度
2.4.4 Y标签定义
- 在构建信贷评分模型时,原始数据中只有每个人的当前逾期情况,没有负样本,负样本需要人为构建
- 通常选一个截断点(阈值),当逾期超过某个阈值时,就认定该样本是一个负样本,未来不会还钱;
- 比如逾期15天为正负样本的标记阈值,Y = 1的客户均是逾期超过15天的客户
- 逾期>15天时 Y = 1,那么Y=0如何定义
- 只会将按时还款和逾期较少的那一部分人标记为0。如:将逾期<5天和没有逾期的人作为正样本
- 逾期5~15天的数据(灰样本)会从样本中去掉,去掉“灰样本”,对模型学习更加有利。
- “灰样本”通常放入测试集中,用于确保模型在训练结束后,对该部分样本也有区分能力。
逻辑回归返回的是标签的概率值, 希望找到一个阈值,可以完全区分两类。但是实际上在阈值附近会有一些波动,就是灰样本区域。
2.4.5 样本选取
-
代表性:样本必须能够充分代表总体。如消费贷客群数据不 能直接用到小额现金贷场景
-
充分性:样本集的数量必须满足一定要求。评分卡建模通常要求正负样本的数量都不少于1500个
-
时效性:在满足样本量充足的情况下,通常要求样本的观测期与实际应用时间节点越接近越好
- 如银行等客群稳定的场景,观察期可长达一年半至两年。
-
排除性:虽然建模样本需要具有代表整体的能力,但某些法律规定不满足特定场景贷款需求的用户不应作为样本
- 如对行为评分卡用户、无还款表现或欺诈用户均不应放入当前样本集。
-
评分卡建模通常要求正负样本的数量>=1500,但总样本量超过5万时
- 许多模型的效果不再随着样本量的增加而有显著提升,而且数据处理与模型训练过程通常较为耗时。
2.4.6 样本采样
- 如果样本量过大,会为训练过程增加不必要的负担,需要对样本做欠采样(Subsampling)处理。
- 由于负样本通常较少,因此通常只针对正样本进行欠采样。常见的欠采样方法分为:
- 随机欠采样:直接将正样本欠采样至预期比例。
- 分层抽样:保证抽样后,开发样本、验证样本与时间外样本中的正负样本比例相同。
- 等比例抽样:将正样本欠采样至正负样本比例相等,即正样本量与负样本量之比为1:1
- 当负样本较少的时候,需要进行代价敏感加权或过采样(Oversampling)处理
2.4.7 观察期和表现期
-
观察期是指用户申请信贷产品前的时间段
-
表现期是定义好坏标签的时间窗口,如果在该时间窗口内触发坏定义就是坏样本,反之就是好样本。
-
举例: 要建立A卡模型, 观察期12个月,表现期3个月
- 用户贷款前12个月的历史行为表现作为变量,用于后续建模
- 如设定用户在到期3个月内未还款,即认为用户为负样本,则称表现期为3个月
2.4.8 Y标签阈值确定
模型设计 : 如何确定合适的逾期标签阈值以及观察期表现期
-
结合滚动率分析和Vintage分析
-
滚动率分析用于定义客户的好坏程度
-
Vintage分析用于确定合适的表现期
- 利用滚动率分析定义坏客户,如下图中定义:M4+为坏客户
如果在表现期中, 有M4+的情况(DPD90以上) 有80%的人依然是M4+的状态, 逾期的情况不会变好 此时M4+作为Y标签的阈值, 需要注意的是, 如果通过这种方式确定的1标签人数过少, 可以考虑M3+的情况, 也需要注意, 如果逾期情况变好的比例比较高, 不适合降低阈值 - 以M4+作为资产质量指标,统计Vintage数据表,绘制Vintage曲线。目的是分析账户成熟期,
- 例如下图案例确定:账户成熟期是9个月
-
表现期, 确定Y标签, 表现期多长比较合适, 通过vintage , 观察M4+ 比例变化情况, 当M4+ 比例增量放缓, 这个时长可以作为表现期窗口长度
-
观察期, 用观察期的数据做特征, 用表现期的数据做标签
表现期设置为9个月, 当前做模型最早可以用到的数据, 就是1月份来申请借款的用户
使用2022年的数据来做特征, 1月份放款以后, 最近9个月用户的违约情况做标签
2.4.9 样本种类
- 训练数据测试数据划分,数据集在建模前需要划分为3个子集:
- 开发样本(Develop):开发样本与验证样本使用分层抽样划分,保证两个数据集中负样本占比相同
- 验证样本(Valuation): 开发样本与验证样本的比例为6:4
- 时间外样本(Out of Time,OOT): 通常使用整个建模样本中时间最近的数据, 用来验证模型对未来样本的预测能力,以及模型的跨时间稳定性。
-
样本选取, vintage 选几月份的数据可以做模型 (表现期)
-
样本选取的时候, 要留最近一部分数据, 作为时间外样本, 不参与模型训练,在上线之前做最后的验证
-
训练A卡模型的时候, 选择的样本, 一定是新客, 在观察期中不能有内部的逾期数据
-
训练B卡模型的时候, 选择的样本一定是未逾期的老客(在观察点的时刻一定处于未逾期的状态)
2.4 特征工程
2.4.1 特征构建
- 画出类ER图,数据关系:一对一、一对多、多对多
- 写SQL查询时要从用户列表出发,join其他表
- 明确评估特征的样本集
- 新申请客户没有内部贷款数据
- 未逾期老客户档期没有逾期信息
- 逾期老客户和未逾期老客的还款数据一定差别很大
- 如何从原始数据中构建特征:指定特征框架,确保对数据使用维度进行了全面思考
- 每个属性都可以从R(Recency) F(Frequency) M(Monetary)三个维度思考,来构建特征
- 每个属性都可以从R(Recency) F(Frequency) M(Monetary)三个维度思考,来构建特征
2.4.2 特征评估
- 什么是好的特征,好的特征需要满足的条件:
- 覆盖度高,很多用户都能使用
- 稳定,在后续较长时间可以持续使用 PSI (Population Stability Index)
- 区分度好,好坏用户的特征值差别大 IV (Information Value)
也可以用模型的评估指标来评估特征:单特征AUC, 单特征KS
可以拿效果最好的单特征的AUC,KS来估计模型的效果
2.4.2 特征工程小结
-
特征构建注意事项:
-
数据源对应的具体数据表,画出ER图
-
评估特征的样本集
- B卡样本集不能包含逾期数据
- C卡样本集不能包含按时还款的数据
-
特征框架,确保对数据使用维度进行了全面思考
- 确定思维框架, 与组内其它人讨论
-
明确数据源对应的具体数据表
- 明确数据是从哪里来的: (DE Data Engineer 数仓工程师)
- 明确数据是从哪里来的: (DE Data Engineer 数仓工程师)
-
数据分析师拿到的数据可能是:数仓原始表或者数仓重构表
-
数仓原始表和数仓重构表可能数据量有差异,因为更新时间不同
- 尽量使用数仓工程师加工好的重构表,确保逻辑统一
- 实时预测要确保生产数据库和数据仓库数据一致 (很难)
-
-
特征构建流程总结:
- 先明确可以用到的数据
- 梳理取数的逻辑, 从数据库的哪张表中获取数据, 把E-R图划出来(实体关系图)
- 明确数据质量 , 看覆盖度, 是不是每个用户都能取到值
- 特征构造
- 分组聚合, 在数据库中, 每个用户都会对应多条数据, 最终输入到模型, 用于模型训练的样本数据, 每一个用户对应着一条样本 , 此时可以考虑使用用户ID 分组, 做聚合计算
- 聚合的一种常用的思路R 最近/F 次数, 频率/M 关键指标
- 特征构造之后需要做特征评价
- 什么是一个好的特征
- 覆盖度高 大多数用户都能取到值, 空值比较少
- 稳定性好 覆盖度波动比较小
- 区分度强 单特征AUC 把模型输出的结果 换成特征的取值
- 把特征值按照从小到大/从大到小排序, 值越大违约概率越高/值越小违约概率越高, 以特征的取值做为0/1划分的标准, 输出0/1的预测, 此时可以绘制出 ROC曲线 → AUC
- 如果单特征AUC 没有高于0.6的 模型基本效果不会好
2.5 模型构建
2.5.1 设计实验
-
训练模型时有很多可能的因素会影响模型效果
-
我们需要通过设计实验去验证哪些因素是会提升模型效果的
2.5.2 模型评估
-
好的模型需要满足的条件:
-
稳定,在后续较长时间可以持续使用 PSI (Population Stability Index)
-
区分度好,好坏用户的信用分差别大 AUC, KS, GINI
-
报表一:区分度,抓坏人能力在不同分段的表现
-
2.6 上线运营
- 模型交付
-
交付流程:
- 提交特征和模型报表
- 离线结果质量复核 (无缺失,无重复,存储位置正确,文件名规范)
- 保存模型文件,确定版本号,提交时间
- 老大审批,通知业务方
- 线上部署,案例调研, 持续监控
-
特征报告
- 特征项目需求
- 特征项目任务列表
- 特征项目时间表
- 类ER图
- 样本设计
- 特征框架
- 每周开发进度和结果
- 每周讨论反馈和改进意见笔记
- 特征项目交付说明
- 特征项目总结
-
模型报告
- 模型项目需求
- 模型项目任务列表
- 模型项目时间表
- 模型设计
- 样本设计
- 模型训练流程和实验设计
- 每周开发进度和结果
- 每周讨论反馈和改进意见笔记
- 模型项目交付说明
- 模型项目总结
-