【机器学习】 — 2、模型评估方法与准则

本节主要讲解机器学习中对模型的评估和测量的相关知识。

1、模型评估的目标

模型评估的目标是选出泛化能力强的模型完成机器学习任务。

泛化能力强的模型能很好地适用于未知的样本,模型的错误率低、精度高。

机器学习任务中,我们希望最终能得到准确预测未知标签的样本、泛化能力强的模型。但是我们无法提前获取「未知的样本」,因此我们会对已有的数据进行切分,让切分出来的数据扮演未知样本的角色,帮助我们完成模型训练和评估。

在建模过程中,为了获得泛化能力强的模型,我们需要一整套方法及评价指标。

  • 评估方法:为保证客观地评估模型,对数据集进行的有效划分实验方法。
  • 性能指标:量化地度量模型效果的指标。

2、离线与在线实验方法

进行评估的实验方法可以分为离线在线两种实验方法。

1)离线实验方法

模型评估通常指离线试验

原型设计(Prototyping)阶段及离线试验方法,包含以下几个过程:

  • 使用历史数据训练一个适合解决目标任务的一个或多个机器学习模型。
  • 对模型进行验证(Validation)与离线评估(Offline Evaluation)。
  • 通过评估指标选择一个较好的模型。

2)在线实验方法

除了离线评估之外,其实还有一种在线评估的实验方法。由于模型是在老的模型产生的数据上学习和验证的,而线上的数据与之前是不同的,因此离线评估并不完全代表线上的模型结果。因此我们需要在线评估,来验证模型的有效性。

在线实验方法的一个典型方法是 A/B 测试(A/B Test)

A/B 测试 是为同一个目标制定两个方案让一部分用户使用 A 方案,另一部分用户使用 B 方案,记录下用户的使用情况,看哪个方案更符合设计目标。如果不做AB实验直接上线新方案,新方案甚至可能会毁掉你的产品。

3)离线与在线评估指标

离线评估中,经常使用准确率(Accuracy)、查准率(Precision)、召回率(Recall)、ROC、AUC、PRC等指标来评估模型。

在线评估与离线评估所用的评价指标不同,一般使用一些商业评价指标,如用户生命周期值(Customer Lifetime value)、广告点击率(Click Through Rate)、用户流失率(Customer Churn Rate)等标。

3、常见模型评估方法介绍

1)留出法(Hold-out)

留出法是机器学习中最常见的评估方法之一,它会从训练数据中保留出验证样本集,这部分数据不用于训练,而用于模型评估。

下面是留出法数据划分的注意点:

  • 随机划分不一定能保证有效性,因为如果T中正好只取到某一种特殊类型数据,从而带来了额外的误差。此时处理方法要视具体情况而定,如当数据明显的分为有限类时,可以采用分层抽样方式选择测试数据,保证数据分布比例的平衡。
  • 单次划分不一定能得到合适的测试集,一般多次重复「划分 - 训练 - 测试求误差」的步骤,取误差的平均值。
  • 划分的验证集,太大或者太小都不合适,常用做法是选择 1/5 ~ 1/3 左右数据当作验证集用于评估

2)交叉验证法(Cross Validation)

留出法的数据划分,可能会带来偏差

交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。

k折交叉验证,先将数据集 D随机划分为 k个大小相同的互斥子集,即 ,每次随机的选择 k-1份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择 k份来训练数据。若干轮(小于 k )之后,选择损失函数评估最优的模型和参数。

下面是 k 折交叉验证的注意点:

  • 数据量小的时候,k 设大一点;数据量大的时候,k 设小一点。
  • k 一般取值10 

3)自助法(Bootstrap)

部分场景下,数据量较少,很难通过已有的数据来估计数据的整体分布(因为数据量不足时,计算的统计量反映不了数据分布),这时可以使用 Bootstrap 自助法。

Bootstrap 是一种用小样本估计总体值的一种非参数方法。自助法(Bootstrap)通过有放回抽样生成大量的伪样本,通过对伪样本进行计算,获得统计量的分布,从而估计数据的整体分布

具体做法是:在含有 m 个样本的数据集中,每次随机挑选一个样本, 将其作为训练样本,再将此样本放回到数据集中,这样有放回地抽样 m 次,生成一个与原数据集大小相同的数据集,这个新数据集就是训练集。这样有些样本可能在训练集中出现多次,有些则可能从未出现。原数据集中大概有 36.8% 的样本不会出现在新数据集中。因此,我们把这些未出现在新数据集中的样本作为验证集。把前面的步骤重复进行多次,这样就可以训练出多个模型并得到它们的验证误差,然后取平均值,作为该模型的验证误差。

4、回归问题常用的评估指标

回归类问题场景下,我们会得到连续值的预测结果,比对标准答案,我们有 MAE、MSE、RMSE 等评估指标(准则)可以衡量预测结果相对实际情况的偏离程度,它们的取值越小说明回归模型的预测越准,模型性能越好。

1)平均绝对误差 MAE

平均绝对误差Mean Absolute Error,MAE),又叫平均绝对离差,是所有标签值与回归模型预测值的偏差的绝对值的平均。

  • 优点:直观地反映回归模型的预测值与实际值之间的偏差。准确地反映实际预测误差的大小。不会出现平均误差中误差符号不同而导致的正负相互抵消。
  • 缺点:不能反映预测的无偏性(估算的偏差就是估计值的期望与真实值的差值。无偏就要求估计值的期望就是真实值).

2)平均绝对百分误差 MAPE

虽然平均绝对误差能够获得一个评价值,但是你并不知道这个值代表模型拟合是优还是劣,只有通过对比才能达到效果。当需要以相对的观点来衡量误差时,则使用MAPE。

平均绝对百分误差Mean Absolute Percentage Error,MAPE)是对 MAE 的一种改进,考虑了绝对误差相对真实值的比例。

  • 优点:考虑了预测值与真实值的误差。考虑了误差与真实值之间的比例。

3)均方误差 MSE

MAE虽能较好衡量回归模型的好坏,但是绝对值的存在导致函数不光滑,在某些点上不能求导。可以考虑将绝对值改为残差的平方,就得到了均方误差。

均方误差Mean Square Error,MSE)相对于平均绝对误差而言,均方误差求的是所有标签值与回归模型预测值的偏差的平方的平均。

  • 优点:准确地反映实际预测误差的大小。放大预测偏差较大的值。比较不同预测模型的稳定性。
  • 缺点:不能反映预测的无偏性。

4)均方根误差 RMSE

均方根误差Root-Mean-Square Error,RMSE),也称标准误差,是在均方误差的基础上进行开方运算。RMSE会被用来衡量观测值同真值之间的偏差。

5)决定系数

决定系数 R 平方与之前介绍的三个指标有所不同,它表征的是因变量 X 的变化中有多少可以用自变量 Y 来解释,是回归方程对观测值拟合程度的一种体现。R 平方越接近 1,说明回归模型的性能越好,即能够解释大部分的因变量变化。

  • 优点:用于定量描述回归模型的解释能力。
  • 缺点:没有考虑特征数量变化的影响。无法比较特征数目不同的回归模型。

  • SSR:Sum of Squares of the Regression,即预测数据与原始数据均值之差的平方和,反映的是模型相对原始数据均值的离散程度。
  • SST:Total Sum of Squares,即原始数据和均值之差的平方和,反映的是原始数据相对均值的离散程度。
  • SSE:Sum of Squares for Error,残差平方和,原始数据和预测数据之差的平方和。

    6)校正决定系数

    在利用 R 平方来评价回归方程的优劣时,随着自变量个数的不断增加,R 平方将不断增大。而校正决定系数则可以消除样本数量和特征数量的影响。

  • 优点:在决定系数 R 平方的基础上考虑了特征个数的影响。比较变量数不同的模型。

5、分类问题常用的评估指标

分类问题是机器学习领域最常见的大类问题,有很多场景可以划归到分类问题的解决范畴。下面我们梳理一下分类问题的主要评估指标(Evaluation Metrics)。

1)混淆矩阵

在人工智能中,混淆矩阵Confusion Matrix)是非常有效的评估模式,特别用于监督学习(在无监督学习中一般叫做匹配矩阵)。典型的混淆矩阵构成:

  • 每一行代表了预测类别,每一行的总数表示预测为该类别的数据的数目。
  • 每一列代表了数据的真实归属类别,每一列的数据总数表示该类别的数据实例的数目。

  • True Positive(TP):真实值为Positive,预测值为Positive。

  • False positive(FP):真实值为Negative,预测值为Negative。

  • False Negative(FN):真实值为Negative,预测值为Positive。

  • True Negative(TN):真实值为Positive,预测值为Negative。

2)Accuracy 精确率

对于分类问题,精确率(Accuracy)指分类正确的样本数占样本总数的比例,是最常用的指标,可以总体上衡量一个预测的性能。一般情况(数据类别均衡)下,模型的精度越高,说明模型的效果越好。

3) Precision 查准率

Precision 查准率),又称正确率、准确率,表示在模型识别为正类的样本中,真正为正类的样本所占的比例。一般情况下,查准率越高,说明模型的效果越好。

4) Recall 查全率

Recall 查全率),又称召回率,表示的是,模型正确识别出为正类的样本的数量占总的正类样本数量的比值。一般情况下,Recall 越高,说明有更多的正类样本被模型预测正确,模型的效果越好。

5)Fβ-Score 和 F1-Score

理论上来说,Precision 和 Recall 都是越高越好,但更多时候它们两个是矛盾的,经常无法保证二者都很高。此时,引入一个新指标 Fβ - Score,用来综合考虑 Precision 与 Recall。

6)ROC(没有详细学习,后期完善)

除了前面介绍的Accuracy、Precision 与 Recall,还有一些其他的度量标准,如使用 True Positive Rate(TPR,真正例率)和False Positive Rate(FPR,假正例率)两个指标来绘制 ROC 曲线。

ROC曲线Receiver Operating Characteristic Curve)全称是「受试者工作特性曲线」。综合考虑了概率预测排序的质量,体现了学习器在不同任务下的「期望泛化性能」的好坏,反映了TPR和FPR随阈值的变化情况。

ROC曲线越接近左上角,表示该分类器的性能越好。也就是说模型在保证能够尽可能地准确识别小众样本的基础上,还保持一个较低的误判率,即不会因为要找出小众样本而将很多大众样本给误判。

一般来说,如果ROC是光滑的,那么基本可以判断没有太大的overfitting

7)AUC(没有详细学习,后期完善)

ROC曲线的确能在一定程度上反映模型的性能,但它并不是那么方便,因为曲线靠近左上方这个说法还比较主观,不够定量化,因此还是需要一个定量化的标量指标来反映这个事情。ROC曲线的AUC值恰好就做到了这一点。

AUCArea Under ROC Curve)是 ROC 曲线下面积,其物理意义是,正样本的预测结果大于负样本的预测结果的概率,本质是AUC反应的是分类器对样本的排序能力。

8)PRC(没有详细学习,后期完善)

与 ROC 曲线的思想类似,根据 Precision 和 Recall,也提出了一种 Precision-Recall 曲线。

6、二分类评估指标适用场景

在不同的业务场景中,Precision 和 Recall 的侧重不一样:

  • 对于癌症预测、地震预测这类业务场景,人们更关注模型对正类的预测能力和敏感度,因此模型要尽可能提升 Recall,甚至不惜降低 Precision。

  • 而对于垃圾邮件识别等场景中,人们更难以接受FP(把正常邮件识别为垃圾邮件,影响工作),因此模型可以适度降低 Recall 以便获得更高的 Precision。我们可以通过调节 Fβ - Score 中 β 的大小来控制 Precision 和 Recall 的侧重程度。

1)评价指标分析

对于这些评价指标的选择,有如下的一些经验:

  • Accuracy适用于正负样本比例相差不大的情况的结果评估。
  • Precision 和 Recall 适用于正负样本差异很大的情况,Precision 不能用于抽样情况下的效果评估,Recall 不受抽样影响。
  • 负样本的数量远远大于正样本的数据集里,PRC 更能有效衡量分类器的好坏。
  • AUC 计算主要与排序有关,所以它对排序敏感,而对预测分数没那么敏感。

2)垃圾邮件识别

垃圾邮件占用网络带宽、侵犯收件人的隐私权、骗人钱财等,已经对现实社会造成了危害。一般来说,凡是未经用户许可就强行发送到用户的邮箱中的任何电子邮件都可称作是垃圾邮件,这是一个典型的二分类问题。

「把垃圾文件识别为正常文件」和「把正常文件识别为垃圾文件」,二者相比,我们显然更能容忍前者,因此模型可以适度降低 Recall 以便获得更高的 Precision。

3)金融风控

再来看个金融风控的例子,首先需要明确一点,正常客户的数量一般来说是远远大于风险客户的,这是个样本不均衡问题。互联网金融公司风控部门的主要工作是利用机器模型抓取坏客户。

根据前面对 Precision 、 Recall 以及PR曲线的介绍,知道,Precision 和 Recall 往往都是相互牵制的,很难同时达到一个很高的水平。所以在这个案例中,同样需要根据业务场景来衡量这两个指标的重要性。

  • 互联网金融公司要扩大业务量,尽量多的吸引好客户,此时风控部门就会提高阈值,从而提高模型的查准率 Precision,同时,也会放进一部分坏客户,导致查全率 Recall 下降。
  • 如果公司坏账扩大,公司缩紧业务,尽可能抓住更多的坏客户,此时风控部门需要不惜一切代价降低损失,守住风险底线,因此会降低阈值,从而提高模型的查全率 Recall,但是这样会导致一部分好客户误抓,从而降低模型的查准率 Precision。

可以通过调节 Fβ - Score 中 β 的大小来控制 Precision 和 Recall 的侧重程度。 β<1,重视查准率;β>1 ,重视查全率。

7.样本均衡与采样

首先看看什么是分类任务中的样本不均衡问题,以及如何解决样本不均衡问题。

1)样本均衡问题

在学术研究与教学中,很多算法都有一个基本假设,那就是数据分布是均匀的。当把这些算法直接应用于实际数据时,大多数情况下都无法取得理想的结果,因为实际数据往往分布得很不均匀,都会存在「长尾现象」。

  • 多数样本数量多,信息量大,容易被模型充分学习,模型容易识别这类样本
  • 少数样本数量少,信息量少,模型没有充分学习到它们的特征,很难识别这类样本

解决这一问题的基本思路是,让正负样本在训练过程中拥有相同的话语权(比如利用采样与加权等方法)。样本类别不均衡的情况下,最常见的处理方式是「数据采样」与「样本加权」,详细介绍如下:

2)数据采样

(1)欠采样 / 下采样

欠采样技术是将数据从原始数据集中移除。

  • 从多数类集合中筛选样本集E。
  • 将这些样本从多数类集合中移除。

(2)过采样 / 上采样

随机过采样:

  • 首先在少数类集合中随机选中一些少数类样本。
  • 然后通过复制所选样本生成样本集合 E 。
  • 将它们添加到少数类集合中来扩大原始数据集从而得到新的少数类集合。

我们也有一些少类别样本合成技术方法,比如机器学习中有SMOTE算法通过合成新样本完成过采样,缓解样本类别不均衡问题。

(3)不同采样方法的比较

下采样的缺点显而易见,那就是最终的训练集丢失了数据,模型只学到了总体模式的一部分。而SMOTE算法为每个小众样本合成相同数量的新样本,但这也带来一些潜在的问题:

  • 一方面是增加了类之间重叠的可能性,即通过算法生成的小众样本并不一定是合理的小众样本。
  • 另一方面是生成一些没有提供有益信息的样本。

3)加权

除了上采样和下采样这种采样方式以外,还可以通过加权的方式来解决数据不均衡问题,即对不同类别分错的代价不同,对于小众样本,如果分错了会造成更大的损失。这种方法的难点在于设置合理的权重,实际应用中一般让各个分类间的加权损失值近似相等。当然这并不是通用法则,还是需要具体问题具体分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值