关于AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线。在别人的博客里看到下面的一个小故事:
特别鸣谢Data+Science+Insight老师带我学习数据科学、让我也成为数据科学家 老师博客地址:[Data+Science+Insight](https://blog.csdn.net/zhongkeyuanchongqing/)
故事是这样的(向善于总结的大佬致敬):
首先,混淆矩阵是个元老,年龄最大也资历最老。创建了两个帮派,一个夫妻帮,一个阶级帮。
之后,夫妻帮里面是夫妻两个,一个Lift曲线,一个Gain曲线,两个人不分高低,共用一个横轴。
再次,阶级帮里面就比较混乱。
1.帮主是ROC曲线。
2.副帮主是KS曲线,AUC面积。
3.AUC养了一个小弟,叫GINI系数。
KS取值范围 | 模型效果 |
KS<0.2 | 无区分能力 |
0.2≤KS<0.3 | 模型具有一定区分能力,勉强可以接受 |
0.3≤KS<0.5 | 模型有较强区分能力 |
0.5≤KS<0.75 | 模型具有很强区分能力 |
0.75≤KS | 模型可能有异常(效果太好,以至于可能有问题) |
Lift曲线表示的是相较于不利用模型时模型的提升指数。衡量的是一个模型(或规则)对目标中“响应”的预测能力优于随机选择的倍数,以1为界线,大于1的Lift表示该模型或规则比随机选择捕捉了更多的“响应”。
Gain曲线是整体精准度的指标。
GINI系数衡量坏账户数在好账户数上的累积分布与随机分布曲线之间的面积。
ROC曲线横轴为FPR,纵轴为TPR。目的是希望FPR尽可能小,TPR尽可能大。
AUC为ROC曲线下的面积,用于作为二分类模型的评价指标。
对于分类模型,常用的指标有混淆矩阵、ROC曲线,AUC值,KS曲线以及KS值、Lift图,Gain图等,查阅了很多的资料,加入自己的理解整理了一下他们的计算方法和意义,希望对大家有帮助。
1. 混淆矩阵---确定截断点后,评价学习器性能
假设训练之初以及预测后,一个样本是正例还是反例是已经确定的,这个时候,样本应该有两个类别值,一个是真实的0/1,一个是预测的0/1
TP(实际为正预测为正),FP(实际为负但预测为正),TN(实际为负预测为负),FN(实际为正但预测为负)
通过混淆矩阵我们可以给出各指标的值:
查全率(召回率,recall):样本中的正例有多少被预测准确了,衡量的是查全率,预测对的正例数占真正的正例数的比率:
查全率=检索出的相关信息量 / 系统中的相关信息总量 = TP / (TP+FN)
查准率(精准率,Precision):针对预测结果而言,预测为正的样本有多少是真正的正样本,衡量的是查准率,预测正确的正例数占预测为正例总量的比率:
查准率=正确预测到的正例数/实际正例总数 = TP / (TP+FP)
准确率:反映分类器统对整个样本的判定能力,能将正的判定为正,负的判定为负的能力,计算公式:
Accuracy=(TP+TN) / (TP+FP+TN+FN)
阴性预测值:可以理解为负样本的查准率,阴性预测值被预测准确的比例,计算公式:
NPV=正确预测到的负例数/实际负例总数=TN / (TN+FN)
查准率和查全率通常是一对矛盾的度量,通常一个高,另外一个就低。两个指标都很重要,我们应该如何综合考虑这两个指标呢?
主要有两种办法:
1. "平衡点“ Break-Even Point, BEP
查准率=查全率的点,过了这个点,查全率将增加,查准率将降低。如下图,蓝色和橘黄色的交叉点就是“平衡点”
2. F1度量---查准率和查全率的加权调和平均数
(1)当认为查准率和查全率一样重要时,权重相同时:
(2)当查准率查全率的重要性不同时,即权重不同时:
通常,对于不同的问题,查准率查全率的侧重不同。比如,对于商品推荐系统,为了减少对用户的干扰,查准率更重要;逃犯系统中,查全率更重要。因此,F1度量的一般形式:
其中β表示查全率与查准率的权重,很多参考书上就只给出了这个公式,那么究竟怎么推导来的呢?
两个指标的设置及其关系如下,因为只考虑这两个指标,所以二者权重和为1,即
可以推导得到
带权重的调和平均数公式如下:
进一步推导:
因此
1. β=1,查全率的权重=查准率的权重,就是F1
2. β>1,查全率的权重>查准率的权重
3. β<1,查全率的权重<查准率的权重
那么问题又来了,如果说我们有多个二分类混淆矩阵,应该怎么评价F1指标呢?
多个二分类混淆矩阵可能有以下几种情况:多次训练/测试,多个数据集上进行训练/测试,多分类任务的两两类别组合等
这里介绍两种做法:
(1)宏F1
设有n个混淆矩阵,计算出查全率和查准率的平均值,在计算F1即可
这种做法认为每一次的混淆矩阵(训练)是同等权重的
(2)微F1
设有n个混淆矩阵,计算出混淆矩阵对应元素(TP,FP,FN,TN)的平均值,再计算查全率、查准率,F1
这种做法认为每一个样本的权重是一样的
2. ROC曲线, AUC ----评价学习器性能,检验分类器对客户进行正确排序的能力
分类器产生的结果通常是一个概率值不是直接的0/1变量,通常数值越到,代表正例的可能性越大。
根据任务的不同也会采取不同的“截断点”,大于则为正例,小于则为反例。如重视查全率,则阈值可以设置低一些;而重视查准率,阈值可以设置高一些。
如果设定了截断点或明确了任务,那么我们根据混淆矩阵就可以知道分类器的效果好坏。
在未设定截断点(任务不明确)情况下,我们如何评价一个分类模型的效果的好坏或者比较不同分类模型效果?
我们可以观察这个学习器利用所有可能的截断点(就是所有样本的预测结果)对样本进行分类时的效果,注意要先对所有可能的截断点进行排序,方便对比观察。
ROC曲线描绘的是不同的截断点时,并以FPR和TPR为横纵坐标轴,描述随着截断点的变小,TPR随着FPR的变化。
纵轴:TPR=正例分对的概率 = TP/(TP+FN),其实就是查全率
横轴:FPR=负例分错的概率 = FP/(FP+TN)
如果是随机分类,没有进行任何学习器,FPR=TPR,即正例分对和负例分错概率相同,预测出来的正例负例和正例负例本身的分布是一致的,所以是一条45°的直线。因此,ROC曲线越向上远离这条45°直线,说明用了这个学习器在很小的代价(负例分错为正例,横轴)下达到了相对较大的查全率(TPR)。
作图步骤:
1. 根据学习器的预测结果(注意,是正例的概率值,非0/1变量)对样本进行排序(从大到小)-----这就是截断点依次选取的顺序
2. 按顺序选取截断点,并计算TPR和FPR---也可以只选取n个截断点,分别在1/n,2/n,3/n等位置
3. 连接所有的点(TPR,FPR)即为ROC图
例图:因为样本有限,通常不是平滑曲线
判断标准:
1. 一个ROC曲线完全”包住“另一个ROC曲线--->第一个学习器效果更好
2. 两个ROC曲线相交--->利用ROC曲线下的面积(AUC,area under ROC curve,是一个数值)进行比较
3. KS曲线,KS值---学习器将正例和反例分开的能力,确定最好的“截断点”
KS曲线和ROC曲线都用到了TPR,FPR。KS曲线是把TPR和FPR都作为纵坐标,而样本数作为横坐标。
作图步骤:
1. 根据学习器的预测结果(注意,是正例的概率值,非0/1变量)对样本进行排序(从大到小)-----这就是截断点依次选取的顺序
2. 按顺序选取截断点,并计算TPR和FPR ---也可以只选取n个截断点,分别在1/n,2/n,3/n等位置
3. 横轴为样本的占比百分比(最大100%),纵轴分别为TPR和FPR,可以得到KS曲线
4. TPR和FPR曲线分隔最开的位置就是最好的”截断点“,最大间隔距离就是KS值,通常>0.2即可认为模型有比较好偶的预测准确性
4. Lift 和Gain图
个人认为前三个指标应用场景更多一些。
Lift图衡量的是,与不利用模型相比,模型的预测能力“变好”了多少,lift(提升指数)越大,模型的运行效果越好。
Gain图是描述整体精准度的指标。
计算公式如下:
作图步骤:
1. 根据学习器的预测结果(注意,是正例的概率值,非0/1变量)对样本进行排序(从大到小)-----这就是截断点依次选取的顺序
2. 按顺序选取截断点,并计算Lift和Gain ---也可以只选取n个截断点,分别在1/n,2/n,3/n等位置
例图:
跟ROC类似,Lift(提升)和Gain(增益)也一样能简单地从以前的Confusion Matrix以及Sensitivity、Specificity等信息中推导而来,也有跟一个baseline model的比较,然后也是很容易画出来,很容易解释。以下先修知识,包括所需的数据集:
分类模型的性能评估——混淆矩阵
分类模型的性能评估——ROC和AUC
。。。。
。。。。。。
以上提到的ROC、Lift、Gains,都是基于混淆矩阵及其派生出来的几个指标(Sensitivity和Specificity等等)。如果愿意,你随意组合几个指标,展示到二维空间,就是一种跟ROC平行的评估图。比如,你plot Sensitivity*Depth一把,就出一个新图了,——很不幸,这个图叫做Lorentz Curve(劳伦兹曲线),不过你还可以尝试一下别的组合,然后凑一个合理的解释。
Gains chart是不同阈值下PV+和Depth的轨迹(Lift与之类似),而ROC是sensitivity和1-Specificity的对应,前面还提到,Sensitivity(覆盖率,True Positive Rate)在欺诈监控方面更有用(所以ROC更适合出现在这个场合),而PV+在数据库营销里面更有用(这里多用Gains/Lift)。
参考:分类模型的性能评估——Lift和Gain
参考:[数据挖掘理论与案例] 模型评估 lift(提升)和gain(增益)
参考:分类模型的评价指标--混淆矩阵,ROC,AUC,KS,Lift,Gain
参考:AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线