写点什么

实用机器学习十七:模型评估

作者:打工人!
  • 2021 年 12 月 18 日
  • 本文字数:1640 字

    阅读完需:约 5 分钟

实用机器学习十七:模型评估

前言:

本文是个人在 B 站自学李沐老师的实用机器学习课程【斯坦福 2021 秋季中文同步】的学习笔记,感觉沐神讲解的非常棒 yyds。

本文的定位:


先来说一说本文所讲内容与前面文章之间的关系:这一系列文章,最开始讲述的是如何得到数据,以及如何对数据进行处理。比如:对房子价格的预测,从数学上来说,价格实际上就是一个分布 P,数据收集就是在这个分布上采样数据,做成数据集 data;然后讲述的是算法部分,比如:决策树,MLP,CNN, RNN,然后使用合适的算法对 data 进行训练,得到模型 model。机器学习关注的不是训练好的模型对训练数据集的预测有多好,更加关心的是,在 P 上再采样一个新的数据样本,然后输入到训练好的模型,这个模型对新的数据的预测性能。所以本文关注的不是在模型训练过程中对训练集的预测性能。而是训练好的模型对新数据(未知的数据)的预测性能,如何选择采样方法以及模型超参数来提高性能。关系如下图所示:

本文与前述内容关系

模型指标:


  • 在监督学习中,通过最小化损失来训练模型:

  • 损失的值是一个被广泛使用来衡量模型质量的指标

  • 其他衡量指标:

  • 模型方面:比如分类的准确率,目标检测的 mAP

  • 商业方面:比如模型对营收的影响,推理时间等

  • 在对模型进行评估时,同时不止使用一个指标。

实例:广告展现:


首先用户会通过关键词进行搜索,或者在某一个页面,后台根据关键词等信息找到相关的广告,然后算法对每一个广告的点击率进行预测,并计算出预计收入进行排序,最后选择 top 广告进行展现。


在这个广告的二分类问题中,因为绝大部分人是不点击广告的,因此,负样本特别多,正样本特别少。


展现广告流程

分类问题指标:


  • Accuracy:正确预测数量/样本数量。

sum(y = y_hat) / y.size。y_hat 代表模型预测值,下同。y=y_hat 即样本标签和模型预测值相同


  • Precision:正确预测类型 i 的数量 / 被预测成类型 i 的数量

sum((y_hat == 1) & (y = 1)) / sum(y_hat == 1) 。 这里的 y_hat == 1 表示模型预测的值为类型 i ,即类型 i 对应的标号是 1。


  • Recall:正确预测类型 i 的数量 / 类型 i 的样本数量

sum((y_hat == 1) & (y = 1)) / sum(y == 1)


从精度(Precision)和 召回率(Recall)的计算公式来看,分子都相同,只是分母不一样。为什么要区分成两个指标呢?因为,如果数据集中正样本太少,那么 sum(y_hat == 1)会更小,从而精度就会很高,导致模型训练很好的错觉。评价太偏面,所以就出现了召回率。


  • F1:平衡精度和召回率指标

  • 调和平均值=2pr/(p+r)。p 代表精度,r 代表召回率。

二分类问题指标 AUC&ROC:


在二分类问题中,为了确定模型的预测到底是一个正样本还是负样本,通常会设置一个阈值如果,就认为预测为正样本,反之。如果训练集中的正负样本比较平衡,阈值可以设置为 0.5。但是在实际生产中,会根据很多东西来调节阈值,通过调节阈值的大小,就可以控制模型的精度等指标。


那么如何观察模型对阈值变化的反应呢?ROC 曲线就上场了,黄色曲线上每一个点就是在不同阈值下,模型得到的 ROC 值。如下图:阴影部分面积就是 AUC 值,AUC 最大值等于 1,最小值为 0。

ROC曲线

AUC 的意义:


如下图左边所示,AUC=1,表示模型可以完完美地把正负样本分开,从图上就可以看到存在一条直线可以把正负样本完全切开。红色曲线为正样本,绿色曲线为负样本。


再看第三行图,AUC= 0.5,完全没法把正负样本分开,是一个随机预测。


看第四行图,AUC = 0,正好完全把正样本预测成负样本,把负样本预测成正样本。但是这不是问题, 把预测值的正负号换一下就可以了。


我们的任务就是避免 AUC 的值为 0.5,从 0.5 拉升到 1,如果 AUC 小于 0.5,变成 1-0.5。


ROC与AUC的关系

部署广告的商业指标:


  • 优化广告收入和用户体验

  • 延迟:部署在线上的模型要在很短的时间内完成数据特征抽取,模型预测等等。因为如果一旦广告投放太慢的话,用户可能就会错过广告,不再关注。这个指标和推理所用的硬件设备有关,cpu?gpu?

  • ASN:平均每一个页面投放的广告量。

  • CTR:用户真实的点击率

  • ACP:平均每一个点击量,广告主支付的费用

  • 平台方收入= 流量*ASN*CTR*ACP


发布于: 2 小时前阅读数: 6
用户头像

打工人!

关注

打工人! 2019.11.10 加入

InfoQ年度最佳内容获得者。 InfoQ签约作者 本人打工人一枚,自动化和控制专业入坑人一枚。目前在研究深度强化学习(DRL)技术。准备入坑互联网小白一枚。喜欢了解科技前沿技术,喜欢拍照。

评论

发布
暂无评论
实用机器学习十七:模型评估