分类模型评估体系
- 决策类评估——混淆矩阵指标
其中:TP:真正例,实际为正预测为正;FP:假正例,实际为负但预测为正;FN:假反例,实际为正但预测为负;TN:真反例,实际为负预测为负。
其中有些指标名称在不同行业有不同的名称,但其实是一个意思。
命中率(查准率、精准率、Precision):针对预测结果而言,预测为正的样本有多少是真正的正样本:正确预测到的正例数/预测正例总量 = TP / (TP+FP);
灵敏度(覆盖率、召回率、查全率,recall):样本中的正例有多少被预测准确了:预测对的正例/真正的正例 = TP / (TP+FN);
正确率(准确率、Accuracy ):Accuracy = (TP+TN) / (TP+FP+TN+FN) ;
特异度(负灵敏度、负覆盖率)= TN / (TN+FP);
F值(F1-scores):Precision和Recall加权调和平均数,并假设两者一样重要,
F1-score = (2Recall*Precision) / (Recall + Precision),
查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单任务中,才可能使二者都很高。
以上几个指标中不同行业看中不同的指标:
(1)灵敏度/召回率/覆盖率/查全率(——相对于命中率)
譬如灵敏度(召回率、查全率、覆盖率)这一指标就比正确率要重要,在数据挖掘领域常用。因为感兴趣的是正例(positive),比如在信用卡欺诈建模中,我们感兴趣的是有高欺诈倾向的客户,那么我们最高兴看到的就是,用模型正确预测出来的欺诈客户(True Positive)覆盖到了大多数的实际上的欺诈客户,那么覆盖率,就是一个非常重要的指标。
(2)命中率(查准率、精准率、Precision)(——相对于覆盖率)
欺诈分析中,命中率(不低于20%),看模型预测识别的能力。
在数据库营销里,你预测到b+d个客户是正例,就给他们邮寄传单发邮件,但只有其中d个会给你反馈(这d个客户才是真正会响应的正例),这样,命中率就是一个非常有价值的指标。
- 排序类指标评估
PR曲线
P-R曲线的P就是查准率(Precision),R就是查全率(Recall)。以P作为横坐标,R作为纵坐标,就可以画出P-R曲线。
对于同一个模型,通过调整分类阈值,可以得到不同的P-R值,从而可以得到一条曲线(纵坐标为P,横坐标为R)。通常随着分类阈值从大到小变化(大于阈值认为P),Precision减小,Recall增加。比较两个分类器好坏时,显然是查得又准又全的比较好,也就是的PR曲线越往坐标(1,1)的位置靠近越好。若一个学习器的P-R曲线被另一个学习器完全”包住”,则后者的性能优于前者。当存在交叉时,可以计算曲线围住面积,不太容易判断,但是可以通过平衡点(查准率=查全率,Break-Even Point,BEP)来判断。
下图中,基于BEP的比较,可以认为模型A优于模型B。
ROC曲线和AUC
根据混淆矩阵,我们可以得到另外两个指标:
真正例率:TPR = TP/ (TP+FN)
假正例率:FPR = FP/(TN+FP)
我们以真正例率(TPR)作为纵轴,以假正例率(FPR)作为横轴作图,便得到了ROC曲线,而AUC则是ROC曲线下的面积。给定一个二元分类模型和它的阈值,就能计算出模型的 FPR 和 TPR,并映射成由 (0, 0)、(0, 1)、(1, 0)、(1, 1) 四个点围成的正方形里。在这个正方形里,从 (0, 0) 到 (1, 1) 的对角线代表了一条分界线,叫作无识别率线,它将 ROC 空间划分为左上/右下两个区域。无识别率线描述的是随机猜测的模型。
以 0.5 的概率将新来的实例判定为正例,这种模型的 TPR 和 FPR 是处处相等的。在无识别率线左上方,所有点的 TPR 都大于 FPR,意味着分类结果优于二选一的随机猜测;而在无识别率线右下方,所有点的 TPR 都小于 FPR,意味着分类结果劣于随机猜测。完美的模型体现在 ROC 空间上的 (0, 1) 点:FPR=0 意味着没有假正例,没有负例被掺入;TPR=1 意味着没有假负例,没有正例被遗漏。
PR曲线与ROC曲线对比
P-R 曲线表示的是查准率和查全率之间的关系,曲线在点 (1, 1) 上达到最优性能;
ROC 曲线表示的是真正例率和假正例率之间的关系,曲线在点 (0, 1) 上达到最优性能。
与PR曲线相比,相对来讲ROC曲线会更稳定,在正负样本量都足够的情况下,ROC曲线足够反映模型的判断能力。而在正负样本分布得极不均匀的情况下(正样本极少),PR比ROC能更有效地反映分类器对于整体分类情况的好坏。
总之,只画一个曲线时,如果没有样本不平衡,倾向于用ROC(更简洁,更好理解)。如果数据样本不均衡,分两种情况:
情况1:如正样本远小于负样本,PR更敏感,因为用到了precision=(TP/(TP+FP))。
情况2:正样本远大于负样本,PR和ROC差别不大,都不敏感。
对于同一模型,PR和ROC曲线都可以说明一定的问题,而且二者有一定的相关性,如果想评测模型效果,也可以把两条曲线都画出来综合评价。
K-S曲线
KS曲线又叫洛伦兹曲线。KS曲线其实数据来源和本质和ROC曲线是一致的,只是ROC曲线是把真正率和假正率当作横纵轴,而K-S曲线是把真正率和假正率都当作是纵轴,横轴则由选定的阈值来充当。KS曲线就是两条曲线的在每一个阈值下的差值。
KS值,KS=max(TPR-FPR),即为TPR与FPR的差的最大值;
KS值可以反映模型的最优区分效果,此时所取的阈值一般作为定义好坏用户的最优阈值。KS值越大,模型的预测准确性越好。KS值的取值范围是[0,1] ,一般,KS>0.2即可认为模型有比较好的预测准确性。
Lift提升曲线
Lift提升曲线这个指标,常用在营销推广活动中,也就是说我的目标不再是尽可能找出潜在客户,而是想要提高客户的响应率,也就是我们不再关心覆盖率,而时关心命中率了。
正例的命中率是指预测为正例的样本中的真实正例的比例记作PV。
在不使用模型的情况下,我们用先验概率估计正例的比例记为k。
定义提升值lift=PV/k。
若经验告诉我们10000个消费者中有1000个是我们的潜在客户,则我们向这10000个消费者发放传单的效率是10%(即客户的响应率是10%),k=10%。通过对这10000个消费者进行研究,建立logistic回归模型进行分类,我们得到有可能比较积极的1000个消费者如果此时这1000个消费者中有300个是我们的潜在客户,则命中率PV为30%。
此时,我们的提升值lift=30%/10%=3,客户的响应率提升至原先的三倍,提高了投入产出比。
GINI系数
GINI统计值衡量坏账户数在好账户数上的的累积分布与随机分布曲线之间的面积,好账户与坏账户分布之间的差异越大,GINI指标越高,表明模型的风险区分能力越强。
GINI系数的计算步骤如下:
1. 计算每个评分区间的好坏账户数。
2. 计算每个评分区间的累计好账户数占总好账户数比率(累计good%)和累计坏账户数占总坏账户数比率(累计bad%)。
3. 按照累计好账户占比和累计坏账户占比得出下图所示曲线ADC。
4. 计算出图中阴影部分面积,阴影面积占直角三角形ABC面积的百分比,即为GINI系数。
参考文献
https://blog.csdn.net/u010159842/article/details/78471855blog.csdn.net 分类模型评价指标 - kamekin - 博客园www.cnblogs.com