大数跨境
0
0

风控特征画像系列文章之① | 特征挖掘方法论

风控特征画像系列文章之① | 特征挖掘方法论 天星数科
2024-08-29
2
导读:风控特征画像系列文章之① | 特征挖掘方法论


  编者按:根据我司多年来项目具体实践经验,在整个智能风控管理体系搭建的过程中,风控特征画像体系的设计既是重点,又是难点。通过对客户特征进行精准画像,有利于对客户进行多维度分析,从而更便捷、准确地应用智能风控模型及具体规则,以及进一步预测客户违约风险及其他行为。

有鉴于此,结合我司多年业务沉淀,特别推出风控特征画像系列文章,以飨读者。具体将从特征挖掘方法论、智能算法、体系搭建三部分展开分享。本文为第一篇。





一 
特征挖掘概述


特征挖掘主要包括原始数据分析、数据清洗、中间数据集构建、特征设计与生成、特征评估、特征上线、线上监控和维护、特征下线等环节。如下示意:


 
原始数据分析


   原始数据分析是为了提取原始数据中有用信息并加以分析的过程。其目的是对数据价值进行初步判断,避免错误使用数据,为后续的数据清洗与处理提供依据。

1、数据流转分析

数据流转分析是指对数据源、中间处理和最终存储环节的数据进行分析。通过数据流转分析,可以了解数据在业务流程中的演变过程,从而全面认识数据,发现潜在问题。

1)业务逻辑分析

从业务逻辑角度进行数据流转分析是基于业务梳理出数据的产生、中间处理、最终存储,以及数据更新机制。业务逻辑分析主要是为了整体把控底层数据的完整生命周期变化情况,寻找分析可挖掘的特征。以客户端埋点数据的业务逻辑为例,通过与产品经理沟通和阅读埋点需求文档,可以确认客户在填写基本信息、身份认证等多个地方触发埋点,所以埋点数据会在所在页面的最后动作结束时触发上传。基于这些信息,我们可以考虑捕捉客户填写习惯中的风险因素,判断得到埋点可以满足实时计算特征的需求。

2)数据角度分析

从实际数据角度分析进行数据流转分析是指利用业务中产生的实际数据与业务逻辑进行交叉比对,并且对其变化进行详细分析。这样可以发现实际与业务逻辑不一致的情况并加以确认和修正。以客户申请为例,发现某些客户短时间内有多次申请状态,经业务确认,这些申请是申请被拒绝后屡次重新申请的客户。基于这些信息,我们可以利用客户多次重复申请的行为构建风险特征,剔除其中无效状态的申请记录。

2、数据质量分析

数据质量需要从覆盖率、规范性、准确性三方面展开分析

覆盖率是指数据中非空记录的占比。覆盖率分析可从两个方面进行:一是覆盖率是否符合业务判断;二是不同产品或时间段上数据覆盖率的变化是否符合业务情况,如果产品未发生调整的情况下原始数据覆盖率下降明显,可能是数据采集、中间处理或者存储环节出现了数据丢失。

规范性是指数据取值是否符合一定的规范。数据规范性主要受数据采集、存储时是否有校验和校验的完备性影响。

准确性是指数据接近真实值的程度。可以利用相关数据交叉检验的方式来判断准确性。对于数值数据,可以利用统计指标来统计数据分布,从而对数据的准确性做进一步判断。

3、数据时效性分析

数据时效性分为采集时效性和获取时效性两个方面。采集时效性是指数据从产生到采集的时间间隔,获取时效性是指从数据产生到风控生产系统中实际获取的时间间隔。获取时效性不但受采集时效性影响,而且受数据传输、中间处理和存储方面的影响。时效性分析主要是为了得出数据和特征可能的使用方式,因此,时效性分析的结果会包含关于数据后续使用方式的结论。

例如,某个外部数据源在请求之后,极端情况下,需要10分钟才能返回结果,生产环境中对这个数据相关特征的使用就可能有3种方式。第一种,在授信流程中,待数据返回之后再实时计算特征,继续授信流程;第二种方式可以触发预计算逻辑,提前发出数据请求,数据返回之后计算特征并缓存,生产环境中使用预计算好的特征;第三种方式是在测试之后取一个合理的时间阈值,超过时间阈值则不再等待数据返回和特征计算,如90%的客户会在2秒内返回,业务评估10%的数据缺失可以接受,则设置成超过2秒不再等待。


 
数据清洗


数据清洗一般包括重复数据处理、缺失数据处理、异常值处理与时间数据处理。数据清洗是为了数据质量达到特征挖掘使用者的标准,避免因数据质量问题导致特征挖掘阶段,甚至建模阶段的返工。

1、重复数据处理

业务流程中产生的数据作为重要的数据资产,一般需要完整保存。注意,在维持数据完备性的同时,可能会引入重复数据。例如,在客户申请贷款的数据中,客户A的同一申请记录出现了2次。我们需要分析这两条数据的重复是否体现了特定的业务含义,若体现了业务含义,则挖掘此业务含义相关的特征,否则进行冗余数据处理。冗余数据处理包括直接过滤和整合应用;直接过滤是指随机选取一条数据,丢弃其他;整合应用是指将多条数据整合成或校准之后形成完整和更加可靠的新记录,然后保存使用。

 

例如,客户A的申请记录出现多次,如果是因为客户被拒绝之后反复申请,就是有业务含义的重复,我们可以生成“近N天客户申请次数”特征来描述客户反复申请行为。如果是因为客户的同一次申请存储了多条数据,并且多条数据完全是一致的,则可以直接过滤,随机取一条数据使用。如果多条数据之间存在差异,分别记录了业务流程中不同环节的数据(大部分字段是重复的),则需要汇总不同记录中的差异字段、校验重复字段,从而形成一条完整的申请记录数据。

2、缺失数据处理

在此处主要讨论特征依赖的原始数据缺失处理。相比建模阶段的特征缺失处理,在特征挖掘阶段,根据数据缺失情况,尽早发现隐藏的数据问题,有更多机会采取措施以降低或消除数据缺失的影响,产出稳定的特征。缺失数据处理需要先判断数据是否为正常缺失,再根据判断结果采取合适的处理方式,如填充缺失值、修复数据和丢弃数据等。

 

判断数据是否为正常缺失,首先判断数据的覆盖率是否符合业务实际情况,接着取一些典型的缺失样本做进一步分析,然后将数据覆盖率和缺失原因整理并记录,最后给出数据是否正缺失的结论。例如,在产品流程中,客户基本信息的年龄是必填字段,如果发现覆盖率只有70%,那么显然不符合业务逻辑,需要找出30%数据缺失的原因。

数据正常缺失的处理相对容易,通常根据需要填充缺失值。在填充缺失值时,需要区分数据是整条缺失还是单字段缺失,填充时可以选择众数、均值或某些特定值。对于数据非正常缺失,首先确定数据是否可以修复;若不可修复,则需要谨慎使用,相关特征需要特别标注影响的时间段。

3、异常值处理

异常值也称为离群点,就是数据集中存在的不合理的值。对于发现的异常值,一方面可以及时研究数据是否可修复,另一方面,在特征开发阶段可以增加相应处理逻辑,降低特征异常值的出现概率。异常值处理通常有以下3种方式。

(1)删除含有异常值的记录

(2)将异常值视为缺失,使用缺失值填充方法来处理;

(3)用特定值加以修正。

4、时间数据处理

因为特征挖掘通常使用时间窗来切分数据,而时间切分错误会导致整个模块绝大部特征无法使用。时间数据处理主要包含两个方面:一是对时间格式做统一的规范化处理;二是对数据进行时间维度上的过滤。

时间格式的规范化需要注意3个方面:统一时区、统一时间格式和选择合适的时间跨度。

统一时区需要注意特征离线回溯与线上实际调用的时区保持一致,否则会带来特征线上线下不一致的问题。

统一时间格式是指原始数据中同一个数据字段格式需要统一,如果采用时间戳还是字符型时间,字符型时间是精确到秒、小时还是天;

选择合适的时间跨度,需要根据数据更新频率和切分后的特征维度综合决定。

数据在时间维度上的过滤主要从两个方面进行:一是避免引入未来数据;二是避免时间未对齐问题。避免引入未来数据是指特征计算时避免使用业务发生时间点之后的数据,可以通过在特征计算时过滤掉回溯时间点之后的业务数据来实现;在一些特殊情况下,我们还需要考虑数据在线上实际获取时间与数据库写入时间的时间差,对于某些精确到秒的特征,需要过滤掉因线上获取延迟而无法取得的部分数据。避免时间未对齐问题是指特征挖掘时需要检查业务实际的时间窗口是否满足特征计算的时间窗口。例如新产品数据是1月份上线产生,计算1月末“近60天申请”时业务数据是不够60天的,但是计算“近7天申请”特征就是完整的。


四 
中间数据集构建


中间数据集构建是将清洗完成的原始数据初步处理成机构化的数据或者适用于某些特定算法的数据格式。

1、结构化数据。结构化数据本身是适合特征计算的,需要注意数据本身的粒度。结构化数据应用遇到的两种情况:一是粒度合适,可以直接应用;另一种是经过聚合汇总才能转换成建模可用的粒度。

(1)客户行为埋点数据。同一个客户通常存在多条行为埋点数据,并且客户每次登录的操作序列可能不同,业务系统通常以客户每次登录的维度来生成客户行为埋点数据,以客户ID作为客户本次登录所有埋点数据的唯一标识。

(2)客户历史申请记录。业务系统一般以单条申请记录保存,每个客户可能有多条历史申请记录。

(3)客户账单数据。挖掘贷后特征应用与贷后C卡模型需要订单粒度的特征,中间数据集为账单粒度的数据。

2、文本数据。文本数据特征挖掘方法有3种:一是提取关键字并将文本数据转换为结构化数据;二是基于机器学习或深度学习算法从文本中提取特征;三是使用文本分类算法训练文本分类模型,然后将模型输出的概率值作为特征使用。

(1)转化为结构化数据。先构建关键字集合,再根据关键字在每条文本中出现的次数构建中间数据集。关键字集合的构建一般是基于业务经验。

(2)构建适用于文本算法的数据集。首先需对每条文本做清洗和预处理,包括过滤标点符号、特殊字符、删除停用词;然后做分词,形成文本序列;最后合并一个客户的多条文本序列。

文本清洗。大部分的标点符号、HTML标签通常会给文本增加额外噪声。HTML标签可借助BeautifulSoup库来处理。文本中标点符号等特殊字符的清洗可以使用正则表达式。

文本预处理。清洗后的文本可以做分词、停用词过滤,以及对时间数据的提取Github上的常用停用词表项目中包含哈工大停用词表、百度停用词表和四川大学机器智能实验室停用词表。

3、关系网络数据。关系网络数据是用来描述实体之间关系的数据。处理关系网络数据通常分两步:

(1)从复杂的现实关系网络中抽取有价值的实体和关系并将其表达为图结构。

(2)构建中间数据集,转化为结构化数据或者构建适用于图算法的中间数据。

抽取图结构

从关系网络中抽取客户实体,将同班同学、亲属、同事和常用联系人都抽象为“相识”的关系。有向图和无向图。

 

转化为结构化数据

第1步:计算所有节点的特征,可以使用结构化数据特征挖掘方法;

第2步:针对每个节点抽取子图结构,基于计算效率的考虑,抽取子图结构通常只会针对节点的一度和二度邻居节点进行;

第3步:将所有节点的特征按照子图中心节点来整理,形成中间数据集。

特征挖掘的过程实际是通过将子图节点的特征做聚合转换等操作来生成中心节点特征。

构建适用于图算法的数据集

概念:邻接矩阵、度矩阵、拉普拉斯矩阵


 
特征的设计与生成


1、特征设计方法

 

2、基于业务逻辑生成特征

基于业务指标与风险的关系生成特征,根据业务的理解,抽取一些典型指标并作为特征使用。

基于不同数据交叉验证生成特征。通常认为不同数据交叉验证结果不一致的客户风险更高。

基于同类数据在不同场景或阶段的变化生成特征。

3、基于RFM思路生成特征

(1)首先需要将原始数据分为维度数据和度量数据,然后针对维度数据进行切分、针对度量数据做统计指标的计算,最后根据业务含义将二者结合,批量生成最终特征。

(2)生成方法


 
特征评估


1、特征覆盖率。

一是发现覆盖率过低的特征;二是发现覆盖率异常的特征。

特征覆盖率检查可以直接计算样本集中非空特征占比即可。

2、特征离散度

离散度是指特征值分布的离散程度。

计算特征离散度时通常使用变异系数。与极差、方差和标准差相比,变异系数不受数据量纲的影响,但只在平均值不为0时有定义。

变异系数可以使用SciPy库的variation()方法计算

3、特征时间相关性

特征时间相关性衡量特征值与时间的相关性,通过该指标可以发现一些与时间强相关但无意义的特征。

时间强相关的特征线下测试效果有时很好,但这种相关性在未来不一定复现。

可以使用Pearson相关系数衡量,具体计算时可以调用pandas库中的corr()函数。实践中Pearson相关系数大于0.8,表明特征与时间存在强相关性,应谨慎使用。


 
特征稳定性


主要使用PSI(Population Stability Index,群体稳定性指标)。

PSI范围

稳定性

表现/建议

0-0.1

特征基本稳定

0.11-0.25

略不稳定

持续监控后续变化

大于0.25

不稳定

剧烈变化,分析原因并找到应对方案


 
特征效果


通常使用IV值衡量。在评价特征区分度时,为了消除样本数量本身差异的影响,可以预先选择基准特征作为参考。基准特征选择:一是选择效果已知的特征,在同一个数据集上,对比两个特征效果;另一种是在特征子模型中引入随机变量,查看随机变量的重要性排序,方便评估特征模块的整体效果。重要性排在随机变量之后的特征可以被视为无区分度而不输出。

IV范围

预测能力

<0.02

几乎没有

[0.02,0.1)

[0.1,0.3)

中等

[0.3,0.5)

≥0.5

太强,需要确认


特别声明:本文部分内容引自《智能风控实践指南:从模型、特征到决策》,仅用于个人学习、研究,版权归作者所有。如有侵权,联系删除。

【声明】内容源于网络
0
0
天星数科
专注为中小银行零售信贷智能数字化转型,提供全流程联合运营落地服务
内容 37
粉丝 0
天星数科 专注为中小银行零售信贷智能数字化转型,提供全流程联合运营落地服务
总阅读16
粉丝0
内容37