【35分钟掌握金融风控策略14】AB测试和随机测试策略调优

2024-04-30 22:44

本文主要是介绍【35分钟掌握金融风控策略14】AB测试和随机测试策略调优,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

AB测试和随机测试策略调优

AB测试

AB测试应用举例

随机测试

随机测试应用举例


AB测试和随机测试策略调优

为了监控和优化线上运行的策略,往往会从原流量中切出一定比例的流量执行测试策略待测试完成后,通过分析测试结果,可评估线上运行策略的效能以及线上运行策略是否可进行调优操作。AB测试和随机测试是风控策略中常见的两种用来监控与优化策略效能的测试方法。

AB测试类似于冠军挑战,主要是通过对比A组策略和B组策略的效能进而选出最优策略进行应用,比较的策略可以是一整套策略集,也可以是单条策略;而随机测试可看作AB测试的特例,主要通过比较随机策略与非随机策略进而确定非随机策略的优化方向。在每次AB测试和随机测试完成后,基本上都会对当前策略的调优指明方向,也会为下一次测试奠定基础。

AB测试

AB测试在很多领域都有着较为广泛的应用。风控策略中的AB测试是从服从同一分布的客群中进行随机抽样,将客群分为A组(对照组)和B组(实验组,虽然实验组要求不少于一组,但大多数情况下都是一组),A组和B组的样本量需要足够支持分析且A组和B组样本占比之和为100%,然后通常基于控制变量法执行A组和B组策略,待测试完成后,对比A组和B组策略的效能,基于分析结果舍弃效能差的策略,选择效能好的策略进行应用的过程。

控制变量法是实验中常用的一种方法,即在保持其他影响因素相同的条件下,只改变可能影响最终结果的其中一个因素,最终查看实验结果的变化情况。风控策略的AB测试通常只有执行的策略是不一样的,其他会对策略结果产生影响的主要条件都是一样的,如在授信审批场景,在授信申请客群分布、授信审批通过率等相同的情况下,基于客群逾期率比较两套不同授信审批策略的优劣;在定额场景,在客群分布相同的情况下,基于人均净收益率比较两套不同定额策略的好坏;在贷后催收场景,在客群逾期分布相同、催收时间相同、催收人员相同的情况下,基于催收效果比较两套不同催收策略的好坏;等等。

在设计AB测试之前,通常是基于历史样本做了离线分析,已经线下证明新策略效能好。既然证明了新策略效果好,为什么还要再做 AB测试呢?因为离线分析用的往往是当前时点几个月前的样本,而几个月前的样本分布与当前时点样本的分布可能已经不一样,通过AB测试,可以降低新策略上线带来的不确定性风险,一定程度上降低试错成本,为策略的调优提供数据支持。虽然 AB测试可以精准评估线上运行策略的效能并为策略调优指明方向,但是一次AB测试要比较长的时间(通常为数个月)才能有结果,成本较高,所以,在进行AB测试之前,一定要审慎评估测试是否必须进行,以及付出和收获是否成正比,切勿为了测试而测试,从而造成资源的浪费。

在实际工作中,AB测试不但可以为策略调整指明方向,而且经常被用来证明策略开发人员工作的有效性,以及策略调整带来的影响,尤其在证明工作有效性的时候,有理有据,容易使听众信服。

AB测试应用举例

在贷前授信审批场景、定额场景、定价场景、贷中用信审批场景、调额场景、调价场景、贷后催收场景进行AB测试的频率会高一些,通过不断地进行AB测试,“挑战”线上运行的策略,有利于评估已有策略效能并推动已有策略的优化。

接下来,以贷前授信审批场景策略为例,说明如何通过AB测试来验证线上运行策略的有效性并推动线上运行策略的优化。假设基于贷前授信申请样本新开发了一个申请评分卡模型,通过Swap Set分析,证实了新模型要优于线上正在使用的模型(旧模型),于是,准备用新模型替换旧模型进行授信审批,此时,我们不禁要问,新模型上线后真的会比|日模型效果好吗?可通过AB测试来验证。具体步骤如下。

提出待验证问题

新模型上线后是否比旧模型效果好,这就是待验证的问题。

虽然基于历史样本进行过分析,证明了新模型效果好,但是,客群资质在不断变化,基于历史样本的分析结果作用在当前样本上,结果可能是不准确的。假如直接用新模型替换旧模型,若结果不准确,则可能为金融机构带来较大的损失。

设计并执行测试方案

对于提出的问题,可通过AB测试来验证。AB测试方案通常比较简单,在本次测试中,A组和B组除使用的模型策略不一致,其他策略均一致。具体测试方案为:A组随机分流50%执行旧模型策略,B组随机分流50%执行新模型策略,在进行AB测试时,尽可能使A组和B组的授信申请通过率一致,这样才容易比较新旧模型的效果。待A组和B组积累足够样本后,将所有样本都切换到A组,执行 A组策略,之所以将所有样本都切回A组,是因为A组的策略是经证明有效的,而B组的策略是待证明有效的,存在不确定性。

测试结果分析和策略调优

待测试样本有一定风险表现后,对测试结果进行分析时可能出现以下三种情况,不同情况对应不同的策略调优方式。

  • 1)新模型效果明显优于旧模型:因为已经进行的离线分析证明了新模型效果好,所以,在进行AB测试后,新模型效果优于旧模型效果的概率是比较大的,在此结果下,可用新模型替换旧模型进行风险决策。
  • 2)新模型效果不如旧模型:若新模型效果不如旧模型,则继续使用旧模型进行线上决策。与此同时,需要进一步分析新模型效果不如旧模型的原因,基于分析结果继续对新模型进行优化,待优化完成后,对旧模型展开新一轮的冠军挑战。
  • 3)新旧模型效果差不多:出现此种情况的概率较低,若出现此种情况,则可能是AB测试样本量不足导致的,可继续进行AB测试并基于分析结果分析新旧模型效果。

在风控过程中,AB测试可应用的场景非常多,应用方法灵活多变。在实际应用中,要以解决实际问题为出发点,具体问题具体分析。

随机测试

随机测试始于软件测试,是测试者除根据测试说明书对软件重要功能进行复测以外,还要对当前测试用例没有覆盖到的部分进行测试,是保证测试覆盖完整性的有效方式和过程。风控中的随机测试可以简单地认为是相关风控人员为评估现行的一些具体策略是否有效而设计的一次实验,该实验在测试范围内随机选取一部分样本执行随机策略,待测试完成后,对测试结果进行分析和论证,进而达到验证非随机策略是否有效的目的。
随机测试可以看作 AB测试的特例,不同之处在于,随机测试主要用来证明现行策略是否有效,是非随机与随机的对比,而 AB测试主要用来证明 A策略和 B策略谁更有效,是非随机与非随机的对比。

随机测试应用举例

相较于 AB测试,随机测试往往会导致风控指标的显著变化,成本较高,所以应用要少些,在贷前授信审批场景进行随机测试的频率会高一些。随机测试可以验证线上运行策略的有效性并为具体策略的调优指明方向。

接下来,以贷前授信审批策略为例,讲讲如何基于随机测试从微观和宏观层面精准评估策略效能并进行策略调优。在贷前授信审批场景,被策略拒绝的样本是没有风险表现的,所以贷前授信审批策略整体和授信审批策略中具体的每一条策略是否有效都是要打上间号的。那么,如何证明授信审批策略整体和授信审批策略中具体每一条策略的效能呢?答案是可基于随机测试证明。随机测试的具体步骤如下。

提出待验证问题

如何证明贷前授信审批策略整体和授信审批策略中每一条策略的效能即提出的待验证的问题,这个问题与AB测试待验证问题的不同之处在于没有明确的比较对象,对于没有明确的比较对象的问题,通常可考虑进行随机测试来解答,即通过特定策略与随机策略进行对比,基于测试结果的量化指标来说明非随机策略是否有效。

设计并执行测试方案

设计随机测试方案时,可选取通过了准入策略和反欺诈核身(核实用户真实身份)策略的客群作为测试样本,从测试样本内随机挑选一定比例(通常为2%~5%)的样本执行随机测试策略。随机测试策略与非随机测试策略唯一不同的地方在于策略触碰后的结果均为通过而非拒绝,所以执行了随机测试策略的样本均会有风险表现,待随机测试样本达到足够分析的数量后(如至少有3000条样本),即可停止测试,将全部流量切回非随机策略。

在随机测试过程中,因为选取了一部分样本执行随机策略,所以通常情况下会引起整体通过率和逾期率的显著上升,要做好一定的心理准备。

测试结果分析和策略调优

待测试样本有一定风险表现后,即可通过分析测试样本的风险表现情况来评估授信审批策略整体和授信审批策略中每一条策略的效能。与AB测试不同的地方在于,随机测试需要从整体和个体两个层面分析策略的有效性并进行策略调优,而AB测试是直接对比分析A组和B组两套策略的整体效果并进行策略调优。

策略整体有效性分析和调优

策略整体有效性分析比较简单,直接将随机测试样本看作一个整体,分析随机测试样本中所有策略触碰样本的风险表现情况即可,分析的主要指标可以是Lift值,Lift=随机策略触碰样本的Badrate/随机策略样本整体的Badrate。Lift取值通常有以下4种情况:若Lift≥3,则说明授信审批策略是有效的,需要持续监控策略效能;若1.5≤Lift<3,则说明授信审批策略有一定的效果,但是效果不显著,仍有较大的优化空间,需要尽快进行策略优化;若1≤Lift<1.5,则说明授信审批策略比随机策略略好,但是效果很差,需要尽快挖掘上线新的策略并进行已有策略效能优化;若Lif<1,则说明授信审批策略是无效的,甚至拒绝的都是好客户,需要尽快进行策略重构。注意:在分析策略的整体效果时,此处工if区间值是作者基于业务经验确定的,不一定适合所有项目,在实际工作中,可基于真实的业务情况进行调整。

若经过分析发现策略整体效能不佳,则需要尽快做的动作通常只有两个:一是评估已上线的每条策略的效能,基于策略效能情况进行策略调优;二是尽快挖掘效能好的策略并进行上线,更好地进行风险管控。

每条策略的有效性分析和调优

在获得随机策略触碰样本的风险表现数据后,评估每条策略效能就变得非常简单了。每条策略的效能分析思路与策略整体效能分析是一样的,将随机测试样本看作一个整体,分析随机测试样本中每条策略触碰样本的风险表现情况即可。分析的主要指标同样是Lit值,Lift=随机测试样本中每条策略触碰样本的Badrate/随机测试样本整体的Badrate。Lift取值通常有以下4种情况:若Lift≥5,则说明该条策略效能较好,且有收紧空间,可进一步收紧该策略;若3≤Lifi<5,则说明该条策略效能尚可,可不进行调整,继续监控即可;若1.5≤Lift<3,则说明策略表现未达到预期,可对策略进行适当放松操作;若Lift<1.5,则说明策略基本无效,可对策略进行下线操作。

print('要天天开心呀')

这篇关于【35分钟掌握金融风控策略14】AB测试和随机测试策略调优的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/950106

相关文章

35岁,是终点?还是拐点?

35岁,是终点还是拐点,取决于我们对生活和事业的态度、目标以及行动。这个年龄可以看作是一个重要的转折点,具有多重意义和可能性。 很多人在35岁时,已经在自己的职业生涯中建立了一定的基础,可能达到了管理层或专家级别。如果你还是一个基层员工,那你要反思一下,你的职业生涯规划可能出了问题,工作能力与人情世故为什么都没有突破?是否在某个领域深耕多年? 有些人可能会选择在这个年龄段重新评估自己

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

将一维机械振动信号构造为训练集和测试集(Python)

从如下链接中下载轴承数据集。 https://www.sciencedirect.com/science/article/pii/S2352340918314124 import numpy as npimport scipy.io as sioimport matplotlib.pyplot as pltimport statistics as statsimport pandas

服务器雪崩的应对策略之----SQL优化

SQL语句的优化是数据库性能优化的重要方面,特别是在处理大规模数据或高频访问时。作为一个C++程序员,理解SQL优化不仅有助于编写高效的数据库操作代码,还能增强对系统性能瓶颈的整体把握。以下是详细的SQL语句优化技巧和策略: SQL优化 1. 选择合适的数据类型2. 使用索引3. 优化查询4. 范式化和反范式化5. 查询重写6. 使用缓存7. 优化数据库设计8. 分析和监控9. 调整配置1、

华为某员工爆料:偷偷跑出去面试,被面试官鄙视了。第一句话就问:华为淘汰的吧,35岁了,这个年龄在华为能混得下去吗?身体没啥毛病吧

“你都35岁了,难不成是被华为淘汰的?在华为混不下去了吧?身体没啥毛病吧,我们这体检可是很严的。” 近日,一位华为员工在朋友圈爆料,自己在面试时遭到了面试官的无理取闹和人身攻击,原因仅仅是因为他35岁了,曾经在华为工作过。 这番话,充满了傲慢与偏见,让人听了义愤填膺。这位面试官的言行,不仅是对求职者的不尊重,更是对职场规则的践踏。 面试本应是双向选择的过程,企业和求职者在相互了解的基

设置Nginx缓存策略

详细信息 Nginx服务器的缓存策略设置方法有两种:add_header或者expires。 1. add_header 1)语法:add_header name value。 2)默认值:none。 3)使用范围:http、server、location。 配置示例如下: add_header cache-control "max-age=86400";#设置缓存时间为1天。add

编译测试后出现“发现不明确的匹配”错误

原文链接:http://blog.163.com/zhaoyanping_1125/blog/static/201329153201204218533/ 错误提示: 【“/”应用程序中的服务器错误。  分析器错误 说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。  分析器错误信息: 发现不明确的匹配。】   这个问题发生原因一般情况是

【Qt6.3 基础教程 16】 掌握Qt中的时间和日期:QTimer和QDateTime的高效应用

文章目录 前言QTimer:定时任务的强大工具QTimer的基本用法高级特性:单次定时器 QDateTime:处理日期和时间获取当前日期和时间日期和时间的格式化输出日期和时间计算 用例:创建一个倒计时应用结论 前言 在开发桌面应用程序时,处理时间和日期是一个常见且重要的任务。Qt框架提供了强大的工具来处理与时间相关的功能,其中QTimer和QDateTime是最核心的类。本

RODNet安装测试

项⽬地址: GitHub - yizhou-wang/RODNet: RODNet: Radar object detection network 搭建环境并配置RODNet 1. 参考README.md搭建并配置环境 准备数据集 1. 本实验使⽤ ROD2021 dataset. 百度⽹盘链接:百度网盘 请输入提取码 密码:slxy 2. 使⽤这个script来重新组织文件。 具体形

Mockito测试

Mockito 一 mockito基本概念 Mock测试是单元测试的重要方法之一,而Mockito作为一个流行的Mock框架,简单易学,且有非常简洁的API,测试代码的可读性很高。 Mock测试就是在测试过程中,对于一些不容易构造(如HttpServletRequest必须在Servlet容器中才能构造出来)或者说获取比较复杂的对象(如JDBC中的ResultSet对象)