沐神实用机器学习4——模型评估

4.1  模型评估

模型指标

  • 损失的值是衡量模型质量很好的指标,但模型的质量往往由多个指标来衡量;
  • 其他指标:
    • 具体的模型指标:分类的准确率,检测的mAP等;
    • 具体的商业指标:推理/响应速度;

查询/页面 ==> 检索相关的广告 ==> 估计广告的点击率(CTR) ==> 展示CTR×price最高的广告

预测广告的点击率,即一个二分类问题;

正例(点击)往往较少,负例(不点击)往往较多,响应的数据量要符合实际。

  • Accuracy 准确率:预测正确的占总的(对于不平衡问题,往往更关注对正类的预测是否正确,更关注每一个类的精度和召回率);
  • Precision 精度:对于某个具体的类i预测对了多少个(预测为类i且该类真的为类i) / 把多少个样本预测成类i
  • Recall 召回率:预测为类i而且它真的是类i / 样本中有多少是类i
  • F1:平衡精度和召回。

关心模型是不是真的能把这两个类区分开来;

对于一个样本,预测值为\hat{y},阈值\theta(一般情况下为0.5,即正负样本平衡时),大于阈值为正类,小于阈值为负类,若正负样本不平衡,该怎么办?

实际生产过程中,会根据很多东西来选择\theta,如就想把特别置信的选出来(关心广告正类预测的精度怎么样),将\theta设置的比较大(只有预测值大于0.9时,认为是正类,此时精度会高,但召回率会低)。

在调整\theta时,会做ROC曲线:

  • x轴,分母=有多少个负例的样本(没有点击的样本个数),分子=预测为正类,但实际是负类;
  • y轴,正类的召回。

ROC:每次取不同的\theta值,做正类和负类的判断 ==> 得到曲线,每个点表示不同的\theta,该曲线可以表示一种精度和召回之间的权衡。

AUC:曲线下面的面积(最大值为1,最小值为0);

上图右半部分解释如下:

  • AUC=1,完全可以区分正类和负类;
  • AUC=0.7,正负类部分耦合;
  • AUC=0.5,正负类完全耦合 ≈ 随机预测;
  • AUC=0,正负类预测相反。

优化收入和用户体验;

  • Latency: 延迟,响应速度;
  • ASN:平均每一页展现多少广告;
  • CTR:真实的用户点击率;
  • ACP:平均每次点击广告主给的钱。

模型上线并不能一次性满足所有指标,通常要有一定的权衡。

  • 模型最关注的指标AUC;
  • 一个新的模型,评估时AUC增加,但商业指标不一定增加;
  • 部署模型用真实的数据来评估模型。 

4.2  过拟合和欠拟合

  • 训练误差:模型在训练数据上的错误;
  • 泛化误差:模型在新的没有见过的数据上的错误;

数据与模型的复杂度要匹配。 

  • 模型的复杂度:能够去拟合各种各样函数的能力;
  • 不那么容易比较算法之间的复杂度;
  • 同类算法容易进行比较:
    • 参数量
    • 可学习的参数能取多少值(有值限制的模型相对简单,即通常所说的正则化)

模型复杂度会产生的一些影响:

  • 随着模型复杂度的增高,模型在训练数据上的误差会降低;
  • 但是泛化误差不一定会一直降低。 

不能完全没有过拟合,存在一定程度的过拟合为正常现象。

  • x轴为决策树的深度;
  • y轴为错误率。

数据复杂度的因素:

  • 有多少个样本,样本数越多数据越复杂;
  • 每个样本中有多少个元素,如维度(1000x1000 > 100x100)、数据中有没有一些时间空间的结构(股票有时序结构,图片有空间结构),有特殊结构的数据复杂度会高一些;
  • 数据的多样性(如做分类,是有10种类别还是更多)

对于特别不同的数据很难衡量二者的复杂度(如图像中的像素 & 句子中的字符)

  • 同一个模型,增加数据复杂度(e.g. 样本数),会由过拟合变为欠拟合,泛化误差会有一定的下降,但继续增加会达到模型的能力的上限(此时需要更换相对更复杂的模型,如绿色的线);
  • 复杂模型一开始泛化误差较高,是由于数据复杂度小、模型复杂度高,容易造成过拟合,随着数据复杂度的增加,泛化误差会有下降。 

数据复杂度和模型复杂度也是一个相互匹配的过程。

选择与数据有合适复杂度的模型

  • 最小化泛化误差;
  • 同时也要考虑商业指标。

先选一个模型的类(决策树or神经网络?),再选择合适的超参数

总结:

  • 我们关注的是泛化误差而不是训练 误差;
  • 模型复杂度,拟合各种各样函数的能力;
  • 数据复杂度,信息的多少;
  • 模型选择,模型与数据的复杂度要相匹配。

4.3  模型验证

测试数据集的误差可以被看作泛化误差,测试集只能用一次

验证集,可以被使用多次

  • 通常是训练集中的一块;
  • 大多数情况下“test” 指的是验证集。

随机拆分有前提:数据中每个样本之间独立同分布。

I.I.D: independent and indentically distributed

有的数据不符合:

  • 具有时序信息的数据,如房屋售价、股票的价格等;
  • 属于同一组的数据,如同一人脸的不同图像;
  • 不平衡的数据。

K-折交叉验证:每个样本并没有在其上训练的情况怎样。

数据较少时,可以取较大的K。

模型表现的很好,很可能存在bug。

验证集中有来自训练集的样本

  • 有些样本是重复的,可能同时分到训练集和验证集;
  • 数据融合(人为的在验证集上调参)。

信息泄露

  • 非I.I.D数据,可能会用到未来预测的数据

references

4.1 模型评估【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili

4.2 过拟合和欠拟合【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili

4.3 模型验证【斯坦福21秋季:实用机器学习中文版】_哔哩哔哩_bilibili

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栗子不哭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值