斯坦福机器学习课程 第三周 (3)多类别分类问题:一对多

一对多分类问题

视频地址

在本节视频中,我们将谈到如何使用逻辑回归来解决多类别分类问题。具体来说,我想通过一个叫做“一对多”(one-vs-all)的分类算法,让你了解什么是多类别分类问题。

先看这样一些例子:

  • 邮件分类器自动将邮件按照以下标签分类:工作,朋友,家庭,兴趣
  • 医学根据病人的得病类型分类:没有病,感冒,流感
  • 天气预报根据天气类型分类:晴天,多云,雨天,雪天

我们可以分别对这些类别打上数值标签,比如天气分类中:晴天代表y=1,多云代表y=2,雨天代表y=3,雪天代表y=4

以上这些例子都属于多类别分类问题。


二元分类问题和多类别分类问题的比较:

二元分类问题中,我们只有两个类别需要处理,而在多类别分类问题中,我们有多种类别需要处理。这里我们用三种不同的符号代表三种类别。

在二元分类中,我们知道我们可以使用逻辑回归来将两种类别的数据集一分为二:

对于一对多的分类问题,我们也可以借鉴二元分类的思想。下面就来介绍一些如何进行一对多分类工作(有时也被称为“一对余”方法)。

如图,我们现在有一组由三个类别元素组成的训练集。接下来我们要做的就是使用一个训练集将其分成三个二元分类问题。我们先从三角形开始,将其他两种类型视为同一种类型:

实际上这是一个新的“伪类型集”,类型2和类型3被定义为负类(值为0),类型1定义为正类(值为1)。我们要拟合出一个合适的分类器,来区分正类和负类。我们称这个分类器为$h_{\theta}^{(1)}(x)$

同理,对类型2也做同样的处理,得到分类器$h_{\theta}^{(2)}(x)$:

最后,对类型三也做同样处理,得到分类器$h_{\theta}^{(3)}(x)$:

这样我们就得到了三个分类器,通过这些分类器来估算出给出$x$和先验$\theta$时,$y=i$的概率:

$$
h_{\theta}^{(i)}(x) = P(y=i|x;\theta) \qquad (i=1,2,3)
$$

总之,现在我们要做的就是训练这个逻辑回归分类器$h_{\theta}^{(i)}(x)$,其中$i$对应每一个可能的$y=i$。

最后,为了做出预测,我们给定一个新的输入值$x$,用来做预测,我们要做的就是在我们的三个分类器里输入$x$,然后我们选择一个让$h_{\theta}^{(i)}(x)$最大的$i$,这就是预测出的类别。