风控算法(4)特征工程-时序数据与特征工程

特征工程-时序数据与特征工程

信贷时序数据与特征工程介绍 - 求是汪在路上的文章 - 知乎 https://zhuanlan.zhihu.com/p/397614923

引言

无论是模型还是策略,其遵循的方法论都是“发现问题->确定目标->分析原因->寻找抓手->上线应对”这样一个闭环。对于模型岗而言, 其核心KPI是提供具有良好排序能力的模型。而特征工程是提高模型区分度的最有效途径,决定了模型拟合的上限。

信贷业务流程中积累了很多时间序列数据。因此,本文将介绍如何利用时序数据来构建常见的特征。同时,为兼顾实践性,本文附上了一些特征的SQL实现逻辑,供参考。

一、信贷时序行为数据

信贷业务经营中会积累很多时间序列数据。例如,客户的APP登录行为埋点数据、借款申请行为记录数据、还款行为数据、调额记录数据等。根据是否在平台内部沉淀,这些数据又可分为内部和外部数据。

1.1 内部数据

以借款、还款行为数据为例,需要明确几个最细的时间粒度,包括:

  • 借款时点(draw_date):客户借款申请时点。
  • 应还时点(due_date):约定还款时间,固定不变。
  • 实还时点(settle_date):客户实际还款时间,若早于应还日,称提前还款;若晚于应还时点,则成为逾期(overdue);若在应还日当天还款,则为正常还款。

独立来看,每个时点的数据都具有不同的信息。对于借据而已,具有以下属性:

img

因此,从借款订单数据入手,其可反映客户的额度使用率、借款金额变化、借款时间集中度等信息。

如图2所示,当把这些时点线索交叉在一起,就会衍生出大量信息。例如:

  • 结合应还时点和实还时点,可刻画客户历史上的还款行为,包括逾期、提前还款、正常还款。——由此可构建“过去一段时间内,逾期/提前还款/正常还款次数”这类特征。
  • 结合应还时点和借款时点,如果客户在某个应还时点前多次发起借款申请,那么很可能是在“借新还旧”。——由此可构建“过去一段时间内,应还日前借款次数”这类特征。
  • 结合逾期时点和借款时点,如果客户当前处于逾期状态,则新申请借款则可直接拒绝,或者提前管制客户。
img

1.2 外部数据

客户不仅会在本平台内借款,当无法满足其借款需求时,其也会在其他平台借款,由此形成了多头借款行为数据。这是一块非常宝贵的数据。

在《求是汪在路上:多头借贷风险分析与建模》一文中,我们介绍过多头数据的相关知识。整合目前市场上数据商提供的多头数据,我们可分解为以下结构:

img

在本文中,先构造一些假数据用以后续衍生特征。可通过以下SQL语句建表,并插入数据。

二、行为特征衍生思路

如果拥有这样的数据,你会如何构建特征?通常做法是取最近一段时间窗口(比如最近12个月),在这段时间内,我们可以从以下维度来统计出可累加的指标:

  • 指标维度:金额、次数、笔数、天数、机构数、人数
  • 时间粒度:日、周、月
  • 聚合函数:计数(count),求和(sum)

为什么要是可累加的呢?这是因为我们可以再次聚合,并且后续计算比例类特征时方便。由此,可得到如图5所示的时序数据:

img

在《求是汪在路上:风控特征—时间滑窗统计特征体系》中,介绍过RFM特征体系的概念。

  • R(Recency)客户最近一次交易消费时间的间隔。R值越大,表示客户交易发生的日期越久,反之则表示客户交易发生的日期越近。
  • F(Frequency)客户在最近一段时间内交易消费的次数。F值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。
  • M(Monetary)客户在最近一段时间内交易消费的金额。M值越大,表示客户价值越高,反之则表示客户价值越低。

在RFM特征体系的基础上,我们进一步扩展维度。至少能从图5中捕捉到以下信息:

1)常规统计特征

把客户行为按最小时间粒度统计完毕后,我们就会得到一个分布。接下来则是利用统计函数最大值(MAX)、最小值(MIN)、平均值(AVG)、标准差(STD)来描述以上分布特征。

但是,这些指标在统计时只能对给定的数据集合计算,没有考虑到时间序列变化信息。换言之,什么时间段在持续上升,什么时间段在持续下降,什么时间段断档形成空窗期,这些信息都被掩盖了。

2)时间距离特征

用以刻画客户最远一次、最近一次或者某个特殊事件发生的时点。例如:

  • 最近一次申请日距离观察点的日期差(天数)
  • 最近一次取到最大值、最小值的事件时点距离观察点的日期差(天数)
  • 最近一次逾期距离观察点的日期差(天数)

3)行为波动特征

用以刻画客户某段连续时间内的行为变化特征。例如:

  • 最长持续上升(或下降)的时间跨度(天数)。
  • 最长睡眠期(天数)。即,客户多久没有活跃了?
  • 连续行为窗口出现次数。

在信贷风控中,变化趋势是衡量风险非常重要的维度。我们喜欢稳定,但是风险天生具有易变性,当有变化的趋势就意味着风险,也意味着机遇。例如,当客户近期在行业内借款申请次数在上升时,我们就可以判断客户资金紧张,故而在到处借钱。那么,我们需要思考:

  1. 业务侧:客户是否因为我们的额度不够,无法满足其资金需求而跑到其他平台借款?出于余额增长的目标,我们能不能给客户提额呢?
  2. 风险侧:该客户的还款能力是否出现问题?我们给他放开额度后,我们能否承受风险?那么我们就需要给客户打一下风险分,判断客户风险。

为捕捉客户行为变化趋势,我们可以用一种简单的方法:最近N个月次数 / 最近M个月次数(N < M)。例如,多头变量中,该值越高,说明借款申请记录更为集中在近期。一般来说,近期行为对于识别短期欺诈风险更有用,远期行为对于识别长期信用风险更有用。

4)集中度特征

用以刻画客户行为的偏好程度。如果说时间维度是纵向视角,那么集中度特征则是横截面视角。通常以比例特征形式出现。例如:

  • 一天内集中于哪个时间段活动?
  • 借款机构中集中于哪些机构?
  • 借款金额倾向于什么数目(例如1K以内,1K-5K,5K以上)?
  • 购买的商品内集中于买什么品类?

四、其他算法实现思路

前面都是从业务领域知识先入手,分析潜在有用的变量逻辑,再去实现。这是平时大部分模型师所做的事情。但目前也有一些尝试用LSTM、RNN来处理时序数据的技术方案。这是后续可尝试探索和对比的方向。

img