吴恩达机器学习笔记18-多类别分类:一对多(Multiclass Classification_ One-vs-all)

  对于之前的一个,二元分类问题,我们的数据看起来可能是像这样:

  对于一个多类分类问题,我们的数据集或许看起来像这样:

  我用3 种不同的符号来代表3 个类别,问题就是给出3 个类型的数据集,我们如何得到
一个学习算法来进行分类呢?
我们现在已经知道如何进行二元分类,可以使用逻辑回归,对于直线或许你也知道,可
以将数据集一分为二为正类和负类。用一对多的分类思想,我们可以将其用在多类分类问题
上。
下面将介绍如何进行一对多的分类工作,有时这个方法也被称为"一对余"方法。

  现在我们有一个训练集,好比上图表示的有3 个类别,我们用三角形表示 𝑦 = 1,方框
表示𝑦 = 2,叉叉表示 𝑦 = 3。我们下面要做的就是使用一个训练集,将其分成3 个二元分
类问题。
  我们先从用三角形代表的类别1 开始,实际上我们可以创建一个,新的"伪"训练集,类
型2 和类型3 定为负类,类型1 设定为正类,我们创建一个新的训练集,如下图所示的那
样,我们要拟合出一个合适的分类器。

  这里的三角形是正样本,而圆形代表负样本。可以这样想,设置三角形的值为1,圆形
的值为0,下面我们来训练一个标准的逻辑回归分类器,这样我们就得到一个正边界。
为了能实现这样的转变,我们将多个类中的一个类标记为正向类(𝑦 = 1),然后将其
他所有类都标记为负向类,这个模型记作ℎ𝜃
(1)(𝑥)。接着,类似地第我们选择另一个类标记为
正向类(𝑦 = 2),再将其它类都标记为负向类,将这个模型记作 ℎ𝜃
(2)(𝑥),依此类推。
最后我们得到一系列的模型简记为:

  

  最后,在我们需要做预测时,我们将所有的分类机都运行一遍,然后对每一个输入变量,都选择最高可能性的输出变量。

总之,我们已经把要做的做完了,现在要做的就是训练这个逻辑回归分类器:ℎ𝜃
(𝑖)(𝑥),
其中 𝑖 对应每一个可能的 𝑦 = 𝑖,最后,为了做出预测,我们给出输入一个新的 𝑥 值,用
这个做预测。我们要做的就是在我们三个分类器里面输入 𝑥,然后我们选择一个让 ℎ𝜃
(𝑖)(𝑥)
最大的𝑖,即

  你现在知道了基本的挑选分类器的方法,选择出哪一个分类器是可信度最高效果最好的,
那么就可认为得到一个正确的分类,无论𝑖值是多少,我们都有最高的概率值,我们预测𝑦就
是那个值。这就是多类别分类问题,以及一对多的方法,通过这个小方法,你现在也可以将
逻辑回归分类器用在多类分类的问题上。

posted @ 2019-02-18 13:07  NeoML  阅读(6415)  评论(0编辑  收藏  举报