逻辑回归处理多分类的方法

  • 1、背景描述
  • 2、One vs One
  • 3、One vs Rest
  • 4、从Sigmoid到Softmax的推导






1、背景描述



逻辑回归本身只能用于二分类问题,如果实际情况是多分类的,那么就需要对模型进行一些改动。下面介绍三种常用的将逻辑回归用于多分类的方法

2、One vs One



OvO(One vs One)方法是指从多个类别中任意抽取出两个类别,然后将对应的样本输入到一个逻辑回归模型中,学习到一个对这两个类别的分类器,然后重复以上步骤,直到所有类别两两之间都学习到一个分类器

简单来说,就是让不同类别的数据两两组合训练分类器

例如,对于3分类问题,分类器的数量为深度学习 回归 标签_逻辑回归=3个,即可以得到3个二元分类器

分类器的数量可以使用深度学习 回归 标签_git_02计算,其中深度学习 回归 标签_git_03代表类别的数量

在预测阶段,只需要将测试样本分别输入训练阶段训练好的3个分类器进行预测,最后将3个分类器预测出的结果进行投票统计,票数最高的结果为预测结果

例如,下面的3分类问题:

深度学习 回归 标签_git_04

上图(从左到右)分别为正方形与十字星训练出的分类器、三角形与十字星训练出的分类器和三角形与正方形训练出的分类器

现在,我们有一个在红色圆圈位置的数据,如下图,通过上述方法,我们如何预测这个数据属于哪一类?

深度学习 回归 标签_Soft_05

将新样本分别输入训练好的3个分类器:第一个分类器会认为它是一个十字星,第二个分类器会认为它偏向三角形,第三个分类器会认为它是十字星,经过3个分类器的投票之后,可以预测红色圆圈位置所代表的数据的类别为十字星

任何一个测试样本都可以通过分类器的投票选举出预测结果,这就是OvO(One vs One)的运行方式

在OvO的方法中,当需要预测的类别变得很多的时候,那么我们需要进行训练的分类器也变得很多了,这将大大提高训练开销。但是,每一个训练器中,我们只需要输入两个类别对应的训练样本

3、One vs Rest



OvR(One vs Rest)方法从所有类别中依次选择一个类别作为1,其他所有类别作为0,来训练分类器,因此分类器的数量要比OvO的数量少得多

简单来说就是,对n种类别的样本进行分类时,分别取一种样本作为一类,将剩余的所有类型的样本看做另一类,这样就形成了n个二分类问题

例如,对于三分类问题,分类器的数量为3个,对于四分类问题,分类器的数量为4个。分类器的数量实际上就是类别的数量

在预测阶段,只需要将测试样本分别输入训练阶段训练好的3个分类器进行预测,最后将3个分类器预测出的结果进行投票统计,预测结果的确定,是根据每个分类器对其对应的类别为1的概率进行排序,选择概率最高的那个类别作为最终的预测类别

例如,下面的三分类问题:

深度学习 回归 标签_深度学习 回归 标签_06

上图(从左到右)分别为三个分类器,分类器1认为是A的概率为0.7,分类器2认为是B的概率为0.3,分类器3认为是C的概率为0.2,因此,最终的预测结果为A

4、从Sigmoid到Softmax的推导



第三种方法,我们可以直接从数学上使用Softmax函数来得到最终的结果,而Softmax函数与Sigmoid函数有着密不可分的关系,它是Sigmoid函数的更一般化表示,而Sigmoid函数是Softmax函数的一个特殊情况

在之前的文章(详见:传送门)中,我们已经推导了线性回归的结果等于对数几率(log odds),也称logit函数
深度学习 回归 标签_逻辑回归_07

分子表示一个事件发生的概率,分母代表这个事件不发生的概率,两者的和为1

当我们面对的情况是多个分类时,可以让k-1个类别分别对剩下的那个类别做回归,即得到k-1个logit公式
深度学习 回归 标签_机器学习_08

于是
深度学习 回归 标签_git_09

由于所有类别的可能性相加为1,因此可以得到
深度学习 回归 标签_git_10

通过解上面的方程,可以得到关于某个样本被分类到类别深度学习 回归 标签_深度学习 回归 标签_11的概率为
深度学习 回归 标签_Soft_12

这就是我们的Softmax函数了