分类模型评估指标

本篇先考虑二分类问题,记录常用到的评估指标。

混淆矩阵

假设在训练之前和预测之后,一个样本的标记是确定的两个类别,一个是真实的1/0,一个是预测的1/0,其中1表示正例、0表示负例。

混淆矩阵.png

其中:TP(实际为正预测也为正)、FP(实际为负但预测为正)、TN(实际为负预测也为负)、FN(实际为正但预测为负)

通过混淆矩阵,可以给出以下各指标的值:

  • 召回率(查全率,Recall):所有实际是正样本的有多少被正确预测为正样本,即预测对的正例数占真正的正例数的比率:
    Recall = TP / (TP+FN)

  • 精准率(查准率,Precision):被预测为正样本的样本中有多少是真的正样本,即预测对的正例数占预测为正例总数的比率:
    Precison = TP / (TP+FP)

  • 准确率(Accuracy)反映分类器对整个样本的预测能力,能将正的预测为正,负的预测为负,计算公式:
    Accuracy = (TP+TN) / (TP+FP+TN+FN)

  • 阴性预测值 :可理解为负样本的查准率,负样本预测值被预测正确的比率,计算公式:
    NPV = TN / (TN+FN)

查准率和查全率是一对矛盾的度量,一般来说,一个高的时候,另一个就低。

F1值 --- 查准率与查全率的加权调和平均数
(1)当认为查准率与查全率一样重要时,即权重相同时:

1.1.gif

(2)当查准率和查全率的重要性不一样时,即权重不同时:
一般对于不同的问题,查准率与查全率的侧重不同。因此,F1值的一般形式为:

1.2.gif

其中β表示查全率与查准率的权重。下面对该这个一般形式的公式进行推导:
两个指标的设置及其关系如下,因为只考虑这两个指标,故二者权重之和为1,即:

1.3.gif

由上式可得到

1.4.gif

因此,可得带权重的调和平均数公式可变为

1.5.gif

进一步推导,可得

1.6.gif

总结

  1. β=1,查全率的权重=查准率的权重,即为F1
  2. β>1,查全率的权重>查准率的权重
  3. β<1,查全率的权重<查准率的权重

ROC曲线与AUC值

在介绍ROC曲线前,先明确以下几个概念,在混淆矩阵中
真阳性率(True Positive Rate,TPR),灵敏度(Sensitivity),召回率(Recall):
Sensitivity=Recall=TPR= TP/(TP+FN)
真阴性率(True Negative Rate,TNR),特异度(Specificity):
Specificity=TNR=TN/(FP+TN)
假阴性率(False Negative Rate,FNR),漏诊率(=1-灵敏度):
FNR=FN/(TP+FN)
假阳性率(False Positive Rate,FPR),误诊率(=1-特异度):
FPR=FP/(FP+TN)

ROC曲线:接收者操作特征曲线(receiver operating characteristic curve),是反映敏感性和特异性连续变量的综合指标,ROC曲线上每个点反映着对同一信号刺激的感受性。

下图是一个ROC曲线示例:

ROC.png
  • 横坐标:1-Specificity,假正类率(False Positive Rate,FPR),预测为正但实际为负的样本占所有负样本的比例。FPR越大,预测的正类中实际负类越多。
  • 纵坐标:Sensitivity,真正类率(True Positive Rate,TPR),预测为正且实际为正的样本的占所有正例样本的比例。TPR越大,预测的正类中实际正类越多。

在一个二分类模型中,例如逻辑回归学习器,针对其输出的每个样本为正例的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类,对应的就可以算出一个组(FPR,TPR),在平面中就得到对应的坐标点。随着阈值的逐渐减小,越来越多的样本被归为正类,但是这些正类中也会夹杂着真正的负例,即TPR和FPR会同时增大。阈值最大时为,对应的坐标为(0,0),阈值最小时,对应的坐标为(1,1)。
理想目标:TPR=1,FPR=0,即图中的(0,1)点,所以ROC曲线越靠拢(0,1)点,即越偏离45度的直线越好。

AUC值
AUC(Area Under Curve)被定义为ROC曲线下的面积。使用AUC值作为衡量模型准确性的评价标准是因为ROC曲线很多时候不能清晰的说明哪个分类模型的效果更好,而作为一个数值,对应AUC更大的模型效果更好,AUC值越接近1模型的效果越好。

从AUC值判断模型的好坏:

  • AUC=1,是一个完美的分类器,能得出完美预测结果。绝对大多数场景下,不存在完美的分类器。
  • 0.5<AUC<1,优于随机预测,模型设定好阈值之后,能用预测价值。
  • AUC=0.5,和随机预测一样,模型没有预测价值。
  • AUC<0.5,比随机预测还差,但是反着预测的话,就会优于随机预测。

为什么使用ROC和AUC?
有了那么多评价指标,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。


KS

在评价模型时还会用到KS(Kolmogorov-Smirnov)值,KS=max(TPR-FPR),即为TPR与FPR的差的最大值,KS值可以反映出模型的最优区分效果,此时所取的阈值一般作为定义好坏用户的最优阈值。一般KS>0.2认为模型有比较好的预测准确性。

KS.png

KS曲线的最高点(最大值)为KS值,KS值越大,模型的区分度越好,KS值为0代表是没有区分度的随机模型。准确的来说,KS是用来度量正样本与负样本区分程度的。但是KS值所代表的仅仅是模型的区分能力,并不代表区分的样本是准确的。如果正负样本完全分错,但KS值可以依旧很高。


Lift提升图

Lift提升图是不同阈值下Lift和Depth的轨迹。

lift.gif
depth.gif

Lift指标衡量的是,与不利用模型相比,模型的预测能力“变好”了多少。不利用模型,我们只能利用“正例的比例是(TP+FN)/(TP+FP+FN+TN)”这个样本信息来估计正例的比例(baseline model),而利用模型之后,我们不需要从整个样本中来挑选正例,只需要从我们预测为正例的样本子集TP+FP中挑选正例,这时预测的准确率为TP/(TP+FP)。

显然,lift(提升指数)越大,模型的运行效果越好。如果这个模型的预测能力和baseline model一样,那么TP/(TP+FP)就等于(TP+FN)/(TP+FP+FN+TN),这个模型的效果就没有任何“提升”了。

作图步骤:

  1. 根据学习器的预测得分(正例的概率值)对样本进行排序(从大到小),依次计算出取不同得分下所对应的预测成正例的比例depth
  2. 按预测得分顺序,选取不同截断点,计算累计组内预测正例数TP和累计组内预测样本数TP+FP,然后再计算Lift值
Lift.png

上图的纵坐标是lift值,横坐标是预测成正例的比例,随着阈值的减小,更多的观测值会被归为正例,也就是depth(预测成正例的比例)变大。当阈值设的够大,只有一部分观测值会被归为正例,但这一小部分一定是最具有正例特征的观测值集合,此时这个depth对应的lift值最大。同样地,当阈值设定的足够小的,那么几乎所有的观测值都会被归为正例(占比几乎为100%),这时分类的效果就和baseline model差不多了,相对应的lift值就接近于1。

一个好的分类模型,就是要偏离baseline model足够远。在Lift图中,表现就是,在depth为1之前,lift值一直保持较高的(大于1的)数值,也即曲线足够的陡峭。

注:在信用评分中,会根据分类模型的结果,把样本分为10个数目相同的子集,每一个子集称为一个decile,其中第一个decile拥有最多的正例特征,第二个decile次之,依此类推,以上lift与depth的组合也就可以改写为lift与decile的组合,也称作lift图,含义一样。

ROC曲线和Lift曲线都能评价逻辑回归模型的效果:

  • 类似信用分的场景,希望能够尽可能完成地识别出有违约风险的客户,选择ROC曲线及相应的AUC或者KS值作为指标。
  • 类似精准营销的场景,希望能够对全体消费者的分类而得到具有较高响应率的客户群从而提高投入产出比,选择lift曲线作为指标。

Gain增益图

Gains(增益)与Lift(提升)类似:Lift图是不同阈值下Lift和Depth的轨迹,Gains图是不同阈值下Precision和Depth的轨迹,而Precision=TP/TP+FP,显而易见地,它们的区别就是纵坐标不一样。
Gain增益图是描述整体精准率的指标。按照模型预测出的概率从高到低排序,将每一个百分位数内的精准率指标标注在图形区域内,就形成了非累积的增益图。如果对每一个百分位及其之前的精准率求和并标注在图形区域内,则形成累积的增益图。累积图通常可以更好的表现模型性能,而非累计图则更有利于指出模型中可能存在问题的地方。


参考

https://www.deeplearn.me/1522.html
https://cosx.org/2009/02/measure-classification-model-performance-lift-gain/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容