模型评估与选择(后篇)-代价曲线
看博客上都在说书上关于代价曲线的介绍太过于简单,只考书中的内容无法理解,我当时看完竟然咩有这种感觉,看来功力是完完全全的不够啊!建议大家看原论文(有30多页,我没去看,有时间的朋友可以阅读一下)
知乎上这个版主的回答很好
机器学习(周志华)第2.3.4节中,代价曲线的理解?2017/11/17号更新的,有幸在写这篇之前看到^_^
主要参考博客:
1.西瓜书《机器学习》阅读笔记4——Chapter2_代价曲线
2.机器学习模型性能评估方法笔记
3.【西瓜书】周志华《机器学习》学习笔记与习题探讨(二)②
西瓜书中这段话说的很形象。
不同类型的错误所造成的后果不同。例如在医疗诊断中,错误的把患者诊断为健康人与错误的把健康人诊断为患者,看起来都是犯了“一次错误”,但后者的影响是增加了进一步检查的麻烦,前者的后果却可能是丧失了拯救生命的最佳时机。
为权衡不同类型的错误所造成的不同损失,可为错误赋予“非均等代价”(unequal cost)。
而在上一篇文章中我们提到为什么使用ROC曲线,以及ROC曲线的性质。
ROC曲线的一个优点就是,它和测试样本的类别分布于与误分类代价无关,即无论测试样本的正反例比例如何变化、无论误分类代价如何变化,分类器的ROC曲线都是不变的。一个指定的(类别分布,误分类代价)称为一个operating condition。
换句话说,前面介绍的性能度量,大都隐式地假设了“均等代价”。如果实际处理问题中,我们面临的是一个非均等代价问题,ROC曲线不能直接反映出学习器的期望总体代价,而“代价曲线”则可以达到目的。
以二分类为例,回顾一下几个概念。其中
表2.2将第0类作为正类,第1类作为反类,令
“代价敏感”(cost-sensitive)错误率为:
性能度量的方法:绘制代价曲线
代价曲线的横轴是正例概率代价
其中,p(or
相信很多人和我一样看完上述公式不是很理解
就我查找的相关资料整理一下
分析理解:
令
令
在介绍ROC曲线的末尾部分我们提到过一组指定的(类别分布,误分类代价)称作一个operating condition,并且对应ROC空间中的一簇iso-performance直线。
令
所以应该得到所有可能的
此时,代价曲线的x轴表示
知乎博主给出的解释: 链接在文章顶部已经给出
1) 代价曲线,以下简称 CC,是参数曲线。这个从纵轴横轴定义就可以看出来了,而且参数是 。
2) 连接两点的线段如何用参数方程表示?假设两点分别是点
3) 以上说的是不归一情况,必须为直线;如果归一情况,题主说对了~ 不一定是直线,而是一条凸或凹的曲线。(关于这句话我不明白,归一的话就是凹或凸的曲线)
跳回本文(看一个例子)
从左图的代价曲线图可以很容易地看出在什么条件下C4.5分类器更好,在什么条件下1R分类器更好。
继续分析:
要理解代价曲线,得直接从期望总体代价的式子入手。
我们知道,在二分类问题中,一个分类器对应一个阈值
先不研究总体,只看单个分类器的期望代价,假设我们的分类器是
于是该分类器的期望代价就是
其中,
根据周老师的语境,我们假设了
建议题主把上面这个式子的化简自己操作一下,很简单,但是可以加深印象 :)
你看一下这个式子,是不是和书中 (2.25) 的分子一摸一样?分母不用管,分母存在只是为了归一化。
再次强调一下,
有了上述的基础,我们就可以很清晰的得到:
此时需要同时把类别分布和误分类代价作为一个operating condition,然后考虑所有可能operating condition下的期望误差。
一个分类器(注意:这是一个分类器的)的期望代价为:
最大期望代价在所有实例都被错误分类的情况下出现,有
用(2)对公式(1)归一化,使最大期望代价为1:
x轴也需要包含误分类代价的信息,直接为
还可以定义
于是有
有(2)(3)得到:
现在以
虽然代价敏感情况下分析分类器的期望误差看起来好像很困难,但实际上相对于代价不敏感情况,唯一的改变只是把x轴和y轴的定义一般化了,得到的代价直线是一样的。
代价曲线包含的面积问题
- 代价曲线可视化了正例先验概率(横轴)和最小代价期望(纵轴)的关系。而反观 ROC 曲线,它可视化的是 FPR(横轴) 和 TPR(纵轴),如果放在侦测理论的语境中,横纵轴又被分别称为误警率(False Alarm Rate)和侦测率(Detection Rate)。浓浓的战争氛围,没错,ROC 曲线最先就是用来评价雷达的好坏的,哪怕现在的教材,习题里没有一道雷达题压压阵也是不达标的。
- ROC 曲线坐标系(强调一下,是那个 1x1 的坐标系)中的一个点,可以对应代价曲线所在的坐标系中的一条线段。不严格点,咱可以把这种关系称为对偶(Dual)。强调这个概念是为了说明:这两类曲线是可以互相转换的。因为,一旦你获得了 ROC 曲线的所有信息,你就可以逐点画出另个坐标系里对应的线段;反之,如果你有一条代价曲线,你就可以通过画切线,看切线左右的截距来得到 FPR 和 FNR,(如果不明白,可以看题主提供的图片)。而有了这两个数字,你就又可以在 ROC 曲线的坐标系中描出相应的点。
- 那他们不一样在哪里?周老师提到,代价曲线包含了代价的权重
c01,c10 ,但依本人愚见,周老师还漏说了相当重要的一点,那就是代价曲线同时考虑了先验概率p 的影响。在 ROC 曲线,咱有 FPR 和 TPR 就可以描点,不需要先验概率 的半点信息,或者不严格地说: ROC 曲线只描述了 的情况;反观代价曲线,整个横轴就是先验概率啊!从这个角度想,大家是否可以直观理解对于同个分类器,为什么一边是点,一边是线段了呢?ROC 曲线坐标系中的一个点只考虑了 时的特例,而代价曲线坐标系中的一条线段则是把 从 到 所有的结果都展示给我们了!突然想到:ROC 曲线所折射的方法论其实就是统计学的频率派,因为人家不考虑先验啊,而近年(大概是 2006 吧)才出现的代价曲线,它所折射的恰是后来不断发展的贝叶斯派。知乎站内传送门:贝叶斯学派与频率学派有何不同?
现在说面积,第一个问题:曲线下面积评价的到底是什么?以周老师教材的语境,我认为是学习器,不是分类器。
简单来想,最终的代价曲线是无数不同的分类器所对应的线段围啊叠啊的产物,所以这个面积怎么也不可能是用来评价单个分类器的。
西瓜书原话如下:
如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为所有条件下学习器的期望总代价,如图2.5所示(这里我感觉作者回答有问题)
@petersg 在评论区中提到了极限,很是启发~所以我觉得可以这么严格定义代价曲线(不归一情况)
再往后我就跟不上节奏了,目前先理解到这,后面再补上。