首页 > 试题广场 >

逻辑回归怎么实现多分类

[问答题]

逻辑回归怎么实现多分类

我们已经知道,普通的logistic回归只能针对二分类(Binary Classification)问题,要想实现多个类别的分类,我们必须要改进logistic回归,让其适应多分类问题。

关于这种改进,有两种方式可以做到。

第一种方式是直接根据每个类别,都建立一个二分类器,带有这个类别的样本标记为1,带有其他类别的样本标记为0。假如我们有k个类别,最后我们就得到了k个针对不同标记的普通的logistic分类器。

第二种方式是修改logistic回归的损失函数,让其适应多分类问题。这个损失函数不再笼统地只考虑二分类非1就0的损失,而是具体考虑每个样本标记的损失。这种方法叫做softmax回归,即logistic回归的多分类版本。

我们首先简单介绍第一种方式。

对于二分类问题,我们只需要一个分类器即可,但是对于多分类问题,我们需要多个分类器才行。假如给定数据集,它们的标记,即这些样本有k个不同的类别。

我们挑选出标记为的样本,将挑选出来的带有标记c的样本的标记置为1,将剩下的不带有标记的样本的标记置为0。然后就用这些数据训练出一个分类器,我们得到h_c(x)(表示针对标记的logistic分类函数)。

按照上面的步骤,我们可以得到k个不同的分类器。针对一个测试样本,我们需要找到这k个分类函数输出值最大的那一个,即为测试样本的标记:

下面我们介绍softmax回归。

对于有k个标记的分类问题,分类函数是下面这样:

在这里,我们将上式的所有的组合起来,用矩阵来表示,即:

这时候,softmax回归算法的代价函数如下所示(其中sign( expression is true)=1):

很明显,上述公式是logistic回归损失函数的推广。

我们可以把logistic回归的损失函数改为如下形式:

但是,需要特别注意的是,对于,softmax回归和logistic回归的计算方式是不同的。

对于选择softmax分类器还是k个logistic分类器,取决于所有类别之间是否互斥。所有类别之间明显互斥用softmax分类器,所有类别之间不互斥有交叉的情况下最好用k个logistic分类器。

转自于:https://blog.csdn.net/SZU_Hadooper/article/details/78619001

发表于 2019-04-19 13:24:36 回复(0)
假设有N个分类
1.建立N个1对N-1分类器
2.建立N(N-1)/2的1对1分类器
发表于 2021-03-10 09:33:24 回复(0)

逻辑回归实现多分类有三种方法。

一、One vs Rest

对于每一个样本,都单独建立一个逻辑回归模型,将一对一转换为一对其余。然后找出预测概率最大的那个作为待遇测样本的类型。

二、Multi One vs One

对每两种类别间分别建立分类器,而后各分类器进行投票决定待预测样本的类型。

三、Softmax

使用Softmax激活函数代替sigmoid,从而将其映射到多个0-1之间的数值。Softmax是logistic回归进行分类的一种数学拓展,如果是二分类问题,则其本质上是一样的。

发表于 2021-01-02 15:42:51 回复(0)

将activation变为softMax

发表于 2020-01-31 03:18:41 回复(0)