本文介绍了风控业务中构建时间滑窗特征的一些实践经验,是一篇既能让读者快速上手特征工程又能加深其业务理解的深度好文。

作者:求是汪在路上

来源:知乎专栏 风控模型算法。

编辑:happyGirl

风控业务背景

俗话说, 路遥知马力,日久见人心。在风控中也是如此,我们常从时间维度提取借款人在不同时间点的特征,以此来判断借款人的风险。在实践中,这类特征通常会占到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特征。例如:

  • 运营商数据:用户每天的通话记录次数、时长等。

  • 信用卡账单或电商交易数据:用户每天的交易笔数、金额等。

  • 埋点行为数据:用户每天在某页面的浏览量、点击量等。

  • 设备数据:用户每天的登陆、活跃次数。

为了扩展更多的维度,我们常会维护一个分类名单库(或 分类指标体系 ),可参考《  信贷风控中的名单库挖掘、使用和维护 》(https://zhuanlan.zhihu.com/p/77238851)。接下来,我们就可以继续 细分类目 来统计。例如:

  • 信用卡交易数据:用户每天在母婴用品、交通出行、餐饮、美容美发等交易笔数、金额。

  • 设备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. 总结

本文系统总结了时间滑窗统计特征的构造方法论,以及相应的业务理解。总的来说,我们先统计数量,再从占比、趋势、稳定性、集中性等维度去衍生。当然,最重要的一点还是多结合业务去思考。

参考资料

felix:JDATA京东算法大赛入门(score0.07+时间滑动窗口特征+xgboost模型)(https://zhuanlan.zhihu.com/p/26177617)
高阶用户运营 | 如何用RFM模型实现用户分层管理(附案例)|推荐收藏(https://www.douban.com/note/698611890/)
「回顾」自动化特征工程和自动建模在风控场景的应用(https://mp.weixin.qq.com/s/SiD8HZ2eFuuNE3CTYaPYSA)


关于作者 :

在某互联网金融公司从事风控建模、反欺诈、数据挖掘等方面工作,目前致力于将实践经验固化分享,量化成长轨迹。点击文末阅读原文可直接与作者进行交流????

备注:公众号菜单包含了整理了一本AI小抄非常适合在通勤路上用学习

往期精彩回顾那些年做的学术公益-你不是一个人在战斗适合初学者入门人工智能的路线及资料下载机器学习在线手册深度学习在线手册备注:加入本站微信群或者qq群,请回复“加群”加入知识星球(4500+用户,ID:92416895),请回复“知识星球”

喜欢文章,点个在看

风控特征—时间滑窗统计特征体系相关推荐

  1. 风控特征:时间滑窗统计特征体系

    风控业务背景 俗话说, 路遥知马力,日久见人心.在风控中也是如此,我们常从时间维度提取借款人在不同时间点的特征,以此来判断借款人的风险.在实践中,这类特征通常会占到80%以上.由于是通过时间切片和聚合 ...

  2. 机器学习特征工程——类别相关统计特征

    阅读鱼佬<机器学习算法竞赛实战>4.3节记录,主要记录如何对类别相关统计特征进行 目标编码 机器学习难以识别复杂模式,尤其是不同特征间交互信息,因此需要根据直觉或业务理解构建特征. 针对类 ...

  3. pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征

    pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征 Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率 ...

  4. 京东风控团队带你全方位解读特征工程

    文章目录 导读 特征工程是连接数据和算法的桥梁 好的特征工程需要好的数据质量 1. 缺失值处理 2. 防止数据穿越 3. 特征稳定最重要 特征构建方法 1. 时间序列特征 2. 位置特征 3. 文本特 ...

  5. 听说算法工程师80%的时间都在做特征工程?

    前言 想象一下,当今社会备受瞩目的人工智能和数据挖掘算法工程师每天大部分时间都在做什么呢?是花大量时间手推公式,还是思考各种trick对算法调参,还是一遍遍清洗数据和加工特征?实际上,大部分的数据挖掘 ...

  6. 【阅读论文】基于统计特征的无监督时间序列异常检测方法

    文章目录 摘要 1.介绍 2.相关工作 3.问题描述 4.方法 4.1 统计特征 4.2提取特征总结 4.3 学习阶段算法 4.4测试阶段算法 5.结果 5.1 YOB评价:单变量 5.3对合成数据集 ...

  7. seqkit:序列梳理神器-统计、格式转换、长度筛选、质量值转换、翻译、反向互补、抽样、去重、滑窗、拆分等30项全能...

    写在前面 通过我几天的学习,我发现,seqkit十分好用,将序列的各种操作都囊括进去,加入多线程,我个人认为这将是非常好的胶水,在处理无论是基因组还是其他组学.定是一个必学神器.注意一下教程在0.15 ...

  8. 时间序列统计特征的详细解析

      大家好,我是herosunly,从985院校硕士毕业,现担任算法研究员一职.CSDN博客专家,2020年博客之星TOP.曾获得阿里云天池比赛第一名等Top名次,拥有多项发明专利.对机器学习和深度学 ...

  9. 机械故障诊断信号幅域分析- 时域统计特征 | 基于python代码实现,在CWRU和IMF轴承数据集上实战

    最详细的机械故障信号时域特征分析及实战 1.摘要 2.有量纲幅域参数计算公式及物理意义 3.无量纲幅域参数计算公式及物理意义 4.模拟数据代码实战 4.1 导入包 4.2 生成模拟正弦数据 4.3 绘 ...

最新文章

  1. Dirichlet前缀和及其拓展
  2. mysql.user表中Host为%的含义
  3. 0109互联网新闻 | 微信推智言对话系统“小微”,接入第三方生态;华为发布首款数据中心交换机...
  4. 预登录握手失败_英雄联盟手游登录问题汇总
  5. Docker Nexus3 maven 私服(搭建篇)
  6. W ndows7安装Hp1020,hp1020打印机驱动
  7. linux 命令:nohup 详解
  8. IGS精密星历及其下载(自PureSky_Memory的博客)
  9. CE修改器入门:查找共享代码
  10. 解决Windows聚焦不更新图片问题
  11. matlab 回归 工具箱,matlab回归分析——回归分析MATLAB工具箱.doc
  12. html怎么画虚线空心圆,教你用ps怎么画一个虚线的空心圆
  13. 毕业设计(论文)的内容要求和参考格式
  14. Redis--Redis数据过期策略详解
  15. 实时操作系统与分时操作系统(或称非实时操作系统)的区别
  16. JDBC使用报错: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not all
  17. vim-3 粘贴命令、替换命令、替换模式和修改命令
  18. 最短路迪杰斯特拉回炉重造
  19. LeetCode 844 题解
  20. 【计算机考研】从N非本科到考研上岸一线211的心路历程

热门文章

  1. 线性回归与梯度下降法
  2. 安装asterisk 时遇到的报错情况,及解决办法。
  3. 获取表单提交的数据getParameter()方法
  4. Java--类的成员
  5. 实例化bean的三种方式
  6. 转载:矩阵的掩膜操作实现图像对比度调整
  7. libsvm 训练后,模型参数详解
  8. 父与子的编程之旅 python 3 pdf_《父与子的编程之旅》嵌套循环例题解析
  9. MyEclipse 10(汉化版)安装教程
  10. matlab学习(二)