风控“规则集”的性能测试(Python实操)
本篇更新策略篇的规则集性能测算及Python实操,内容选自《100天风控专家》第57期。
首先介绍规则集的完整分析流程,包括五个步骤。
一、规则集分析流程
1. 规则挖掘:有单变量规则、二维交叉规则、多维决策树规则、决策树规则可视化等常用的方法。
2. 规则评估:计算规则效果指标,如命中率、召回率、精准率等,筛选备选规则。
3. 规则集线下性能测试:将备选规则组成规则集,进行性能测试和评估
4. 规则集线上效果监控:按一定时间周期对规则集中的单一规则、组合规则的命中率稳定性监控。
5. 规则调优:根据监控指标和业务变化进行A类调优、和D类调优。
二、规则集线下性能测试
1. 综合命中率
综合命中率就是规则集作为整体的最终命中率,它是由内部规则共同作用后得到的一个综合结果。但是综合命中率一般不等于内部每个规则命中率之和,因为内部规则大概率是会有交叉命中情况的,也就是同时命中的情况,一般来说坏客户更容易触发多条规则,也就是同时命中多条。
2. 整体坏账率
整体坏账率也是针对规则集整体而言的,同样的内部单一规则的坏账率之和也不等于整体坏账率,计算逻辑为:
根据单一规则命中统计规则集命中情况,任何一条命中即规则集命中; 统计规则集命中客户中坏客户数的比例。
3. 相互覆盖率
相互覆盖率是对规则集内部规则覆盖情况的统计,如果一个规则的命中可以完全被其他规则覆盖,那么该规则在规则集中就没有存在的价值了。或者从是否有独立贡献(命中)的角度来考虑,也就是单一命中率,即规则独立命中的比例有多少。完全被覆盖与单一命中率为0是等价的。
三、案例分析Python代码实操
通过配置决策树参数以及入模变量数量,自动化生成规则100多条,通过规则评估指标如命中率、精准率、召回率、lift进行初步筛选,组成为规则集进行初步的性能测试。
然后通过相互覆盖率、单一命中率对内部规则进行二次筛选,得到最终的有效规则组合,最后再计算规则集的综合性能指标。
以下是通过相互覆盖率筛选内部规则的案例结果。相同颜色的规则是互相覆盖的,对于相互覆盖的规则如何进行取舍。