十一、机器学习系统的设计(Machine Learning System Design) 11.1 首先要做什么

参考视频: 11 - 1 - Prioritizing What to Work On (10 min).mkv

在接下来的视频中,我将谈到机器学习系统的设计。这些视频将谈及在设计复杂的机器 学习系统时,你将遇到的主要问题。同时我们会试着给出一些关于如何巧妙构建一个复杂的 机器学习系统的建议。下面的课程的的数学性可能不是那么强,但是我认为我们将要讲到的 这些东西是非常有用的,可能在构建大型的机器学习系统时,节省大量的时间。

本周以一个垃圾邮件分类器算法为例进行讨论。 为了解决这样一个问题,我们首先要做的决定是如何选择并表达特征向量 x。我们可以

选择一个由 100 个最常出现在垃圾邮件中的词所构成的列表,根据这些词是否有在邮件中出

现,来获得我们的特征向量(出现为 1,不出现为 0),尺寸为 100×1。 为了构建这个分类器算法,我们可以做很多事,例如:

  1. 收集更多的数据,让我们有更多的垃圾邮件和非垃圾邮件的样本

  2. 基于邮件的路由信息开发一系列复杂的特征

  3. 基于邮件的正文信息开发一系列复杂的特征,包括考虑截词的处理

  4. 为探测刻意的拼写错误(把 watch 写成 w4tch)开发复杂的算法 在上面这些选项中,非常难决定应该在哪一项上花费时间和精力,作出明智的选择,比

随着感觉走要更好。当我们使用机器学习时,总是可以“头脑风暴”一下,想出一堆方法来 试试。实际上,当你需要通过头脑风暴来想出不同方法来尝试去提高精度的时候,你可能已 经超越了很多人了。大部分人并不尝试着列出可能的方法,他们做的只是某天早上醒来,因 为某些原因有了一个突发奇想:"让我们来试试用 Honey Pot 项目收集大量的数据吧。"

我们将在随后的课程中讲误差分析,我会告诉你怎样用一个更加系统性的方法,从一堆 不同的方法中,选取合适的那一个。因此,你更有可能选择一个真正的好方法,能让你花上 几天几周,甚至是几个月去进行深入的研究。