AI学习笔记(7)——性能度量
首先,我们要知道的一件事是,模型的好坏是相对的而不是客观的,模型的好坏不仅取决于之前所说的算法,数据甚至是调参等等,还取决于任务的需求,而面对不同的任务需求,使用不同的性能度量(performance measure)来获取最适合的模型,也就成了必须面对的问题。
而在机器学习中,对于预测型的任务,我们要获得的是一个预测值,所以最常用的就是“均方误差”(mean squared error)也就是方差,对于离散型和连续型的数据有不同的算法,概率我们都学过,此处不予赘述。
本节最主要讨论的是关于分类问题的性能度量,常用的有以下几种:
- 错误率与精度
- 错误率和精度是最简单的性能度量了,分别代表分类错误的样本和分类正确的样本占样本总数的比例,写作E(f;D)和acc(f;D)。
(具体公式见书,这个LaTex数学公式我还不是很会用,学习一下) - 查准率(precision)、查全率(recall)和F1
- 首先需要明白混淆矩阵(confusion matrix)的含义,知道TP、FP、TN、FN各自的含义,表格这里就先不打了,见书。。。
(这个Markdown Extra的话,左边那种合并单元格的情况劳资不会啊QWQ)
搞清混淆矩阵之后,我们就可以知道查准率P与查全率R的定义分别为:
需要知道的是,P和R是一对互相矛盾的度量,往往在P比较好时,R就会偏低;而R比较好时,P又会偏低,这是容易理解的。通常只有在一些非常简单的任务中,才能做到P和R双赢。
一般情况下,我们可以根据学习器的预测结果对样例排序,前面是更可能为正例的样本,从而逐个把样本作为正例预测,然后每次预测的度量作为一个点加入到用P=纵轴、R=横轴的坐标系下,画出的图像叫做PR曲线或PR图,个人感觉这样看起来就直观多了。
此时图像中被包裹的模型一定比前者差,而当两者交叉时,可用平衡点(Break-Even Point简称BEP)作为衡量,即P=R的点。然而BEP太简单了,当两者交叉时,更常用的度量是一种叫做F1的神奇数值,它是基于调和平均(harmonic mean)的概念综合P和R得到的,选择调和平均的原因是其相较算术平均和几何平均来说更注重较小的值,从求并联电阻的等效电阻的实例中更容易理解这句话的含义。F1的定义
而有时我们对P和R的重视程度并不相同,比如对于罪犯,我们往往采取宁可多审问几人也不愿漏掉一个罪犯的态度,此时就用到一个更一般的定义,它是基于加权调和平均得到的,定义如下
其中的度量了我们对于P和R相对重要性的衡量,时R的影响更大;时P的影响更大。
而更多的时候,我们有许多个混淆矩阵,比如进行了多次训练/测试或是本身执行的就是多分类任务每两个类别都需要组成一个混淆矩阵等情况,这时我们需要的是获得这许多个混淆矩阵综合考虑下的P和R。
这时我们最多使用的是宏查准率(macro-P)、宏查全率(macro-R)、宏F1(macro-F1)或是微查准率(micro-P)、微查全率(micro-R)、微F1(micro-F1),区别就是取均值和计算PR先后顺序的区别,简单易懂此处不予赘述。 - ROC与AUC
- 个人感觉ROC和前面的PR情况其实非常类似,简单总结就是一句话——“排序排得好,性能就是屌!”,唯一的区别就是作为纵轴换成了真正例率(True Positive Rate简称TPR),而横轴换成了假正例率(False Positive Rate简称FPR)。各自定义如下
ROC的全称是受试者工作特征(Receiver Operating Characteristic)曲线。
容易理解的是,从(0,0)到(1,1)的对角线是对应于“随机猜测”模型的,换句话说就是“学习过程无卵用,正反例均匀排布”,所以一般的学习曲线都是上凸的,如果你的曲线比对角线还低,那么请使用“瞎JB猜”模型。
简述绘图过程就是从(0,0)出发,是正例即预测正确就往上走一步,是反例就向右走一步,显而易见(0,1)点是理想情况,即正反例一分为二。
类似于PR图,当某个模型的图被完全包裹时,则其算法是劣势的,但若两者的图像交叉时,则需要类似于PR图中F1的度量来比较,此处的就是AUC(Area Under ROC Curve)。
AUC的定义很简单,就是用梯形法求积分的方式,取得ROC曲线的积分即下方面积。AUC的含义就是排序的质量如何,相反的排序损失(loss)即为(1-AUC)。 - 代价敏感错误率与代价曲线
- 在用到代价敏感错误率的情况,与之前的相差较大,它追求的不再是出现错误的次数尽可能的少,而是在赋予不同类型的错误不同的权值之后使总体代价(total cost)最小。因为在有些时候我们对各类错误的重视程度是不同的,比较容易理解。通常用表示将第i类样本当做第j类样本的代价。如二分类任务中,若把0作为正类,1作为反类,则“代价敏感”(cost-sensitive)错误率为
同样的也可以给出代价敏感下的其他度量,如精度等。(所以代价敏感有点类似于前置情况?)
需要知道的是,由于在非均等代价的情况下,ROC曲线无法直接反应学习器的期望总体代价,这个时候我们需要代价曲线(cost curve)来做到这一点。而代价曲线图的横纵轴就又换了,它的横轴是取值[0,1]的正例概率代价
其中即正例的概率;而纵轴是[0,1]的归一化代价
这个时候让我们来从新梳理一下有些变量:
我想综上所述,大家对这些变量的含义就比较明了了。
至于代价曲线的绘制,虽然很简单,但个人认为还是不太好理解的,说是本节最难理解的point也不为过(因为我就没理解QWQ),过程我就不修改了,完全取自书中:
ROC曲线上的每一点对应了代价平面上的一条线段,设ROC曲线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后从代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价。
个人的理解是,当横轴取0和1的时候,分别对应了p取0和1的时刻,此时纵轴取FPR和FNR这个理所当然,取直线是因为斜率是常数,但是为啥围成的公共面积就是期望的总体代价咧?这点我是真的不太理解。。。请看到的大佬告知。。。谢谢!
结尾
今天第一次用LaTex公式,个人感觉还蛮强大的,不过打起来还是好麻烦,看起来贼简单的式子打出来好长一串。。。毕竟是数学公式嘛。。。QWQ
昨晚看了地球脉动1的溶洞部分,美国的这个Onondoga溶洞真的好漂亮!
总要带女票去逛一圈才行,嗯!
最后,还是祝大家学习快乐,快乐学习!