一个优秀的模型上线报告以及一个优秀的上线后模型监控报表,在我们日常风控建模中是非常的常用并且有用的,今天这个话题就来和大家聊聊怎么去制作优秀的模型上线报告以及上线后的模型监控报表,主要聊聊思路,先要有一个全局的感受,具体实现放在下一期吧。以下内容均基于自己浅薄的经历提炼的,如有纰漏,欢迎指正或补充哦,欢迎交流~
01 聊聊为什么要做这件事 02 标配的风控模型上线报告应具备哪些内容 0201 模型现状 0202 KS值与各种曲线 0203 模型分组排序性 0204 跨时间模型分组稳定性 03 稳妥的模型监控报表应具备哪些内容 0301 模型一致性监控 0302 模型效果监控 0303 客群稳定性监控 0304 核心特征稳定性监控 0305 核心业务指标监控 04 总结一下
其实是两件事,一份是模型报告,一份是模型监控报表。 前者,为什么要做其实大家也应该有自己的想法,主要就是为了说服老板你这次开发的模型有用,要比线上正在运行的模型或者策略规则有用,不然为什么要费这么大劲去开发和上线呢?那么,我们需要从哪几个角度去描述我们的新模型效果,才能更好地让老板明白并接受?这是考验我们的地方。 后者,就是为了持续监控我们的模型效果,从刚上线到稳定运行再到后续的迭代更新,都是依靠我们的监控结果的,明确几个监控的维度,写好脚本每天或者每周跑一下,可视化给到我们自己去看看,做到心中有数。 以下讲解的报告,针对的对象偏向于模型本身的指标,而其实实际业务中,我们需要监控的内容有太多太多了,比如各个审批节点的通过率、逾期分布情况、Vintage分析、Roll Rate分析、Flow Rate分析等等,这篇文章就不展开来讲咯。
0201 模型现状 想要突出你模型的好,你得先分析旧模型的不好。 比如说,把目前线上模型的实际表现进行统计,如KS值、分组排序性、PSI等基础指标。一般,我们需要和当时模型上线时候的指标水平进行对比,然后按照年、月或者周去统计指标,主要可以突出其趋势水平,也就是说模型慢慢地失效,从而引出做模型迭代的背景,另外,也可以作为新模型的基准。
0202 KS值与各种曲线 我们需要描述模型的效果,在风控领域最直接的指标就是KS值,我们一般会认为KS>0.3才具备最基本的上线要求,而且我们要保证训练集、测试集以及跨时间测试集都需要达到标准哦!
另外,我们也可以绘制各种模型效果曲线,常用的会有KS曲线、ROC曲线、Lift曲线等。这里再来回顾一下这些曲线: 1)KS曲线:有两条关键曲线,分别是TPR和FPR,这是我们对于模型预测结果(正类的概率)划分不同阈值后得到的值所绘制出来的曲线。TPR为True Position Rate,真阳率,也叫召回率,计算公式为:
FPR为False Position Rate,假阳率,计算公式为:
当然了,KS曲线的横纵坐标,还可以是分桶桶号以及好坏样本累计占比率,如下图:
2)ROC曲线:ROC曲线又叫Receiver Operating Characteristic曲线,横坐标是FPR,纵坐标时TPR,我们希望TPR越大越好,最好等于1,FPR越小越好,最好等于0,而这条曲线下面的面积(under the curse),我们叫做AUC。
3)Lift曲线: Lift曲线,简单理解,就是对比在不使用模型的情况下,预测能力提升了多少,其计算公式如下:
0203 模型分组排序性 分组排序性在风控模型中的重要性不言而喻了,所以这个指标也是领导需要着重看的。我们对于目标的预测结果,都会在值域0-1之间,而预测值越大则代表越有可能是目标值1。一般情况下,我们会对预测结果按照一定的阈值,进行分组,比如分为A/B/C/D/E/F共6组,越靠后就意味着越有可能是高风险客户,我们给予一定的风控规则进行拦截。所以,我们的模型,需要对于分组后的BadRate,满足从A->F组,逐步升高的趋势,才符合我们的期望!
0204 跨时间模型分组稳定性 当然,即便我们的训练、测试以及跨时间测试集均满足上述的要求,但还有一个点我们是需要关注的,那就是稳定性,特别是跨时间上的稳定性,我们需要保证我们新上线的模型,在不同的月份上使用模型后得到的分组占比,相对稳定。
当我们的模型上线之后,我们需要持续地对模型进行监控,以免未来的变化导致我们的模型失效,无论是客群的变化、数据源的变化或者是政策的变化等,都会对我们的模型造成影响,我们没法预知或改变,但我们需要感知。
0301 模型一致性监控 这个监控在模型上线前期需要重点关注,因为我们模型各种指标的计算和效果评估,所用到的输入特征都是线下计算得到的,虽然我们在上线前会去校验线上线下的特征一致性,但是也难免有些场景没有考虑到以及测试到的,还有就是模型运行环境的变化,也有可能带来模型分数的差异,如果刚好落在不同分桶的边界上,就会比较尴尬了,当然我们也允许一定的误差,但这个误差有多大?我们需要有感知。
我们可以按照天的时间维度去统计指标,最后前端报表展示的时候,可以适当地按照周或者月去进行深一层聚合。
0302 模型效果监控 当我们的数据积累到1个月以上之后,我们就可以来计算一下线上模型的效果了,比如KS值、AUC等,同时也需要持续关注模型的排序性情况。
0303 客群稳定性监控 随着时间的推移,我们的客群可能会因为这种原因而导致分布发生了改变,比如我们拒绝通过的客户、风控策略放松收紧、宣传方式改变、政策改变等等,会让当下的进件客群的好坏分布情况,与当时建模时候的客群分布有较大的差异,从而导致模型的失效。我们需要感知到这种变化,因为这种变化一般来说不是立竿见影的,而是一种趋势,慢慢地就变成了当前这个样子。而需要实现对这个客群变化的监控,我们可以间接地使用分组稳定性来监控,如果上线后的分组占比情况与上线时一致,直观表现就是曲线的拟合程度高(基本重合),量化的话我们可以使用PSI指标来计算。
0304 核心特征稳定性监控 这里其实可以理解是上一个监控的延续。当我们发现模型的分组占比分布出现了比较大的变化,第一个我们需要去定位一下的是模型特征是不是正常的。可能因为各种原因吧,比如数据源出问题了,导致缺失值增多,也有可能是某个值域范围内的客户增多,可让我们进一步分析变化的原因。
0305 核心业务指标监控 核心指标,主要就是模型部署节点的审批通过率情况,我们需要持续观测这个指标,从不同的时间维度、分组客户的情况去观测。另外,传统的Vintage分析、Roll Rate分析以及Flow Rate分析也需要安排上。
上线前的模型报告我这边介绍的只是一个标准搭配版本,其实还可以有很多其他维度的,后续有机会继续分享一下。而模型上线后,我们前期主要监控模型整体及变量的稳定性,衡量标准主要是排序性和PSI,并每日观察模型规则的拒绝率与线下的差异。后期积累一定线上用户后可评估线上模型的AUC与KS,不过需要注意的是,比如像线上KS值这种指标,可能会因为线上模型通过率越低,KS值越低,所以具体的值监控起来没有太大的意义,我们更多的是需要关注趋势。
[1] 风控模型监控报告系统设计 https://zhuanlan.zhihu.com/p/83025492 [2] 模型评估方法之KS曲线和ROC曲线 https://zhuanlan.zhihu.com/p/87456089