AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线


关于AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线。在别人的博客里看到下面的一个小故事:

故事是这样的:

​ 首先,混淆矩阵是个元老,年龄最大也资历最老。创建了两个帮派,一个夫妻帮,一个阶级帮。

​ 之后,夫妻帮里面是夫妻两个,一个Lift曲线,一个Gain曲线,两个人不分高低,共用一个横轴。

​ 再次,阶级帮里面就比较混乱。

​ 1.帮主是ROC曲线。

​ 2.副帮主是KS曲线,AUC面积。

​ 3.AUC养了一个小弟,叫GINI系数。

1.AUC

​ AUC为ROC曲线下的面积,用于作为二分类模型的评价指标。

​ 要理解AUC,首先得明白混淆矩阵。

1.1.混淆矩阵

​ 混淆矩阵如下:

1(真) 0(假)
1(阳) TP(真阳) FP(伪阳)
0(阴) FN(伪阴) TN(真阴)

​ 真阳率(召回率)TPR=TPTP+FNTPR=\frac{TP}{TP+FN},表示的是,所有真实类别为1的样本中,预测类别为1的比例。TPR越大,表示越有可能是对的。

​ 伪阳率FPR=FPFP+TNFPR=\frac{FP}{FP+TN},表示的是,所有真实类别为0的样本中,预测类别为1的比例。

1.2.ROC曲线

​ 横轴为FPR,纵轴为TPR。目的是希望FPR尽可能小,TPR尽可能大。

​ 画出来的图一般如下图所示:
AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线
​ 通过模型预测得到各样本的预测值(如0.6、0.7等),则通过选择归于正类的阈值来判断各个样本的类别,之后则可以计算对应的TPR和FPR。常常将得到的各个样本值对应的预测值作为阈值,并计算对应的TPR和FPR。之后将得到的各点与(0,0)和(1,1)相连,则得到了ROC曲线。之后,计算ROC曲线下的面积则有AUC值。

1.3.关于AUC值

​ AUC值在[0.5,1]中,0.5代表模型并无分类效果。若小于0.5则表示还不如随机猜测,但是此时如若反向预测,则得到的模型优于随机猜测。AUC值越高越好。

​ 此外,AUC值相比于准确率这一指标好的优势在于对数据不平衡的数据集构建的模型有更好的评价意义。

​ 例:在反欺诈场景中,0占99.9%,1占0.1%。若此时有个模型将样本全预测为0,则准确率为99.9%。虽然看起来拥有很高的准确率,但全预测为0无异于瞎猜,这样的模型并没有实际的区分能力。而当我们计算这个模型的AUC值时,就会发现,该模型的AUC值为0.5,表示并没有分类能力。这就是AUC的优势????

2.KS评价指标

​ 通过衡量好坏样本的累计分布的差值来评估模型的风险区分能力。

​ 定义:KS=MAX(TPRFPR)KS=MAX(TPR-FPR)

​ KS与AUC均使用TPR、FPR两个指标,区别在于:

  • KS取的是TPR与FPR的差的max,可通过此找到最优阈值;

  • AUC评价的是模型整体的效果,并没给出好的切分阈值。

    得到KS曲线如下图所示:
    AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线
    前期TPR提升越快,模型效果越好。

    KS取值范围 模型效果
    KS<0.2 无区分能力
    0.2≤KS<0.3 模型具有一定区分能力,勉强可以接受
    0.3≤KS<0.5 模型有较强区分能力
    0.5≤KS<0.75 模型具有很强区分能力
    0.75≤KS 模型可能有异常(效果太好,以至于可能有问题)

3.洛伦兹曲线

​ 曲线纵轴:违约数占违约总量百分比的累计值,即TPR。

​ 曲线横轴:被拒绝申请的百分比,FP+TPFP+TN+FN+TP\frac{FP+TP}{FP+TN+FN+TP}。可理解为选择的阈值。

​ 画出来的可能的图为:
AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线或者AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线
​ 当情况中坏样本很少时,即TP与FN均较小时,有下式:

FP+TPFP+TN+FN+TPFPFP+TN\frac{FP+TP}{FP+TN+FN+TP}\approx\frac{FP}{FP+TN},右边即为FPR

​ 此时,洛伦兹曲线与ROC曲线基本一致。

4.Gini系数

​ 衡量坏账户数在好账户数上的累积分布与随机分布曲线之间的面积。

​ 定义:绝对公平线(y=x)与洛伦兹曲线围成的面积与绝对公平线以下面积的比例。

​ 若为上方的左图情况,则对应的Gini=AA+BGini=\frac{A}{A+B}

​ 若为上方的右图情况,则对应的Gini=AC=AA+BGini=\frac{A}{C}=\frac{A}{A+B}

当洛伦兹曲线与ROC曲线重合或近似一致时,此时画出来的图类似于上方右图,

​ 有Gini=AA+B=AUCC0.5=AUC0.50.5Gini=\frac{A}{A+B}=\frac{AUC-C}{0.5}=\frac{AUC-0.5}{0.5}

Gini=2AUC1\Rightarrow Gini=2*AUC-1

​ 需要注意的是,此时洛伦兹曲线与ROC曲线重合或者近似一致时才成立。若因实际情况中坏样本较多,导致洛伦兹曲线与ROC曲线并不近似,则需按上方所述定义计算Gini系数。

5.Lift曲线和Gain曲线

​ Lift曲线表示的是相较于不利用模型时模型的提升指数。

Lift=TPTP+FPTP+FPTP+FP+FN+TN=TPTP+FPPP+NLift=\frac{\frac{TP}{TP+FP}}{\frac{TP+FP}{TP+FP+FN+TN}}=\frac{\frac{TP}{TP+FP}}{\frac{P}{P+N}}

​ Gain曲线是整体精准度的指标。

Gain=TPTP+FPGain=\frac{TP}{TP+FP}

​ 根据预测结果由大至小排序,依次选取截断点,计算Lift与Gain后绘图。(横轴为PP+N\frac{P}{P+N}(阈值))绘制出来的两曲线图如下所示:
AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线或者AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线
​ Lift曲线图(上左),当在很高的提升值上保持一段后,迅速下降至1时,表示模型较好。

​ Gain曲线图(上右),当蓝线快速上升至1时,表示模型较好。

6.总结

​ 各个指标的总结如下所示:
AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线
以上只是自己查阅网上资料所作的学习总结,如若有说得不好的地方,也欢迎留言友善讨论。谢谢????