4.1 模型评估【stanford-cs329p】


Model Validation

一个在给定数据集下训练好的模型,用合适的评估指标来衡量模型在新数据上的效果好坏,检验模型的泛化能力

Model Metrics

  • 在监督学习,我们训练模型来最小化损失

    • 损失值是广泛使用的指标来衡量模型的质量
  • 这里有很多其他指标

    • 模型特有:分类准确率
    • 商业特有:收入,推理时间
  • 我们选择模型通过多种指标

    • 就像是选车要考虑安全、舒适、外观、性能等等

Case Study:Displaying Ads

  • 广告是很多互联网公司的主要收入源

  • 搜索网页 -> 取回相应广告 -> 通过CTR评估点击率(简单二分类问题,点还是不点) -> 通过CTR x price排序展示广告

  • 其实对于广告而言,用户点击概率很小,顶多百分之几,所以样本中正例是很小的,更多是负例

Metrics for Classification

  • 准确率:正确预测/总样本

    1
    sum(y == y_hat) / y.size
  • 精确率:正确被预测为i类 / 预测为i类的样本

    很多时候我们并不关心对负类的预测,更关心对正类的预测,因为负类预测对了对业务往往也没有多大的好处

    1
    sum((y_hat == 1) & (y == 1)) / sum(y_hat == 1)
  • 召回率:正确预测为i类 / 样本中i类的个数

    1
    sum((y_hat == 1) & (y == 1)) / sum(y == 1)
  • F1:平衡精确率和召回率

    • 2pr/(p+r)

AUC & ROC

  • AUC,在ROC下面覆盖的区域面积,衡量模型区分类别的概率

    • 选择一个变量 $\theta$ 为置信率,如果 $\hat{y}>\theta$ 救预测为正类,否则预测为负类

    • 比如正负样本平衡的时候取个0.5

    • 实际生成过程中会根据实际情况来选择

    • x轴是错误预测为正类的样本/负样本,y轴是正确预测为正类的样本/正样本,取不同的 $\theta$ 值可以得到不同的曲线,是精度和召回的一个权衡

    • AUC=0.5最糟糕,完全不能区分分布

      avatar

Business Metrics for Displaying Ads

  • 优化收入和用户体验
    • 延迟:广告在同一时间给多少用户展示,模型抽取特征、预测等等一般要在300或500ms以内
    • ASN:平均每个页面多少广告
    • CTR:用户点击率
    • ACP:广告商给每次点击平均付多少钱
  • 收入 = 流量 x ASN x CTR x ACR

Displaying Ads: Model -> Business Metrics

  • 模型的关键指标AUC
  • 一个模型提升了AUC但可能有害于商业指标
    • 选择了不同的广告来展示,这些广告可能有
      • 更低的预测CTR-> 更少的广告展示
      • 更低的真实CTR,可能因为只评估了过去的数据,新数据下用户行为发生了变化
      • 更低的价格
  • 主要的解决方法还是在真实的数据上观察商业指标

Summary

  • 我们用很多标准来评估模型
  • 模型评估标准反应了模型在样本上的表现
    • 比如准确率,精确率,召回率,AUC等
  • 商业指标反应了模型对实际生产的影响