如何评估分类模型的好坏
评估分类预测模型的质量,常用一个矩阵、三条曲线和六个指标。
- 一个矩阵:混淆矩阵;
- 三条曲线:ROC曲线、PR曲线、KS曲线;
- 六个指标:正确率Acc、查全率R、查准率P、F值、AUC、BEP值、KS值。
ROC曲线和AUC值
ROC曲线
ROC曲线(Receiver Operating Characteristic curve),即接收者操作特征曲线,是反映TPR和FPR的综合指标。
TPR = TP/(TP+FN),即正类中正确预测的百分比(查全率)。
FPR = FP/(FP+TN),即负类中错误预测的百分比(相当于误判率)。
ROC曲线是由点(TPR,FPR)组成的曲线,横坐标是FPR,而纵坐标是TPR。
显然,ROC曲线应该越靠近左上角越好,即表示查全率越高,而误判率越低。
一般来说,如果ROC是光滑的,那么基本可以判断没有太大的过拟合。
ROC曲线有助于比较不同分类器的相对性能。如下两个模型M1和M2,当FPR小于0.36时模型M1较好,而当FPR大于0.36时模型M2较好。
AUC值
与ROC曲线一同使用的,还有AUC指标。
AUC(Area Under Curve),其实就是ROC曲线下方的面积。
因为,ROC曲线一般都处于对角线的上方,即模型的效果应该比瞎猜(猜中的概率为50%)要好,所以AUC的取值范围一般是[0.5,1]。
AUC值越大,即ROC曲线越靠近左上角,其下方的面积越大,说明模型质量越高。
显然,由于ROC/AUC与混淆矩阵的TP、FP、TN、FN四个值都有关,所以,AUC是一个综合的评价指标。AUC值越大,也相当于TP和TN越大越好,FP和FN越小越好。
所以在大多数数据挖掘比赛中,要比较两个模型哪个会更优,AUC指标要比Accuracy指标常用得多,也比其它查全率R和查准率P要常用得多。
PR曲线和BEP值
PR曲线
PR曲线,反应的是查准率P和查全率R之间的关系。以P为横坐标,R作为纵坐标,就是PR网线。
P = TP/(TP+FP),即模型预测的正类中被正确预测的百分比。
R = FP/(FP+FN),即正类中被正确预测的百分比。
对于同一个分类模型,通过调整分类的阈值(从大到小变化),就可以得到不同的P-R值,即可画出PR曲线。
显然,我们要求P和R都应该是越高越好。如果一个模型的PR曲线被另一个模型的PR曲线所“包住”,则后者的性能要优于前者。如下图所示,模型A比模型C的性能要好,模型B比模型C的性能也要好。
一般情况下,查准率和查全率这两个指标不可能兼顾。要想查全率R高,则模型需要输出更多的样本(极端地,返回全部样本,则查全率为100%);要想查准率P高,则要求在模型认为的正类中,尽量地选择少的概率高的样本。
BEP值
PR曲线中,一般要求P和R都越高越好,因此引入了一个指标BEP来表示模型的质量。
BEP(Break Even Point),亦称盈亏平衡点、保本点。即当查准率=查全率时的值。
在上图中,模型A和模型B,由于存在交叉,不太容易判断哪个模型会更好。如果使用BEP来判断,可知模型A的性能要优于模型B的性能。
显然,由于PR /BEP与混淆矩阵的TP、FP、FN三个值都有关(与TN无关),所以,BEP并不是一个综合的评价指标。
但是,即使是正样本非常少的情况下,PR表现的效果也比较好。也就是说,在正负样本不平衡的情况下,PR曲线比ROC曲线能更有效地反应分类器的好坏。
KS曲线和KS值
KS曲线
KS曲线(Kolmogorov-Smirnov),又叫洛伦兹曲线。以TPR和FPR分别分为纵轴,以阈值作为横轴,画出两条曲线。KS曲线反映的是在同一阈值下TPR和FPR的差值。
显然,我们希望的是TPR越高越好,而FPR越低越好,即要求两条折线离得越开越好,这说明模型对于正负样本区分度更好。
可以知道,KS曲线和ROC曲线一样,描述的都是TPR和FPR的关系,只是横坐标的取法不一样。
KS值
考虑到量化,所以将TPR和FPR折线的最远距离作为KS值,即KS=max(TPR-FPR),作为模型的分区度。
K-S值越大,表示评分模型能够将“好客户”、“坏客户”区分开来的程度越大。
一般认为:
1) 当KS<0.2时,模型无鉴别能力
2) 在0.2~0.4之间,模型勉强接受,需要考虑优化
3) 在0.4~0.5之间,模型有区别能力
4) 在0.5~0.6之间,模型有较好的区别能力
5) 在0.6~0.7之间,模型有非常好的区别能力
6) 当KS>0.75时,要检验模型是否过拟合
由于KS值主要是体现模型中差异的最大的一个分段,因此适合于找阈值。像信用评分卡中,就比较适合使用KS值来评估,寻找出最大的区分度阈值。
曲线对比
一般来说,ROC曲线会更稳定,在正负样本足够(样本均衡)的情况下,ROC曲线会比较稳定,能够反映模型的整体质量。当样本不平衡时,特别是正样本极少时,ROC曲线并不准确。
在样本不均衡时,特别是正样本数远小于负样本数时,采用PR曲线会更合适。
而KS曲线,只是反映出哪个分段的区分度是最大的,而不能反映出总体的效果。所以,KS曲线往往只用在寻找区分的最佳阈值(比如信用评分卡中的审批阈值)。
一般情况下,最好能够综合考虑上述的三种曲线以及三个指标,这样对模型有一个全面的质量评估。