逻辑回归算法在设计之初是用于二分类问题的,但若想把它用在多分类上也不是不行,这得看你具体面临的多分类问题是什么样的(问题的定义)。不同的问题就有不同的应对之策:
一、一对一
(1)方法的原理
一对一即一个样本输入一个模型对应一个输出类别,在这种方法中,针对每一个类别,都会独立训练一个逻辑回归模型,该模型预测样本是否属于这个类别。如果有K个类别就会得到K个模型。例如,想要得知一个图像样本是否属于3个类别中的其中一种(猫、狗、鸟)就可以先为每一个类别训练一个模型,然后用来预测分类:
- 模型1用来判断这个图像样本是否属于猫
- 模型2用来判断这个图像样本是否属于狗
- 模型3用来判断这个图像样本是否属于鸟
因为逻辑回归算法中在经过sigmoid处理之后,会得到一个概率。所以这里三个模型输出的是三个概率
当新的电影样本A输入进来后,每个模型都会给出自己的分类结果,所以会得到三个预测结果(即属于各个类别的概率),如果某个模型预测其属于该类别的概率最高,则认为该样本属于这一类别。
(2)类别互斥与否对方法的影响
这里猫、狗、鸟是互斥的类别即一个样本不可能同时是猫又是鸟。但倘若一个样本可以同时拥有多个类别呢?比如在电影分类中,若要预测一部电影是否属于动作片、喜剧片、恐怖片等多个类别。一个电影样本是可能动作喜剧片,这个时候我们可以设定某个阈值(比如)只要三个模型中的某个模型预测的概率超过了阈值,就可以将该电影标记为该类别。
二、一对多
(1)方法的原理
一对多即一个样本输入一个模型对应多个输出类别,这种方法将多分类问题转化为多个互斥类别的概率估计问题,通过构建一个模型并输出K个概率值,这些概率值总和为1,代表了样本属于某个类别的概率。该方法只适用于互斥的多分类问题,例如,手写数字识别输入一张手写数字,模型会给出0到9数字的预测概率,其中最高的概率就是分类结果。
- 模型通过softmax函数将样本所有可能的类别统统计算出概率
还拿之前的猫狗鸟的例子来说,使用softmax回归时,我们会构建一个模型,其输出层有三个神经元,分别对应猫、狗、鸟的概率[0.3, 0.5, 0.2]。这意味着模型预测样本为狗的概率最高(0.5),其次是猫(0.3),最后是鸟(0.2)。在这种情况下,因为类别通常是互斥的,所以我们会选择概率最高的类别作为最终预测结果(这里是狗)。
(2)类别互斥与否对方法的影响
如上图,如果类别不是互斥的,那么也可设定一个较高的概率阈值,例如0.5,那么样本就被预测为既是类别1也是类别2
三、多输出逻辑回归
每个输出节点对应一个类别,所有输出节点共享输入层特征,但拥有各自的权重和偏置参数。模型在训练时优化所有类别的损失函数之和。适用于多标签分类,特别是当类别间有一定相关性,希望通过模型结构捕捉这种相关性时。
如果我们认为猫、狗、鸟这三个类别之间存在某种关联,比如某些特征可能同时影响着样本被划分为猫和狗的可能性,这时可以选择多输出逻辑回归。仍以动物分类为例,模型输入层接收关于动物特征的数据,然后通过共享权重的隐藏层提取特征,最后输出层有三个节点,分别对应三个类别的概率。模型在训练过程中,会同时考虑所有类别的损失函数,并试图找到一个既能区分各类别又能捕获类别间潜在关系的最优解。在预测阶段,根据输出节点的概率决定样本所属类别,处理多标签问题时同样可以设定阈值筛选出高概率标签。
四、三种方法之间的关系
这几种方法的关系主要体现在都是通过扩展逻辑回归模型以适应多分类任务,其中一对一和一对多策略在形式上有区别,前者是通过多个独立模型解决,后者则通过一个联合模型;而多输出逻辑回归则是兼顾了两者的特点,既是一个整体模型,又能够单独处理每个类别的输出。