机器学习入门——泛化能力性能度量

作者: 阡陌哥哥 | 来源:发表于2018-05-05 08:32 被阅读31次

对比不同模型的泛化能力时,采用不同的度量方法,往往得到不同的结果,所以什么样的数据模型是好的,不仅取决于算法和数据,还取决于任务需求。下面是回归任务和分类任务常用的性能度量。

回归任务 分类任务

仿照回归任务,分类任务也可以写成更一般的形式,比如错误率:


错误率

Ⅱ(输入)表示的是指示函数,在输入为真时输出1,输入为假时,输出0

查准率、查全率与F1

在信息检索中,如果我们关心“检索出的信息中有多少比例是用户感兴趣的”,如果看成二分类问题,给检索出的信息视为(预测)正例,用户感兴趣的为真正的正例,两者的交集占检索出的信息的比例,我们称为查准率,表示我们得到的数据是否尽可能的准确(正确分类的占比高,被误分类的占比低)。同理,查全率表示的是真实的正例中是否尽可能多的被找出来了。


查准率与查全率

一般来说,查准率高,查全率会比较低,查全率高,查准率会比较低,如下图所示:


P-R曲线

P-R曲线的画法:将学习器的预测结果对样例进行排序,排在最前面的是学习器认为最可能的正例样本,按此顺序从前往后逐个把样本作为正例,逐次计算当前的查准率和查全率,绘制在图中即得到P-R曲线。对于不同的学习器(算法/模型)可以得到不同的P-R曲线,如果一个曲线将另一个曲线包住了,那么外面的这个学习器认为是好的,但当两个曲线有交叉的时候,可以画出如图一条斜线,得到三个平衡点(BEP),它是查准率=查全率时的取值,可认为A优于B。

如果认为BEP过于简单化,可以使用F1度量,当对查准率和查全率的重视程度不同时,使用F1度量更一般化的形式Fβ度量。更多关于n个二分类混淆矩阵对查准率和查全率的综合考察,参考周志华老师的《机器学习》第32-33页。

ROC 与 AUC

ROC全程称是“受试者工作特征”(Receiver Operating Characteristic),我们利用ROC曲线比较不同学习器的性能优劣。若一个学习器的ROC曲线被另一个学习器曲线包住,则可断言后者性能优于前者,若两个学习曲线发生交叉,则比较两个ROC曲线下的面积,AUC(Area Under ROC Curve)。

ROC曲线与AUC
ROC曲线的画法
首先定义真正例率(TPR)和假正例率(FPR):
image.png

假设有10个样本,里面有5个正例和5个反例。学习器会对测试样本产生一个预测的概率值,然后将这个预测值与一个分类阈值进行比较,若大于阈值则分为正类,否则分为反类。假设这10个样本的预测值分别如下:

正例预测结果概率为(0.9, 0.8, 0.5, 0.4, 0.3);
反例预测结果概率为(0.7, 0.6, 0.2, 0.1, 0.01);

实际上,可以根据预测值将样本进行排序(既可以升序,也可以降序)



红色为正例概率,黑色为反例概率。

一般的,给定m+个正例和m-个反例,排序完成后,把分类阈值设为最大,即把所有样例均预测为反例(在此处假设分类阈值左边为正例,右边为反例),此时真正例率和假正例率均为0,坐标点在(0, 0)处。然后将分类阈值依次向右移动设为每个样例的预测值,即依次将每个样例划分为正例。设前一个标记点坐标为(x, y),当前若为真正例,则对应标记点坐标为

当前若为假正例,则对应标记点坐标为

然后用线段连接相邻点即可。

关于当前坐标的推导过程:下面给出第一种情况的推导过程,第二种情况也是类似的。



所以就得到了真正例率发生变化,而假正例率没有变化的新的坐标点。

回到我们的例子,根据阈值的移动和坐标点的计算方法,可以画出如下图形:


ROC曲线 可以观察到,每个虚线所框出的方格面积为 所以反例概率比正例概率大的情况共有3*2=6种,所以排序损失对应ROC 曲线之上的6个方格的面积

反例概率比正例概率大的情况:
正例预测结果概率为(0.9, 0.8, 0.5, 0.4, 0.3);
反例预测结果概率为(0.7, 0.6, 0.2, 0.1, 0.01);
0.7 > 0.5, 0.4, 0.3; 0.6 > 0.5, 0.4, 0.3
所以说共有6种。

再考虑另一种情形:

依然有5对正反例:

正例预测结果概率为(0.9, 0.8, 0.5, 0.4, 0.3);
反例预测结果概率为(0.7, 0.5, 0.2, 0.1, 0.01);

那么总排序可以有两种情况为(红色为正例概率,黑色为反例概率):



故 ROC 曲线有相应的两种情况(红色和绿色分别对应情况一与二):


ROC曲线
这时,反例概率比正例概率大的情况共有1+2*2=5种,而反例概率与正例概率相同的情况可认为各占一半,所以得出总的排序损失为 所以排序损失可以定义为:

我对排序损失的理解(不一定正确):因为我们用阈值给已排序的样本划分正反例,如果反例概率比正例概率大,那么就可能将反例预测为正例,正例预测为反例,这会导致与真实情况不符,故应当将这个指标作为一种“处罚”指标。

另外,通过微分的思想,可以很容易的得到AUC的公式:


在现实任务中,不同类型的错误所造成的后果不同,比如医疗诊断中,将患者错误的诊断为健康所造成的后果相当严重,日常翻译中翻译错一个单词往往不会带来太大的损失,所以不同类型的错误会造成不同的损失,应当为错误赋予“非均等”代价。

以二分类认为为例,有以下代价矩阵



我们往往希望最小化总体代价,“代价敏感”的错误率可表示为:



但是,在非均等代价下,ROC曲线就不能直接反映出学习器的期望总体代价,可以用“代价曲线”表示。
其中正例概率代价 p是样例为正例的概率,纵轴是取值为[0, 1]的归一化代价
FNR = 1 - TPR,是假反例率。代价曲线的绘制:ROC 由线上每…点对应了代价平面上的二条线段7 设ROC 曲线上点的坐标为(TPR, FPR) ,则可相应计算出FNR,然后在代价平面上绘制一条从(O , FPR) 到(l , FNR) 的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC 曲线土的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的自积即为在所有条件下学习器的期望总体代价。

参考:《机器学习》周志华
作者:JohnnyMa
链接:https://www.zhihu.com/question/265364451/answer/302612819
来源:知乎

微信公众号.jpg

相关文章

  • 常用的机器学习模型评估指标

    对机器学习模型的泛化性能进行评估,通常需要衡量模型的泛化能力,也就是性能度量。常见的性能度量指标包括:准确率,查准...

  • 机器学习入门——泛化能力性能度量

    对比不同模型的泛化能力时,采用不同的度量方法,往往得到不同的结果,所以什么样的数据模型是好的,不仅取决于算法和数据...

  • 从宏观上了解机器学习-模型评估与选择2

    性能度量 对模型泛化能力的评价标准就是性能度量,在预测任务中,要评估学习器的性能,就是要把学习器预测结果与真实标记...

  • 机器学习中的性能度量指标汇总

    前言 在机器学习中要考察选择模型的优劣,需要对模型的泛化能力进行评估,这就是性能度量。本篇文章主要介绍分类、回归以...

  • Indicator of Generalization

    机器学习中至关重要的问题就是如何衡量模型的泛化能力,泛化能力的强弱直接度量了算法是否学习到了对任务真正重要的特征。...

  • 04机器学习中的若干术语(三)

    性能度量 对学习器的泛化性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型泛化能力的评价标准,这就是性...

  • 算法模型的性能度量

    性能度量是指模型泛化能力的衡量,泛化能力可以理解为对于未知数据的预判能力 1、回归场景 (1)均方误差MSE 回归...

  • 模型性能度量方法

    备注 性能度量即是找到一个评价标准,来对模型的泛化能力进行量化评价。 不同的性能度量标准往往会有不同的...

  • 机器学习评估方法

    机器学习的目的是产生泛化能力好的模型,那么什么样的模型才是泛化能力好的模型呢,这需要按照一定的评估方法和度量指标去...

  • 3.machine_learning_eval_metric

    机器学习评估与度量指标 -from周志华《机器学习》 1.1机器学习基本概念 这里的内容主要包括:性能度量、比较检...

网友评论

    本文标题:机器学习入门——泛化能力性能度量

    本文链接:https://www.haomeiwen.com/subject/zbqlrftx.html