数据的实操与测试|附代码(全了)

业务背景与数据概况
某消费金融机构拟引入某外部三方数据征信机构的一款数据产品,以丰富公司金融产。在数据引入之前,金融机构的数据分析人员需对数据产品进行测试,从多个维度评估数据的综合应用效果,从而为公司是否采用此数据产品提供理论依据与业务参考。
对三方数据的使用,必须从贴近业务的角度出发,梳理相应的贷前/贷中/贷后模块流程如下:
在这里插入图片描述

在以上风控流程中,客户准入时提供的资信材料有限,业务机构如果仅仅根据内部所适配的风险数据给出的风险评估非常片面,所以必须依赖于第三方供应商提供数据作风控支撑。
第三方供应商基于自身的平台整合成数据网络,可关联更多的风险信息;而业务方仅需要根据自身储备的风险数据维度,适量补充短板,实现更全面的覆盖即可。
如何对选择后的数据如何作测试、效果评估。站在具体的风控流程是将业务跟数据的紧密结合,在评估数据的共性上,我们同样把控以下5个要点:
数据真实:数据源真实可靠,数据内容未经篡改或加工;
信息准确:数据解析准确,不出现乱码、错位、错值、空值等数据错误;
持续稳定:数据共赢稳定、持续,不可出现可引起业务停滞的重大服务中断事故;
覆盖完善:所供数据覆盖范围完整,数据完备程度高,可制成业务决策;
更新及时:数据返回时间、数据更新时间复核金融机构业务需求,数据及时有效;

数据的评估在之前我们公众号的评估上的一些覆盖率、查得率、正确率的指标已经多次提及,有兴趣的童鞋可以看看这篇文章:揭秘一份集团公司的三方数据对接情况。今天我们我们结合代码实操跟大家系统性地讲讲这方面的内容。
一.数据测试流程
金融公司通过提供测试样本加密主键ID、回溯日期date至数据机构,数据提供方经数据回溯返回测试样本数据。
在这里插入图片描述
图1 数据测试业务流程

图1为数据测试的整个业务流程,其中在数据获取环节,首先是银行通过提供测试样本加密主键id、回溯日期date至三方数据机构,然后数据提供方经数据回溯返回测试样本数据,最后银行方数据分析人员将测试样本的贷后表现标签与测试数据进行匹配,得到一份完整的待评估测试数据。数据集整体结构的部分样例,具体如下图2所示。
在这里插入图片描述
图2 测试数据集部分样例

测试样本数据集的文件格式为excel,样本数量为15000条,特征数量为8个。其中,字段id、date、flag为银行方特征,其余5个字段均来源于三方数据机构,也是本文后续测试内容的评估对象,测试数据具体的特征字典如图3所示。
在这里插入图片描述
图3 数据特征字典

采用Python语言工具将本地excel测试数据导入到开发环境中,可以比较直观地了解测试数据的EDA统计分布等情况,便于后续解决方案的构思,以及对测试数据的业务理解,部分代码与实现结果分别如图4、图5所示。

导入数据部分
测试的数据为一份模拟的三方模型分数据,包含了用户id(user_id),申请日期(date),模型分(sf_score),y标签(flag)。数据量为1.5w左右。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图4 数据探索部分代码

在这里插入图片描述
图5 数据EDA分布

二.数据评估步骤
根据测试样本数据概览可知,待评估的5个特征中均为标签类特征,分别描述用户在信用能力、消费能力、出行能力、稳定能力各个维度的信息指数,取值范围为0至1,取值越大,反映用户在对应维度方面的资质表现越好。这些字段的标签含义,在三方数据机构返回测试数据时,会同步提供一份测试字段的说明文档,便于银行数据分析人员的测试评估与业务理解。
在测试评估数据效果的工作流程中,只有综合考虑测试数据特征的分布类型与业务情况,才能分析得到一套有效且合理的解决方案。现结合本次案例的测试数据特征情况,本文将从以下6个维度依次对待评估特征进行测试分析,评估指标分别为“二率”、“四性”,具体业务含义与加工逻辑如图6~7所示。
在这里插入图片描述
图6 评估维度之“二率”

在这里插入图片描述
图7 评估维度之“四性”

2.1.覆盖率
覆盖率是针对整个数据集的样本观测而言,这也是所有评估特征维度的第一步。覆盖率=已匹配样本数量/分析总样本数量,其中已匹配样本数量(num_nmiss)=全部评估特征不全为空的样本数量,分析总样本数量(num_total)为固定数据15000条。覆盖率=num_nmiss/num_total=(num_total-miss_all)/num_total,这里只需要算出全部评估特征全为空的样本数量miss_all,便可得到样本数据的覆盖率。
数据的查得率,从分布上可看到三方把缺失映射为-1了,我们做一下转换,然后计算模型分字段的非空占比,即查得率为99.5%,接近100%,符合业务预期。
在这里插入图片描述
图 8 覆盖率代码

在这里插入图片描述
图 9

从覆盖率分析结果来看,98.675%这个数值说明此测试数据的覆盖率是很高的,在实际业务场景中,在大多情况下,三方征信数据的覆盖率能达到90%以上,就可以满足业务需求。

2.2.缺失率
缺失率是对于每个待评估特征字段而言,需要分别算出每个评估特征的缺失情况。缺失率=特征缺失值样本数量/分析总样本数量,其中特征缺失值样本数量(num_miss)为评估特征缺失的数量,分析总样本数量(num_total)为固定数据8000条。缺失率的具体实现代码如图10所示,分析结果如图11所示。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6a2ef2d2378c4c679cd09a859272177a.pn
图10 缺失率实现代码

在这里插入图片描述
图11

从缺失率结果来看,各特征的缺失率范围不高,这个数值在实际业务中是完全可以接受的。一般情况下,特征的缺失率低于10%都是可以满足业务需求的。

2.3.有效性
有效性性,本次我们采用信息值IV与区分度KS来衡量:①信息值IV(Infromation Value):表示特征对目标预测的贡献程度; IV值越大,指标预测能力越强 ② 区分度KS(Kolmogorov-Smirnov):衡量的是好坏样本累计分部之间的差值; KS值越大,模型区分能力越强。有效性的具体实现代码如图12所示,分析结果如图13所示。
在这里插入图片描述
图12
在这里插入图片描述
图13
在这里插入图片描述
图14

其中批量计算iv的代码如下:
在这里插入图片描述

                                          图14.计算iv代码

计算ks的代码如下:
在这里插入图片描述

                                 图15.计算ks代码

批量计算ks值:
在这里插入图片描述

                         图16 批量计算ks

2.4.相关性
由图5数据特征的分布类型可知,待评估特征均为连续型,因此分析各字段的相关性,可采用pearson、spearman等系数。pearson(皮尔逊)、spearman(斯皮尔曼)系数是衡量两个连续变量之间的线性相关性程度,系数取值范围为[-1,1],正值代表正相关,负值代表负相关,系数的绝对值越大,说明变量之间的相关性越强。
计算相关性的代码如下:
在这里插入图片描述

                           图17 相关性代码

在这里插入图片描述

                图18 相关性分析结果


在这里插入图片描述

                   图19

从特征的pearson相关性结果来看,各特征之间的相关性程度较低。在实际业务中,当特征之间的pearson系数小于0.5时,说明特征的线性相关性程度很低。在某些情况下,如特征变量池的字段较少,相关系数的评定标准可以放宽至0.7。本案例待评估特征的相关性分析结果,是可以满足实际业务需求的。

2.5.稳定性
计算psi的代码如下:
在这里插入图片描述

                                            图20 psi计算代码

结果如下:
在这里插入图片描述

                                  图21 psi结果

在这里插入图片描述

                                   图22

(附:下面评估下尾部lift的一个稳定性,也是分为5部分,对每部分的lift表现画了折线图来作比较,从折现图上可以看到有两部分数据尾部lift不是单调变化的,表现为在(490,510)这段上lift降到最低点,在(510,530)和(530,540)上lift反而上升了。说明尾部lift的排序性不太稳定。但5部分数据最低分段上的lift都有2以上,说明对于最低分段的区分能力还是比较稳定的。)
在这里插入图片描述

                                     图23

2.6.解释性
解释性是从业务上评估特征的效果,具体来讲,解释性是指特征分布趋势与实际业务理解是否匹配。现以待评估字段score_credit(信用能力指数)的分布情况为例,具体如图21所示,根据各区间的好坏用户数可以得到区间的坏账率(bad_rate),指标直接反映了区间样本风险程度的高低。
在这里插入图片描述

                            图24 特征区间分布

从特征score_credit信用能力指数)的分布趋势可知,随着用户信用能力指数的增加,坏账率逐渐降低,这个是符合实际业务理解的。因为用户的信用能力指数越高,代表用户的信用度越好,违约概率较越低,坏账率自然呈现下降的趋势。根据以上分析逻辑,同样可以得到其他评估特征的分布变化趋势,从而判断特征的解释性是否合理。

可解释性的代码如下:
在这里插入图片描述

                        图25 可解释性代码

分析结果如下:
在这里插入图片描述

                   图26 可解释性

评估特征的区分度,可以通过模型KS、AUC、Gini等指标来分析,这里引入模型思路来评价特征,是将每个待评估特征作为一个模型,从而将模型指标映射到特征指标来进行分析。本案例选取KS指标来评估特征的区分度,KS(Kolmogorov Smirnow)表示模型分布区间好坏样本累计部分之间的差值,KS值越大,说明模型的区分能力越强。
根据以上推导特征区分度KS的逻辑步骤,可以编写自定义函数对所有评估特征进行KS指标批量输出,具体代码如图25所示,实现结果如图26所示。

从所有评估特征对应模型的指标KS结果来看,都可以满足实际业务需求。一般情况下,当单个特征对应模型KS值大于0.02时,说明特征具有一定区分度,可以在实际应用中进行保留。
从所有评估特征的PSI指标结果来看,都可以满足实际业务需求。一般情况下,当指标PSI小于0.1时,认为特征在不同数据样本的稳定性较好。本案例分析的特征,其PSI最大值为0.018,与业务场景中常采用的阈值0.1还有较大差距,说明评估特征的稳定性均表现较好。在实际工作场景中,PSI指标也是模型效果监测与优化的一个重要分析维度。

三.数据测试总结
本文结合金融信贷领域的实际业务场景,通过Python语言工具,对某三方测试样本数据依次进行了6个维度的综合测试评估,分别为覆盖率、缺失率、有效性、相关性、稳定性、解释性,汇总各个维度的评价指标。
综合测试样本数据的评估维度结果指标,可以很直观地了解到各个特征的效果表现,为公司是否采用此数据产品提供了理论依据与价值参考,这在实际业务场景中是非常重要的。同时,这份数据评估测试的结果报告,在对接引入数据后的特征应用有一定借鉴意义,包括策略规则开发、评分模型建立、客户画像描述等。
因此,在金融信贷领域中,三方风控数据产品的测试评估是一项基础且重要的工作内容。测试过程涉及到的知识与方法,在数据分析流程和业务熟悉理解等方面,都可以有效提高数据分析的综合能力。
PS:如需《数据的实操与测试》代码,在后台留言“代码”在知识星球童鞋可直接到星球后台获取数据+代码:
在这里插入图片描述

以上内容:
参考来自:
①《番茄风控往期星球课堂》
②《番茄风控全线条训练营》
在这里插入图片描述
在这里插入图片描述

本次训练营,三方数据模块我们又更新了隐私计算相关内容:

在这里插入图片描述
在这里插入图片描述

~原创文章

end

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值