在信贷风控场景中,我们经常接触到机器学习的分类模型,例如贷前的违约预测、贷中的风险预警、贷后的价值分层等,可以说分类模型是信贷模型体系的主要内容。对于分类模型效果的评估,我们也相对比较熟悉,常用的宏观评价指标包括KS、AUC、Accuracy、Precision、Recall、F1_score等,但在模型实际应用过程中,由于模型应用业务场景的区别,以及建模人员处理方法的差异,针对以上常见评估指标并不会同时用来综合分析,而是选择其中一项或多项来进行描述,最常见的便是指标Accuracy准确率,不仅通俗易懂,而且实现方便,在很大程度上确实可以反映模型决策的应用效果,因此是建模工程师经常采用的模型指标。
对于Accuracy的原理逻辑,是根据分类模型的混淆矩阵推理得到的,具体公式为Accuracy=(TP+TN)/(TP+FP+TN+FN),其中TP、TN、FP、FN分别代表真正例、真负例、假正例、假负例。Accuracy的取值范围为0~1,值越大说明模型的准确性能越强,这是对模型效果的通俗理解。当然,这个客观规律是没有问题,但需要我们注意的是,模型准确率Accuracy有其一定的局限性,这在模型评价与应用的实际场景中是非常重要的。为了大家进一步理解模型的准确率,本文将结合具体样例为大家简单介绍下指标的应用的局限性。
1、准确率高不一定代表模型效果好
模型准确率指标的推导过程,前提条件是将每个样本结果是同等看待的,也就是无论模型的预测结果正确与否,从模型性能指标分析其每个样本提供的信息影响程度是相同的,此处可以理解为是一种“均匀投票”的机制,与样本数据真实标签的权重没有任何关系。
在这种情形下,现举个实际样例,假设某反欺诈分类模型的建模数据包含10000条样本,目标变量分布0:1(非欺诈/欺诈)的比例为97:3,当然这属于样本不平衡的现象,这对于信贷业务的欺诈识别、销卡预测等场景是很常见的。在此建模场景下,如果我们不对样本不平衡情况进行有效处理,那么模型最终预测结果即使将目标1(欺诈)全部判断为0,则模型的准确率Accuracy值为97%,显然这个值对于准确度指标来讲是很高的,在不深入理解建模数据分布的情况下,让人很容易误解为模型的效果很好,而实质上模型的性能很差,也就是将真实欺诈用户全部预测为非欺诈,显然这并不符合实际业务需求。
因此,模型准确率高并不代表模型的效果,具体需要分析实际业务的应用场景,以及样本数据的分布情况。在信贷风控的日常工作中,如果听到有某个模型的准确率指标可以达到多高,不要简单的认为模型效果很好,而是需要进一步了解建模的具体场景。如果客观认识到模型的Accuracy(准确率)不能有效反映模型效果的好坏,可以采用其他模型指标来进一步判断分析,例如Precision(精确率)、Recall(召回率)、F1_score(F1分数)等。
2、准确率相同不代表模型判别能力相同
以上关于“准确率高不一定代表模型效果好”的问题,是围绕建模样本数据不平衡场景来描述的,虽然属于特殊场景但也是经常遇到的。其实对于正常场景也就是建模样本数据比较平衡的情形下,模型的Accuracy(准确率)指标依然存在着明显的局限性,那就是准确率相同不代表模型判别能力相同,现结合样例进行说明。
现有一份建模样本数据,采用不同的分类模型算法(例如逻辑回归、XGBoost等),或者采用同一模型算法但不同入模参数(优化方法、迭代次数、学习率等),来建立两个分类模型,其模型预测概率的分布结果如下图所示。
编辑
添加图片注释,不超过 140 字(可选)
图1 模型效果对比
上图展示的模型效果对比信息,为了便于分析假设建模数据只有10个样本id,true_label为样本的真实标签,predict_prob1、predict_prob2分别为两个分类模型对样本标签的预测概率,假设分类阈值threshold设置为0.5,则模型预测标签结果分别为predict_label1、predict_label2。
由模型预测结果可以看出,这两个模型的预测结果label是相同的,通过真实标签与预测标签对比可知,预测错误的样本id为N02、N08、N09,其余id预测正确,从模型指标Accuracy来分析,两个模型的准确率均为70%(7/10)。接下来便是我们想要描述的重点,若以模型Accuracy来衡量这两个分类模型的效果,那模型性能看起来是一致的。但是,我们可以进一步分析下预测标签predict_label的前提逻辑,也就是预测概率predict_prob,可以发现对于同一个样本的相同预测结果label,模型2的预测概率predict_prob表现更为优秀。例如,对于预测正确的样本N01,两个模型对应的预测概率值分别为0.871、0.962,模型2预测此样本为1的概率更高,对分类标签的判断精度更强。再例如,对于预测错误的样本N02,两个模型对应的预测概率值分别为0.173、0.469,模型2预测此样本为1的概率同样更高,虽然没达到分类阈值0.5,但相比模型1的预测精度更为合理。综合两个预测样例,可以说明模型2的分类性能是明显优于模型1,但从宏观指标准确率Accuracy是看不出的。
针对以上情况,在实际业务场景中,在两个模型准确率Accuracy一致的情况下,若不考虑其他模型指标(Precision、Recall、F1_score等),可以采用一个应用不是很广泛但特别有效的指标来进行分析,这个指标名称是“交叉熵”,简称BCE,可以直接反映分类模型自身的识别判断能力,原理逻辑公式如下:
编辑切换为居中
添加图片注释,不超过 140 字(可选)
其中,pn表示第n条样本模型预测对应真实标签label的概率(若label为1则为预测1的概率,若真实标签为0则为预测0的概率)。
模型交叉熵BCE的取值越小,说明模型对类型判别的区分能力越强。根据以上交叉熵的推导公式,可以得到模型1与模型2的BCE值,具体如下所示:
编辑切换为居中
添加图片注释,不超过 140 字(可选)
编辑切换为居中
添加图片注释,不超过 140 字(可选)
根据模型的交叉熵结果对比,由于BCE1<BCE2,说明模型1与模型2的分类判别能力是存在一定差异的,且模型2的区分能力更好,这也进一步验证了前边预测精度的分析过程与结论。因此,在实际场景中,模型的准确率相同并不代表模型判别能力相同,在多个模型的准确率Accuracy比较接近的情况下,可以考虑采用模型的交叉熵指标来分析,当然更不影响KS、AUC、Precision、Recall、F1_score的综合应用,具体需要结合场景需求以及建模经验,这也是风控的可妙之处。
综合以上内容,我们围绕实际业务场景,深入分析了模型准确率Accuracy指标应用的细节,一个是准确率高不一定代表模型效果好,另一个是准确率相同不代表模型判别能力相同,便于大家日常在建立分类模型任务中,更客观的理解模型效果与深入评价方法,从而提高自身的模型理解与分析能力。
关于风控模型相关的内容,在我们历史的会员课程跟知识星球社区平台中,也跟大家分享过不少相关干货文档跟文字。如这一期的文档内容,也得到了许多童鞋的点赞,如果还没查看,可以到知识星球平台学习这一相关内容:
编辑切换为居中
添加图片注释,不超过 140 字(可选)
编辑切换为居中
添加图片注释,不超过 140 字(可选)
关于风控模型,有兴趣的童鞋可关注:
编辑切换为居中
添加图片注释,不超过 140 字(可选)
...
~原创文章