风控特征—时间滑窗统计特征体系
原文作者:求是汪在路上(知乎ID)
原文链接:https://zhuanlan.zhihu.com/p/85440355/
风控业务背景
俗话说,路遥知马力,日久见人心。在风控中也是如此,我们常从时间维度提取借款人在不同时间点的特征,以此来判断借款人的风险。在实践中,这类特征通常会占到80%以上。由于是通过时间切片和聚合统计函数来构造,因此一般被称为时间滑窗统计特征。
本文的主要意义在于:
- 对于需要入门风控建模的同学而言,希望能帮助你快速上手特征工程。
- 对已经有特征工程经验的同学而言,希望能带给你一些风控业务理解。
目录
Part 1. 观察期、观察点及表现期
Part 2. RFM模型介绍
Part 3. 时间滑窗数量统计类特征
Part 4. 时间滑窗占比统计类特征
Part 5. 时间滑窗趋势统计类特征
Part 6. 时间滑窗稳定性衍生特征
Part 7. 第三方多头借贷变量衍生
Part 8. 总结
致谢
版权声明
参考资料
Part 1. 观察期、观察点及表现期
理解这三者的概念是风控建模前期样本准备的基础,在此简单介绍。
- 观察点(Observation Point):并非是一个具体的时间点,而是一个时间区间,表示的是客户申请贷款的时间。在该时间段申请的客户可能会是我们用来建模的样本 。(提示:为什么用“可能”这个描述,因为还需剔除一些强规则命中的异常样本,这部分样本将不会加入建模)
- 观察期(Observation Window):用以构造特征X 的时间窗口。相对于观察点而言,是历史时间。观察期的选择依赖于用户数据的厚薄程度。通常数据越厚,可提取的信息也就越全面、可靠。
- 表现期 (Performance Window):定义好坏标签Y 的时间窗口。相对于观察点而言,是未来 时间。由于风险需要有一定时间窗才能表现出来,因此信贷风险具有滞后性。表现期的长短可以通过Vintage分析和滚动率分析来确定,在此不做展开。
图 1 - 观察期、观察点及表现期
表现期越长,信用风险暴露将越彻底,但意味着观察期离当前将越远,用以提取样本特征的历史数据将越陈旧,建模样本和未来样本的差异也越大。反之,表现期越短,风险还未暴露完全,但好处是能用到更近的样本。
Part 2. RFM模型介绍
RFM模型最早是用来衡量客户价值和客户创利能力。理解RFM框架的思想是构造统计类特征的基础,其含义为:
- R(Recency):客户最近一次交易消费时间的间隔。R值越大,表示客户交易发生的日期越久,反之则表示客户交易发生的日期越近。
- F(Frequency):客户在最近一段时间内交易消费的次数。F值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。
- M(Monetary):客户在最近一段时间内交易消费的金额。M值越大,表示客户价值越高,反之则表示客户价值越低。
Part 3. 时间滑窗数量统计类特征
对于不同数据源,我们可以统计得到不同内容的RFM特征。例如:
- 运营商数据:用户每天的通话记录次数、时长等。
- 信用卡账单或电商交易数据:用户每天的交易笔数、金额等。
- 埋点行为数据:用户每天在某页面的浏览量、点击量等。
- 设备数据:用户每天的登陆、活跃次数。
为了扩展更多的维度,我们常会维护一个分类名单库(或分类指标体系),可参考《信贷风控中的名单库挖掘、使用和维护》。接下来,我们就可以继续细分类目来统计。例如:
- 信用卡交易数据:用户每天在母婴用品、交通出行、餐饮、美容美发等交易笔数、金额。
- 设备App数据:用户手机上安装的借贷类、生活类、运动类、音乐类等App的数量。
以设备App数据为例,我们将统计得到如下数据:
图 2 - 截止下单日,用户每天统计的App数量
需要指出的是,我们需要结合业务去分析数据,数据因为业务才具有温度。
🌟敲黑板划重点1——了解数据采集逻辑
特征是从原始数据中提取的信息,如果数据源采集上就存在问题,那么所构造的特征也必然有问题。
对于一些采集客观、可靠的数据源而言,分析过程就相对简单。例如,如果用户某天没有打电话,那么这天的通话次数为0,这是因为运营商客观保留了用户的原始数据。这时候,0的含义就是用户在当天未有通话行为。当然,对于用户借用他人手机打电话这种情况,则不在考虑范围内。
对于依赖于用户登陆、活跃行为才能采集到的数据,就更需要结合采集方式来分析。例如,在设备App数据中,如果某天统计得到用户安装的借贷类App为0。这个数字后面可能有哪些原因呢?可能的猜想有:
- 1. 统计函数原理:用户这一天并没有使用手机,导致数据采集上缺失。但SQL中count()函数在统计时会count(null) = 0,也就是说会将缺失值填充默认值为0。
- 2. 用户使用行为:用户使用了新安卓手机,数据采集正常,但确实没安装借贷类App,因此用户维度统计值为0。或者,用户使用了老安卓手机,但主动卸载了所有借贷类App。
- 3. 数据采集技术:用户使用了**苹果手机,**由于无法采集到App数据,哪怕手机上实际安装了借贷App,但统计值也为0。
- 4. 变量构造逻辑:虽然手机上安装了借贷类App,但并不在你的借贷App名单库中,因此匹配数为0。
那么到底是哪种原因呢?对于这些猜想,我们可以从以下维度加以佐证:
- 用户当天是否活跃?
- 用户使用设备是否出现新的UMID(设备ID)?
- 用户使用设备的平台(iOS / Android)?
- 名单库是否很久没有维护?
这也就是需要结合业务经验对多个特征交叉衍生新特征的原因,这种特征具有强业务含义,因此往往能发挥出更好的效果。
🌟敲黑板划重点2——定义观察期有效性
我们还需考虑观察期的有效性,以及不同用户的数据厚薄程度。
比如,如果一个用户手机号网龄才6个月,那么在统计最近6个月、12个月、24个月的通话记录次数时,可想而知这几个变量的数值都是一样的。
同理,对于手机号网龄分别是6个月的新用户和6年的老用户而言,“最近12个月的通话记录次数”这种特征是不公平(unfair) 的。两者的数据厚薄程度 不同,新用户的观察期实际上只有6个月,而老用户的观察期是12个月。
为了区分这种情况,有以下建议:
1. 定义观察期有效性, 在时间滑窗统计时,更需要有意识地留出有效的观察期。
2. 定义分群变量。比如将数据有效期只有6个月和12个月的用户分成2个群体。
Part 4. 时间滑窗占比统计类特征
在得到数量统计类特征后,我们继续衍生占比(ratio)类特征,一方面可用来去除量纲影响,另一方面衡量用户的行为偏好。例如:
最近N个月内母婴类消费次数占比 = 最近N个月内母婴类消费次数 / 最近N个月内消费次数
如果用户在某类消费次数或者金额占比上有明显的倾向,我们就更能掌握用户的消费行为偏好和其他属性。比如,如果用户的母婴类消费支出占比较大,说明用户是有娃一族,风险也就相对更低。
Part 5. 时间滑窗趋势统计类特征
由于一个人的行为是会动态变化的,衡量这种变化趋势对于风险识别也很重要。例如,对于借款人的多头借贷风险,如果多头指标呈现逐步上升的趋势,我们就觉得多头负债风险在上升。借款人往往会采取“拆东墙补西墙”的措施,如果哪一天连东墙都找不到拆,这个击鼓传花的游戏也就game over。
我们一般计算**斜率(slope)**来衡量这种变化趋势。例如:
多头借贷趋势 =(当月的多头借贷次数 - 上个月的多头借贷次数)/ 上个月的多头借贷次数
Part 6. 时间滑窗稳定性衍生特征
在不同时间点统计的数量特征基础上,我们可以继续衡量用户行为的稳定性。
在数学上,我们通常可以用变异系数(Coefficient of Variation,CV) 来衡量这种数据波动水平。变异系数越小,代表波动越小,稳定性越好。
变异系数的计算公式为:变异系数 C·V =( 标准偏差 SD / 平均值Mean )× 100%
例如,对于借贷次数,我们可以计算CV来衡量借贷行为的稳定性。
另外需要注意的是,对于持续多头借贷的老哥,其实风险并不会很高,因为有持续稳定的借贷渠道。但对于集中性爆发的多头借贷行为,我们就更需要加以关注。这背后的动机,可能是手头突然紧张(比如网赌输钱),可能是破罐子破摔,可能是前期潜伏突然爆发,可能是行业大环境影响。
Part 7. 第三方多头借贷变量衍生
据笔者所知,目前市场上所提供的第三方多头借贷数据通常包含以下变量:
借款人最近7天、1个月、3个月、6个月、12个月、18个月、24个月的某类平台借贷次数
某类平台包含:消费金融公司、互联网金融公司、银行信贷、数据风控公司等等。
根据这些原始变量,我们可以按照以上方法论衍生一些新变量。例如:
如果以“最近7天的多头借贷次数 / 最近1个月的多头借贷次数”,我们便可以判断借款人的时间维度上的借贷行为分布。这个变量数值越大,代表近期借贷集中,短期风险更大。
如果以“最近1个月的银行信贷借贷次数 / 最近1个月的多头借贷次数”,我们便可以判断借款人的在借贷平台维度的分布。这个变量数值越大,可以认为越趋于正面。
在使用这些变量时,我们还需考虑第三方数据公司所接入的机构数的变化。也就是说,如果接入机构数在持续增长,那么整体人群的多头借贷指数也可能往高分偏移。
Part 8. 总结
本文系统总结了时间滑窗统计特征的构造方法论,以及相应的业务理解。总的来说,我们先统计数量,再从占比、趋势、稳定性、集中性等维度去衍生。当然,最重要的一点还是多结合业务去思考。
致谢
感谢参考资料的作者带给我的启发。本文尚有理解不当之处,在此抛砖引玉。