一般情况下,我们都认为逻辑回归(LR)用来解决二分类问题,BCE损失函数也是用来解决二分类问题的,那逻辑回归以及BCE损失函数能否用来做多分类任务呢,答案是肯定的。有两种方法
一、将多分类任务拆解成多个二分类任务;
二、对传统的逻辑回归模型进行改造,使之变为softmax回归模型进行多分类任务求解(也就是sklearn中逻辑回归的multi_class=‘multinomial’), 我们可以认为多元逻辑回归就是sofmax回归
- 多分类任务拆解成多个二分类器
将多分类任务拆为多个二分类任务求解,一般有3种拆分策略:
1. OvO(一对一,One vs One):假如数据D中有N个类别,将N个类别进行两两配对,产生N(N-1)/2
个二分类器,在预测中,将测试样本输入这N(N-1)/2
个二分类器中得到相应个数的预测结果,然后再将被预测结果数最多的(Voting)作为最终分类结果。
2. OvR(一对其余,One vs Rest): 将一个类别作为正例,其余所有类别作为反例,这样N个类别可以产生N个二分类器,将测试样本输入这些二分类器中中得到N个预测结果,如果仅有一个分类器预测为正类,则将对应的预测结果作为最终预测结果。如果有多个分类器预测为正类,则选择置信度最大的类别作为最终分类结果。
3. MvM(多对多,Many vs Many):将数据集中的若干个类作为正例,若干个其他类作为反例。MvM的正、反类构造必须有特殊的设计,而不是随意选取,通