模型评估与选择(后篇)-代价曲线

看博客上都在说书上关于代价曲线的介绍太过于简单,只考书中的内容无法理解,我当时看完竟然咩有这种感觉,看来功力是完完全全的不够啊!建议大家看原论文(有30多页,我没去看,有时间的朋友可以阅读一下)
这里写图片描述
知乎上这个版主的回答很好
机器学习(周志华)第2.3.4节中,代价曲线的理解?2017/11/17号更新的,有幸在写这篇之前看到^_^

主要参考博客:
1.西瓜书《机器学习》阅读笔记4——Chapter2_代价曲线
2.机器学习模型性能评估方法笔记
3.【西瓜书】周志华《机器学习》学习笔记与习题探讨(二)②

西瓜书中这段话说的很形象。
不同类型的错误所造成的后果不同。例如在医疗诊断中,错误的把患者诊断为健康人与错误的把健康人诊断为患者,看起来都是犯了“一次错误”,但后者的影响是增加了进一步检查的麻烦,前者的后果却可能是丧失了拯救生命的最佳时机。

为权衡不同类型的错误所造成的不同损失,可为错误赋予“非均等代价”(unequal cost)。

而在上一篇文章中我们提到为什么使用ROC曲线,以及ROC曲线的性质。
ROC曲线的一个优点就是,它和测试样本的类别分布于与误分类代价无关,即无论测试样本的正反例比例如何变化、无论误分类代价如何变化,分类器的ROC曲线都是不变的。一个指定的(类别分布,误分类代价)称为一个operating condition。

换句话说,前面介绍的性能度量,大都隐式地假设了“均等代价”。如果实际处理问题中,我们面临的是一个非均等代价问题,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”则可以达到目的。

以二分类为例,回顾一下几个概念。其中 costij 表示将第 i 类样本预测为第j类样本的代价。

这里写图片描述

表2.2将第0类作为正类,第1类作为反类,令 D+ D 分别代表样例集 D 的正例子集和反例子集。
“代价敏感”(cost-sensitive)错误率为:

E(f;D;cost)=1mxiD+I(f(xi)yi)×cost01+xiDI(f(xi)yi)×cost10

性能度量的方法:绘制代价曲线
代价曲线的横轴是正例概率代价 P(+)cost ,纵轴是归一化代价 costnorm

P(+)cost=p×cost01p×cost01+(1p)×cost10


costnorm=FNR×p×cost01+FPR×(1p)×cost10p×cost01+(1p)×cost10

其中,p(or p(+) )是样例为正例的概率;FNR是 假反例率;FPR是 假正例率

相信很多人和我一样看完上述公式不是很理解
就我查找的相关资料整理一下

分析理解:
cost10=C(+|) 表示实际为反例但预测成正例的代价
cost01=C(|+) 表示实际为正例但是预测为反例的代价

在介绍ROC曲线的末尾部分我们提到过一组指定的(类别分布,误分类代价)称作一个operating condition,并且对应ROC空间中的一簇iso-performance直线。

C(+|)=C(|+) 的情况下
C(+|)=C(|+)=1 ,此时期望代价就是错误率。并且现在operating condition就是 p(+) 。我们希望用实际使用时的性能来评估分类器,但是实际环境中的 p(+) 是未知的,所以应该得到所有可能的 p(+) 值上的性能来对分类器进行评估。
所以应该得到所有可能的 p(+) 值上的性能来对分类器进行评估。
此时,代价曲线的x轴表示 p(+) ,y轴表示错误率。当x=0时,意味着测试集中全是反例,此时一个分类器在此测试集上的整体错误率等于把正例预测为反例的概率,也就是FNR。当 x=1 时,意味着测试集中全是正例,此时一个分类器在此测试集上的整体错误率等于把反例预测为正例的概率,也就是FPR。这样ROC空间中的一个分类器对应的点,到代价空间中成了一条线段:(这句话如何理解?)

知乎博主给出的解释: 链接在文章顶部已经给出

1) 代价曲线,以下简称 CC,是参数曲线。这个从纵轴横轴定义就可以看出来了,而且参数是 。
2) 连接两点的线段如何用参数方程表示?假设两点分别是点 A B ,如果想表示 AB 连线所有点的集合就用 λA+(1λ)B λ[0,1] 。通过变化 λ ,我们可以得到线段 AB 。仔细对比一下 2) 中的式子和 CC 的定义,是不是有很多相通点?只不过 λ 变成了 p 罢了A 点呢,就是 (0,FPR) ,即 P=0 时对应的点。同理, B (1,FNR) p=1 所对应的。题主试着变化一下 从 0 到 1,是不是这么一条线段呢?
3) 以上说的是不归一情况,必须为直线;如果归一情况,题主说对了~ 不一定是直线,而是一条凸或凹的曲线。(关于这句话我不明白,归一的话就是凹或凸的曲线)

跳回本文(看一个例子)
这里写图片描述
从左图的代价曲线图可以很容易地看出在什么条件下C4.5分类器更好,在什么条件下1R分类器更好。

继续分析:
要理解代价曲线,得直接从期望总体代价的式子入手。
我们知道,在二分类问题中,一个分类器对应一个阈值 η ,一个阈值又对应着 ROC 曲线上的一个点,也就是 ROC 曲线上一个固定的 (FPR,TPR)

先不研究总体,只看单个分类器的期望代价,假设我们的分类器是
这里写图片描述
于是该分类器的期望代价就是

E[Cost]=i=01j=01cijPr[decideHi|Hj]Pr[Hj]

其中, cij 来自于我们定义的 cost matrix。
Pr[decide HiHj] 是条件概率,又称 likelihood。题主不知道是否熟悉这一说法,但是换个称呼就一定知道了

这里写图片描述

Pr[Hj] 是先验概率,在周老师的书里, Pr[H1]=p ,所谓的正例概率。显然负例概率就是 Pr[H0]=1Pr[H1]=1p

根据周老师的语境,我们假设了 c00,c11 都是 0, 所以

E[Cost]=c10×(1p)×FPR+c01×p×FNR

建议题主把上面这个式子的化简自己操作一下,很简单,但是可以加深印象 :)

你看一下这个式子,是不是和书中 (2.25) 的分子一摸一样?分母不用管,分母存在只是为了归一化。

再次强调一下, E[Cost] 目前只是代表单个分类器(不是学习器)的期望代价。那么,连接 (0, FPR) 和 (1, FNR) 的这条线段是什么意思呢?就是 c01×p (正例先验概率代价)和该分类器的期望代价的关系。比如说,我们看图中的这条粗直线:随着正例先验概率的提高,该分类器的期望代价也随之线性提高。


有了上述的基础,我们就可以很清晰的得到:

C(+|)C(|+) 的情况下
此时需要同时把类别分布和误分类代价作为一个operating condition,然后考虑所有可能operating condition下的期望误差。
一个分类器(注意:这是一个分类器的)的期望代价为:

E[Cost]=FNRp(+)C(+)+FPRp()C(+)(1)

最大期望代价在所有实例都被错误分类的情况下出现,有

maxE[Cost]=p(+)C(+)+p()C(+)(2)

用(2)对公式(1)归一化,使最大期望代价为1:
Norm(E[Cost])=FNRp(+)C(+)+FPRp()C(+)p(+)C(+)+p()C(+)(3)

x轴也需要包含误分类代价的信息,直接为 p(+)C(+) ,并归一化到[0,1]范围:

PC(+)=p(+)C(+)p(+)C(+)+p()C(+)(4)

还可以定义

PC()=p()C(+)p(+)C(+)+p()C(+)(5)

于是有 PC()=1PC(+)

有(2)(3)得到:

Norm(E[Cost])=FNRPC(+)+FPR(1PC(+))(6)

现在以 PC(+) 作为x轴,以 Norm(E[Cost]) 作为y轴,得到代价敏感下的代价空间。按照公式(6)得到的一条直线就是一个分类器对应的代价曲线。

虽然代价敏感情况下分析分类器的期望误差看起来好像很困难,但实际上相对于代价不敏感情况,唯一的改变只是把x轴和y轴的定义一般化了,得到的代价直线是一样的。

代价曲线包含的面积问题

  1. 代价曲线可视化了正例先验概率(横轴)最小代价期望(纵轴)的关系。而反观 ROC 曲线,它可视化的是 FPR(横轴)TPR(纵轴),如果放在侦测理论的语境中,横纵轴又被分别称为误警率(False Alarm Rate)和侦测率(Detection Rate)。浓浓的战争氛围,没错,ROC 曲线最先就是用来评价雷达的好坏的,哪怕现在的教材,习题里没有一道雷达题压压阵也是不达标的。
  2. ROC 曲线坐标系(强调一下,是那个 1x1 的坐标系)中的一个点,可以对应代价曲线所在的坐标系中的一条线段。不严格点,咱可以把这种关系称为对偶(Dual)。强调这个概念是为了说明:这两类曲线是可以互相转换的。因为,一旦你获得了 ROC 曲线的所有信息,你就可以逐点画出另个坐标系里对应的线段;反之,如果你有一条代价曲线,你就可以通过画切线,看切线左右的截距来得到 FPR 和 FNR,(如果不明白,可以看题主提供的图片)。而有了这两个数字,你就又可以在 ROC 曲线的坐标系中描出相应的点。
  3. 那他们不一样在哪里?周老师提到,代价曲线包含了代价的权重 c01,c10 ,但依本人愚见,周老师还漏说了相当重要的一点,那就是代价曲线同时考虑了先验概率 p <script type="math/tex" id="MathJax-Element-21880">p</script> 的影响。在 ROC 曲线,咱有 FPR 和 TPR 就可以描点,不需要先验概率 的半点信息,或者不严格地说: ROC 曲线只描述了 的情况;反观代价曲线,整个横轴就是先验概率啊!从这个角度想,大家是否可以直观理解对于同个分类器,为什么一边是点,一边是线段了呢?ROC 曲线坐标系中的一个点只考虑了 时的特例,而代价曲线坐标系中的一条线段则是把 从 到 所有的结果都展示给我们了!突然想到:ROC 曲线所折射的方法论其实就是统计学的频率派,因为人家不考虑先验啊,而近年(大概是 2006 吧)才出现的代价曲线,它所折射的恰是后来不断发展的贝叶斯派。知乎站内传送门:贝叶斯学派与频率学派有何不同?

现在说面积,第一个问题:曲线下面积评价的到底是什么?以周老师教材的语境,我认为是学习器,不是分类器。
简单来想,最终的代价曲线是无数不同的分类器所对应的线段围啊叠啊的产物,所以这个面积怎么也不可能是用来评价单个分类器的。
西瓜书原话如下:
如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为所有条件下学习器的期望总代价,如图2.5所示(这里我感觉作者回答有问题)
这里写图片描述

@petersg 在评论区中提到了极限,很是启发~所以我觉得可以这么严格定义代价曲线(不归一情况)

再往后我就跟不上节奏了,目前先理解到这,后面再补上。

  • 15
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值