在机器学习分类模型的建立过程中,根据目标变量的取值分布不同,可以分为二分类模型与多分类模型。在信贷风控中,例如申请信用评估、客户流失分析等模型应用属于二分类场景,信用风险评级、客户价值分层模型应用等属于多分类场景。虽然二者同属分类场景模型,可以解决样本数据的类别划分问题,但在模型训练的算法参数、模型实践的输出结果等方面,必然存在着对数据分析与业务理解的差异,尤其是针对模型效果的评估,在具体指标的实现与解读方面,二分类模型与多分类模型有着较大区别。
对于二分类模型的性能评估,我们相对更为熟悉,主要原因是在金融信贷风控领域中,二分类模型的应用场景明显居多。常见的二分类模型指标包括KS、AUC、Accuracy(准确率)、Precision(精确率)、Recall(召回率)、F1-score(F1分数)等,这些指标是我们训练好模型之后,可以直接用来量化评价模型的应用效果。当然,在实际场景应用过程中可能只选择其中几个来实现,具体需要结合模型的开发场景与应用目的进行综合选取。
对于多分类模型,从算法本质的原理逻辑上来讲,与二分类模型都归属分类问题,因此模型的评价维度可以理解为与以上二分类模型的指标是一致的,但是主要差异是指标的推理逻辑有着明显区别,毕竟多分类模型可以理解为是多个二分类模型的合成,需要综合考虑各个目标类型的区分效果,这也是多分类模型评估的核心要点。本文将围绕以上场景描述,来具体介绍下多分类模型的评价维度与实现方法,这里主要是通过“微观”与“宏观”两个角度来展开分析。
1、多分类模型场景实现
在介绍多分类模型指标的过程中,为了使理论知识与场景业务相结合,本文通过具体的实例样本数据,并采用相关工具语言来实现多分类模型的效果评价。实例样本数据包含5000条样本与10个特征,部分数据样例如图1所示,其中ID为样本主键,X1~X8为特征变量,Y为目标变量(取值多分类),自变量X与因变量Y的取值分布情况分别如图2、图3所示。
图1 样本数据
图2 特征变量分布
图3目标变量分布根据以上样本数据的分布情况可知,特征变量X与目标变量Y均为数值型特征,且无缺失值情况,可以直接用于模型训练拟合。由于标签Y的取值有1、2、3多个情况,因此需要采用多分类模型来实现,这里选取传统机器学习算法逻辑回归LR来训练模型,具体建模实现过程如图4所示。
图4 多分类模型训练与预测当模型训练拟合完成后,将预测结果标签pred_Y与原始真实标签data_Y的分布结果进行输出,可以得到模型标签Y的三维混淆矩阵,具体如图5所示,这也是评估多分类模型性能的基础指标。
图5 多分类模型混淆矩阵
对于真实标签与预测标签构成的混淆矩阵,在二分类场景下相对更为熟悉,通过对应二维决策矩阵下的真正例TP、真负例TN、假正例FP、假负例FN,可以得到二分类模型的相关评估指标,例如Accuracy(准确率)、Precision(精确率)、Recall(召回率)、F1_score(F1分数)等。但是,针对本文多分类模型输出的混淆矩阵,虽然相比二分类模型较为复杂,但本质上是多个二分类模型的分布结果。在采用相关指标来评估模型的综合性能时,虽然不能直接采用二分类方式来量化评价,但应用的原理思想是非常相近的,接下来我们便根据图5输出的混淆矩阵结果,来介绍多分类模型的评估方法,具体将会从“微观micro”与“宏观macro”两个维度来进行描述。
2、多分类模型微观评估
多分类模型“微观”评估是采用micro平均的思路来实现的,也就是针对分类模型指标(Accuracy、Precision、Recall、F1-score等)的推导过程,先算出所有类别的总体TP、TN、FP、FN数量,然后再根据公式得到相应指标结果。下面我们结合本文案例场景的模型混淆矩阵,来依次推导分类模型的常见指标Accuracy、Precision、Recall、F1-score。参照图5的标签分布结果,可以很容易得到目标变量各个类别的混淆矩阵指标,具体如图6所示。
图6 多分类标签的混淆矩阵根据图6展示的各类别(1、2、3)混淆矩阵指标TP、TN、FP、FN,可以进一步算出多分类模型的相关评价指标:
通过以上指标结果可见,在模型评估微平均micro情况下,模型指标Accuracy、Precision、Recall、F1-score的结果是一致,这并不是巧合,而是这种评估方式的固有属性。因此,在针对多分类模型的微观micro评价场景中,我们只需要算出以上模型指标的其中一个便可以映射到其他结果。
3、多分类模型宏观评估
多分类模型“宏观”评估是采用macro平均的思路来实现的,在输出模型相关指标的过程中,原始逻辑也是根据所有类别的TP、TN、FP、FN分布结果进行推导的,但与micro平均的方式相比,macro平均是分别算出每个类别的指标(例如Accuracy、Precision、Recall、F1-score等),然后再取所有类别的平均值作为模型的最终结果。下面我们仍然根据图6输出的各类别混淆矩阵,来分别算出每个类别的模型评价指标。由于算法逻辑一致,这里以类别1作为样例,具体过程如下所示:
根据以上类别1对应二分类模型的指标推导逻辑,可以同理得到类别2、3的指标结果,具体如图7所示。
图7 各二分类模型评价指标当得到各类别的二分类指标之后,只需要在各个维度下分别取其平均值,便得到了多分类模型的综合指标,最终评价结果如下:
由以上模型宏平均macro方式下的评估指标结果可以看出,与微平均micro评估结果相比,各模型指标存在一定差异,但都可以体现模型的综合性能。在实际多分类模型应用的场景中,如果对数据的每条样本等同看待,优先考虑微观micro平均方式;如果对数据的每个类别等同看待,优先考虑宏观macro平均方式,当然二者也可以同时使用,这样可以从不同维度来评价模型的效果。
此外对于“宏观”方式下多分类模型评估,还有一种更贴近实际目标数据分布的方式,也就是weighted评估,具体逻辑是根据各个类别的比例分别赋予不同的权重,然后得到相应的模型指标,而macro方式下是对各个类别等同看待赋予相同权重,而具体采用哪种方式更为合理,仍然要结合数据分布与场景需求等综合情况。
针对多分类模型的weighted评估,这里以模型指标Precision为例,介绍下weighted-Precision的实现过程,具体如下:
其中,Count1、Count2、Count3分别为样本目标变量类别1、2、3的真实数量(参见图5),
Precision1、Precision2、Precision3依次为各类别对应二分类模型的指标精确率(参见图7),根据以上公式可算出最终结果:
对于weighted评估方式下的Accuracy、Recall、F1-score等模型指标推导,可以参照以上逻辑过程来实现。
4、模型评估自动化实现
通过以上介绍,我们整体熟悉了多分类模型在micro、macro、weighted三种方式下模型指标的具体推导过程,全面理解了各指标的原理逻辑及其业务含义。这些模型指标的实现,看似比较复杂,但其算法逻辑是比较简单的,这也是我们从事风控模型工作必须掌握的。此外,在实际场景应用中,若实现综合平均性指标,可以不需要按照以上步骤来逐步推导,在python语言中直接调用函数包便可以输出指标结果。但是,这并不影响本文所要介绍的重点,无论采用什么方法获取最终结果,但是关于多分类模型各评估指标的底层算法逻辑,大家需要重点掌握,这是采用算法工具语言的前提,也是数据建模人员必备的能力。采用函数获取直接获取多分类模型各类平均指标的具体过程如图8所示,其中data_Y与pred_Y分别对应本文案例的真实标签与预测标签,输出结果如图9所示。
图8 多分类模型指标实现
图9 多分类模型指标结果通过以上自动化输出的指标结果,与前边公式手动推导的指标结果对比可知,二者是一致的,在具体实践中可以针对场景来综合应用。
综上所述,我们围绕实际场景与样本数据,详细描述了针对多分类模型效果评估的实现方法,具体通过“微观”与“宏观”两个维度三种方式(micro、macro、weighted)来展开介绍的。