机器学习之分类(Classification) 精确率、准确率、召回率

在机器学习中,模型评估涉及许多方法和名次,在此将其汇总一下,方便以后温习。

来源:谷歌机器学习速成课

前一篇文章: 机器学习之特征工程

一 分类 (Classification):真假与正类负类

a.  真正例(TP) 是指模型将正类别样本正确地预测为正类别。

b.  真负例(TN) 是指模型将负类别样本正确地预测为负类别。

c.   假正例(FP) 是指模型将负类别样本错误地预测为正类别。

d.  真负例(FN) 是指模型将负类别样本正确地预测为负类别。

我们可以使用一个 2x2 混淆矩阵来总结我们的“狼预测”模型,该矩阵描述了所有可能出现的结果(共四种):

二  分类 (Classification):精确率

1 准确率 是指我们的模型预测正确的结果所占的比。

准确率是一个用于评估分类模型的指标,正式点说,准确率的定义如下:

让我们来试着计算一下以下模型的准确率,该模型将100 个肿瘤分为恶性 (正类别)或良性(负类别):

准确率为 0.91,即 91%(总共100个样本中有91个预测正确)。这表示我们的肿瘤分类器在识别恶性肿瘤方面表现得非常出色,对吧?

实际上,只要我们仔细分析一下正类别和负类别,就可以更好地了解我们模型的效果。

在100 个肿瘤样本中91个为良性(90个TN 和1个FP),9 个为恶性(1 个 TP 和 8 个 FN)。

在91 个良性肿瘤中,该模型将 90 个正确识别为良性。这很好。不过,在 9 个恶性肿瘤中,该模型仅将 1 个正确识别为恶性。这是多么可怕的结果!9 个恶性肿瘤中有 8 个未被诊断出来!

虽然 91% 的准确率可能乍一看还不错,但如果另一个肿瘤分类器模型总是预测良性,那么这个模型使用我们的样本进行预测也会实现相同的准确率(100 个中有 91 个预测正确)。换言之,我们的模型与那些没有预测能力来区分恶性肿瘤和良性肿瘤的模型差不多。

当您使用分类不平衡的数据集(比如正类别标签和负类别标签的数量之间存在明显差异)时,单单准确率一项并不能反映全面情况。

由此,引出了精确率召回率两个概念,他们能很好的评估分类不平衡问。


三 分类 (Classification):精确率和召回率

1 精确率

精确率指标尝试回答以下问题:

在被识别为正类别的样本中,确实为正类别的比例是多少?

精确率的定义如下:

 

让我们来计算一下上一部分中用于分析肿瘤的机器学习模型的精确率:

 

2 召回率

召回率尝试回答以下问题:

在所有正类别样本中,被正确识别为正类别的比例是多少?

从数学上讲,召回率的定义如下:

让我们来计算一下肿瘤分类器的召回率:


3 精确率和召回率:一场拔河比赛

要全面评估模型的有效性,必须同时检查精确率和召回率。遗憾的是,精确率和召回率往往是此消彼长的情况。也就是说,提高精确率通常会降低召回率值,反之亦然。请观察下图来了解这一概念,该图显示了电子邮件分类模型做出的 30 项预测。分类阈值右侧的被归类为“垃圾邮件”,左侧的则被归类为“非垃圾邮件”。




由此可见:

1 提高分类阈值,精确率可能会提高(因为FP可能会减小);召回率会下降或保持不变(因为TP会减少或不变,且FN会增加或不变)

2 降低分类阈值,精确率可能会下降(因为FP可能会增加),而召回率(FN可能会减少)可能会有所提高


四 分类 (Classification):ROC和曲线下面积

1 ROC 曲线

ROC 曲线接收者操作特征曲线)是一种显示分类模型在所有分类阈值下的效果的图表。该曲线绘制了以下两个参数:

  • 真正例率
  • 假正例率

ROC 曲线用于绘制采用不同分类阈值时的 TPR 与 FPR。降低分类阈值会导致将更多样本归为正类别,从而增加假正例和真正例的个数。下图显示了一个典型的 ROC 曲线。

为了计算 ROC 曲线上的点,我们可以使用不同的分类阈值多次评估逻辑回归模型,但这样做效率非常低。幸运的是,有一种基于排序的高效算法可以为我们提供此类信息,这种算法称为曲线下面积。

2 曲线下面积:ROC 曲线下面积

曲线下面积表示“ROC曲线下面积”。也就是说,曲线下面积测量的是从 (0,0) 到 (1,1) 之间整个 ROC 曲线以下的整个二维面积(参考积分学)

曲线下面积对所有可能的分类阈值的效果进行综合衡量。曲线下面积的一种解读方式是看作模型将某个随机正类别样本排列在某个随机负类别样本之上的概率。以下面的样本为例,逻辑回归预测从左到右以升序排列:

曲线下面积表示随机正类别(绿色)样本位于随机负类别(红色)样本右侧的概率。

曲线下面积的取值范围为 0-1。预测结果 100% 错误的模型的曲线下面积为 0.0;而预测结果 100% 正确的模型的曲线下面积为 1.0。

曲线下面积因以下两个原因而比较实用:

  • 曲线下面积的尺度不变。它测量预测的排名情况,而不是测量其绝对值。
  • 曲线下面积的分类阈值不变。它测量模型预测的质量,而不考虑所选的分类阈值。

不过,这两个原因都有各自的局限性,这可能会导致曲线下面积在某些用例中不太实用:

  • 并非总是希望尺度不变。 例如,有时我们非常需要被良好校准的概率输出,而曲线下面积无法告诉我们这一结果。
  • 并非总是希望分类阈值不变。 在假负例与假正例的代价存在较大差异的情况下,尽量减少一种类型的分类错误可能至关重要。例如,在进行垃圾邮件检测时,您可能希望优先考虑尽量减少假正例(即使这会导致假负例大幅增加)。对于此类优化,曲线下面积并非一个实用的指标。

详细讨论可以翻阅周志华老师的西瓜书(第二章)

有兴趣的还可以翻看一下我的前一篇文章: 机器学习之特征工程

猜你喜欢

转载自blog.csdn.net/qq_14822691/article/details/81051958