Skip to content

第 11 章 机器学习系统的设计

这一章讲如何设计和改进一个实际机器学习系统。核心方法是快速建立基线、做误差分析,并使用合适的评估指标。

11.1 首先要做什么

课程以垃圾邮件分类为例。

面对一个机器学习系统,不应一开始就花很久设计复杂方案。更好的做法是:

  1. 快速实现一个简单版本。
  2. 用交叉验证集评估。
  3. 做误差分析。
  4. 根据证据决定下一步。

垃圾邮件分类可以使用邮件中的单词作为特征。是否出现某个单词,可以作为 0 / 1 特征。

11.2 误差分析

误差分析就是查看模型预测错误的样本,找出错误的主要类型。

例如垃圾邮件分类中,可以统计错误邮件属于哪些类别:

  • 药品广告。
  • 仿冒邮件。
  • 钓鱼邮件。
  • 含有异常拼写的邮件。

如果某类错误占比很高,就说明下一步优化应该优先针对它。

误差分析强调用数据决定方向,而不是凭感觉添加功能。

11.3 类偏斜的误差度量

当类别极度不平衡时,准确率可能误导人。

例如癌症检测中,如果只有 0.5% 的样本是阳性,一个永远预测阴性的模型也能有 99.5% 的准确率,但它没有实际价值。

这时应该使用查准率和查全率。

查准率:

Precision=TPTP+FP

查全率:

Recall=TPTP+FN

含义:

  • 查准率:预测为正的样本里,有多少是真的正。
  • 查全率:真实为正的样本里,有多少被找出来。

11.4 查准率和查全率之间的权衡

分类器通常会输出一个概率或评分。调整阈值会改变查准率和查全率。

提高阈值:

  • 预测为正更谨慎。
  • 查准率通常上升。
  • 查全率通常下降。

降低阈值:

  • 更多样本会被预测为正。
  • 查全率通常上升。
  • 查准率可能下降。

为了综合评价,可以使用 F1 分数:

F1=2Precision×RecallPrecision+Recall

11.5 机器学习的数据

有时更多数据会带来明显提升,但前提是特征中包含足够信息,并且模型有能力学习到规律。

通常,复杂模型配合大量数据会有较好表现。

但数据不是万能的。应该先通过学习曲线和误差分析判断问题主要来自数据不足、特征不足,还是模型偏差过高。

Powered by VitePress