今天进入第二章:模型评估
1. 什么是模型评估
模型训练后要对其进行评估,看模型表现如何,哪里可以改进
分类、排序、回归、序列预测不同问题指标不同
- 什么时候评估?
两个阶段:离线评估和在线评估
2. 算法工程师应当具备的基本功
知道每种评估指标的精确定义
选择合适的评估指标
根据评估指标的反馈调整模型
3. 什么是准确率
- 定义:指分类正确的样本占总样本个数的比例
是分类问题中最简单的评价指标
例如有个模型将 100 个肿瘤分为恶性 (正类别)或良性(负类别):
那么模型的准确率为:
- 局限性
当样本比例非常不均衡时,比如某类别占 样本比例 80%时,分类器把所有样本都预测为这个类别,也可以获得 80%的准确率
例如向奢侈品用户投放广告,这样的用户占用户总体比例比较小。对数据整体分类准确率高,不代表对奢侈品用户的分类准确率高
- 方案
可以考虑平均准确率,即计算每个类别下的样本准确率,再求平均
4. 精确率与召回率
- 精确率
指分类正确的正样本个数占分类器判定为正样本的样本个数的比例
- 召回率
指分类正确的正样本个数占真正的正样本个数的比例
在排序问题中,通常先返回Top N 结果,再计算它们的Precision 值和 Recall 值,以此来衡量模型的性能
- 局限性
例如,模糊搜索这个功能,返回 Top 5 很容易得到,即 Precision 高的结果,但当用户想找一些冷门内容时,就要翻好几页,问题是召回率比较低
- 方案
绘制出模型的 P-R(Precision-Recall)曲线:P-R 曲线的横轴是召回率,纵轴是精确率。
用 F1 score 和 ROC 曲线来综合地反映一个排序模型的性能
下面对精确率和召回率做一下详细解释 :
下面这个图表示了精度和召回率这两个指标,主要用在于分类问题中。
例如有一个二分类问题的算法。
图中的圆圈里面代表算法判定为正的一些样本。
圆圈的外面代表算法判定为负的一些样本。
但实际上算法它是会有一些东西误判的。
例如方形的左边一半,是实际上为正的样本。右边一半,是实际上为负的样本。那除了算法判断正确的,以外,就是判断错误的样本。
可以对照这个图,看一下准确率,精度,和召回率的定义。
右上角是准确率的公式。意思就是,算法的所有预测结果中,预测正确的有多少
左下角为 precision 精度 查准率就是对于所有机器判定为正的里面,有多大的比例是真的正样本
右下角为 recall 召回率 查全率,顾名思义,就是实际的正样本中,有多大比例被检出了
在图中有标记,阴阳,真假。
真/假 阴/阳性中,阴阳性是指的分类器的判断结果是阴性还是阳性,而真假指代的是是否和真是答案相符
不同的问题,他需要用的指标,希望达到的目标是不一样的。
我们根据召回率这个名字,可以考虑一个,召回的例子。
例如有一个汽车公司,他们有一些车发现有问题,
于是就要召回,他们告诉了车主判断问题的方法,
有些车是真的有问题,但是车主没判断出来,
有些车没问题,但车主认为有问题,
这个时候公司就要计算一下召回率,看有问题的车被召回了多少。
精度—召回率 之间存在制衡
随着精度的增加,召回率会降低,召回率增加,精度就会降低。
有时如果需要召回率高,就可以接受较低的精度。
如果我们想要找到精度和召回率的最佳组合,我们可以使用 F1 score 来对两者进行结合。
F1 score 是对精度和召回率的调和平均,有个公式
如果我们想创建一个具有最佳的精度—召回率平衡的模型,那么就要尝试将 F1 score 最大化。
在实际应用时,因为是分类算法,会有一个阈值,当结果高于这个阈值时为一类,低于这个阈值时为另一类。
对每个阈值可以计算相应的 精度 召回率 f1 等指标,
通过更改阈值,这些指标都会变化,
如果想要精度和召回率平衡,可以选择最大化 F1 score 时候的阈值
例如上图,基于 F1 score,整体最佳的模型出现在阈值为 0.5 的地方。
如果我们想要在更大程度上强调精度或者召回率,我们可以选择这些指标上最佳时对应的模型。
预告 next:
机器学习中常用评估指标汇总
ROC 曲线详解
大家好!我是 Alice,欢迎进入一起学《百面机器学习》系列!
这个系列并不只是根据书本画个思维导图,除了用导图的形式提炼出精华,还会对涉及到的重要概念进行更深度的解释,顺便也梳理一下机器学习的知识体系。
欢迎关注我,一起交流学习!