[关闭]
@1007477689 2020-07-15T11:56:33.000000Z 字数 4527 阅读 438

机器学习模型性能评估

公众号学习


机器学习是对给定的原始数据集构建最优学习模型,上篇文章讲到《机器学习模型评估方法》,通过模型评估方法“将原始数据集”划分为“训练集”和“测试集”,训练集又可细分为训练集和验证集。机器学习的整个流程包括训练集和验证集构建最优模型,最优模型评估测试集的测试误差,通过测试误差来评价学习方法的泛化能力,泛化能力是评价机器学习模型性能的金标准(如图),即泛化能力强,对应的学习模型好。

图1 机器学习流程

测试误差评价学习模型的泛化能力具有一定的局限性,抽样的测试数据集具有随机性,不同的测试集表现出不同测试误差,即:评价模型的泛化能力也有所不同。

图2 测试数据集对泛化能力的影响


本文介绍了评价机器学习模型性能的四种方法:

  1. 错误率精度,错误率与精度是评价学习模型泛化能力的最常用的方法;
  2. 查准率查全率的角度来评价学习模型泛化能力的优劣,并引用了 P-R 曲线和度量参数 F1;
  3. ROC(Receiver Opreating Characteristic,受试者工作特征)曲线则评价“一般情况下”学习模型的泛化能力,并引用了度量参数 AUC(Area Under Curve,曲线下的面积);
  4. P-R 曲线和 ROC 曲线认为:学习器对不同类的分类错误产生的代价损失相同,但是实际情况可能是不同类的分类错误产生的代价损失不相同,即:非均衡代价,因此。从“非均衡代价”的角度去分析模型性能的优劣,并引用了代价曲线和期望总体代价。由于周老师编写的《机器学习》对代价曲线和期望总体代价描述的比较简练,因此,本文会详细去解释这两者的含义。

在介绍这四种方法前,需要理解期望和均值的概念,本文会首先引出期望和均值的概念,然后介绍评价机器学习模型性能的四种方法,最后对本文进行总结。

I、期望和均值

期望和均值这两个概念,相信在看我这篇文章的童鞋都不陌生,最近在自学贝叶斯概率的时候发现自己并没有充分理解期望和均值的概念,且这篇文章很多知识点要涉及到期望和均值的思想,因此,本节简单介绍了期望和均值的定义。

假设某一离散变量 的取值范围来自于集合

对集合 进行可放回抽样 次(参考上节),产生容量为 的抽样数据集 ,数据集 的离散变量 的取值为:

表示第 次可放回抽样的值。

变量 的期望 为:

由上式可知,期望是:累加变量所有可能的取值与对应该值出现概率的乘积。

抽样数据集 的变量 的均值

均值是:所有抽样数据变量的求和平均。

实际工作项目中,我们获取的数据都是抽样数据,只能够通过抽样数据来计算均值,期望是计算不出来的,若知道某一个变量的真实分布,马上就能知道该变量的期望,那么训练数据也没有什么存在的意义了。机器学习的一个重要内容就是:通过已知的抽样数据集去估计总体的分布。

辛钦大数定理:

辛钦大数定理:若抽样数据的样本量足够大,那么变量的均值等于期望

II. 模型性能评估方法

模型性能评估即评估模型的泛化能力,本节介绍四种性能评估方法,分别为:

  1. 错误率与精度评估方法;
  2. P-R曲线评估法;
  3. ROC曲线评估法;
  4. 代价曲线评估法

我们根据实际应用的侧重点选择性能评估方法。

2.1 错误率与精度

错误率与精度常用于分类任务,错误率是:测试样本中分类错误的样本数占总样本数的比例,精度是:测试样本中分类正确的样本数占总样本数的比例。

假设我们有:数据集 ,模型

分类错误率:

精度:

更一般地,若对于数据分布 和概率密度函数 ,错误率与精度可分别描述为:

若测试数据集的精度高或错误率小,则模型的泛化能力强;反之,则泛化能力弱。

用测试数据集的精度来表示模型的泛化能力在“正负样本比例相差较大”的时候就不适用了。

如:

上表的混淆矩阵可知:

测试数据集正样本和负样本的比例是 ,把所有样本都检测为正样本,准确率 ,但不能说明模型的泛化能力强,因为不能反映模型对负样本的检测能力。运用精度来表示测试数据集的泛化能力,测试数据集的正负样本比例应该均衡(1:1)。

2.2 查准率、查全率与F1

错误率和精度虽然常用,但是不能满足特定的任务的需求。以西瓜问题为例,假定:瓜农拉来一车西瓜,我们用训练好的模型对这些西瓜进行判别。

错误率衡量:有多少比例的瓜被判别错误,但是若我们关心的是“挑出的西瓜中有多少比例是好瓜”,或者“所有好瓜中有多少比例被挑选了出来”。

这两类问题分别对应查准率查全率,错误率是反映不了这两类问题。

例如:在信息检索中,我们经常会关心“检索出的信息中有多少比例是用户感兴趣的”,“用户感兴趣的信息中有多少被检索出来的”;在视频监控中,我们关注的是“人脸识别的罪犯中有多少比例是真的罪犯”,“所有罪犯中有多少比例被识别出来”。

错误率计算较笼统,查准率查全率是更为适用于此类需求的性能度量。查准率关注的问题是:筛选的样本中是正样本的比例,查全率关注的问题是:筛选的样本中有多少比例的正样本被筛选出来。

混淆矩阵是计算查准率查全率或其他模型性能评估方法的基础。

混淆矩阵定义:

TP:真正例(True Positive),即:真实结果和预测结果都是正例。

FP:假正例(False Positive),即:真实结果是反例、预测结果是正例。

TN:真正例(True Negative),即真实结果和预测结果都是反例。

FN:假反例(False Negative),即真实结果是正例、预测结果是反例。

查准率P(Precision)与查全率R(Recall)分别定义为:

查准率与查全率是一对矛盾的度量,我们可以用极端的方式去理解这一矛盾。若所有测试样本的分类结果都是正样本,那么模型的查全率为 ,查准率就很低;若几乎所有测试样本的分类结果都是负样本,那么模型的查准率很高,查全率就很低。

很多情形下,学习模型对测试数据输出的结果是具体的数值,如逻辑斯谛克生成模型 ,表示输入变量 输出为正样本的概率,曲线图如下:

因此,学习模型P(Y=1|X)对测试数据集输出一系列为正样本的概率,根据概率由大到小排列,然后依次设置阈值,若大于该阈值,则为正样本;反之则为负样本。每次阈值的设置都有对应的查准率和查全率,因此以查全率为横坐标,查准率为纵坐标,就可以得到查准率-查全率曲线,检测“P-R”曲线。

假设测试数据集D样本量为m,

P-R曲线流程图如下:

P-R曲线图如下:

根据P-R曲线来评估模型的性能:

(1)若一个学习模型的P-R曲线完全包住另一个学习模型的P-R曲线,则前者的性能优于后者。即查全率相同的情况下,查准率越高模型的泛化性能越好,如模型A优于模型B。

(2)若两个学习模型的P-R曲线互相交叉,则可通过“平衡点”(Break-Event Point,简称BEP)来评价模型的优劣,BEP是“查准率=查全率”的数值。由上图可知,模型A的平衡点大于模型B的平衡点,即模型A优于B。

(3) 由于BEP过于简化,更常用的是F1度量:

F1越大,性能越好。

(4) F1度量认为查全率和查准率的重要性程度一样,若考虑到查全率和查准率的重要性程度不一样,如推荐给用户的信息尽可能是用户感兴趣的,那么查准率更重要;抓捕逃犯时更希望尽可能少漏掉逃犯,此时查全率更重要(概念有点模糊的可以参考查准率和查全率公式)。

为了描述查准率和查全率的相对重要程度,则用F1度量的一般形式:Fβ。

其中,β> 0度量了查全率对查准率的相对重要性,β=1时退化为标准的F1;β>1时查全率更重要;β<1时查准率更重要。

2.3 ROC曲线与AUC

P-R 曲线是从查准率和查全率的角度去衡量学习模型的泛化性能,ROC 曲线则是从更一般的情况下去衡量学习模型的泛化性能,若没有任何先验条件的限制情况下,推荐用 ROC 曲线去衡量模型的泛化性能。

绘制ROC曲线的思想与P-R曲线一致,对学习模型估计测试样本为正样本的概率从大到小排序,然后根据概率大小依次设置阈值,认为大于阈值的测试样本为正样本,小于阈值的测试样本为负样本,每一次阈值设置都计算“真正例率”(True Positive Rate,简称TPR)和“假正例率”(False Postive Rate,简称FPR)。

TPR和FPR的定义如下:

的定义可参考上节的混淆矩阵。

ROC 曲线横坐标为假正例率,纵坐标为真正例率,曲线图如下:

本文对 ROC 曲线的首末两点进行解释:

测试数据集包含 例正样本和 例负样本,若阈值设置的最大,则学习模型对所有测试样本都预测为负样本,混淆矩阵如下:

因此,当阈值设置最大时, 均为

若阈值小于所有模型估计测试样本为正样本的数值时,则测试样本均为正样本,混淆矩阵如下:

因此,当阈值设置最小时, 均为

AUC(Area Under Curve)为 ROC 曲线的面积,面积可以通过"梯度面积法"求解。

AUC 的计算表达式理解起来有点别扭,假设:正负样本数均为 例,大家回想下 ROC 曲线的算法思想,假正例率对应的是:真实“负样本”中分类结果为“正样本“的比例,真正例率对应的是:真实“正样本”中分类为“正样本”的比例。

“假正例率”和“真正例率”的增长性具有互斥性,每次都只能增加一个,且每次增加的梯度为 ,横坐标和纵坐标共增加了 次。

理解了这个原理,相信对 ROC 曲线的绘制和 AUC 面积的计算应该有更深的认识了吧。

AUC 是衡量模型泛化能力的一个重要指标,若 AUC 大,则分类模型优;反之,则分类模型差。想象一下,若假正例率不变的情况下,真正例率越大,对应的 AUC 也越大,则模型的泛化能力强,这与实际情况相符。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注