
本文共 883 字,大约阅读时间需要 2 分钟。
我们已经知道,普通的logistic回归只能针对二分类(Binary Classification)问题,要想实现多个类别的分类,我们必须要改进logistic回归,让其适应多分类问题。
关于这种改进,有两种方式可以做到。
第一种方式是直接根据每个类别,都建立一个二分类器,带有这个类别的样本标记为1,带有其他类别的样本标记为0。假如我们有个类别,最后我们就得到了
个针对不同标记的普通的logistic分类器。这种回归概率之和不为0,因为这种分类方法并不互斥;
第二种方式是修改logistic回归的损失函数,让其适应多分类问题。这个损失函数不再笼统地只考虑二分类非1就0的损失,而是具体考虑每个样本标记的损失。这种方法叫做softmax回归,即logistic回归的多分类版本。
我们首先简单介绍第一种方式。
对于二分类问题,我们只需要一个分类器即可,但是对于多分类问题,我们需要多个分类器才行。假如给定数据集,它们的标记
,即这些样本有
个不同的类别。
我们挑选出标记为的样本,将挑选出来的带有标记
的样本的标记置为1,将剩下的不带有标记
的样本的标记置为0。然后就用这些数据训练出一个分类器,我们得到
(表示针对标记
的logistic分类函数)。
按照上面的步骤,我们可以得到个不同的分类器。针对一个测试样本,我们需要找到这
个分类函数输出值最大的那一个,即为测试样本的标记:
下面我们介绍softmax回归。
对于有个标记的分类问题,分类函数是下面这样:
在这里,我们将上式的所有的组合起来,用矩阵
来表示,即:
这时候,softmax回归算法的代价函数如下所示(其中):
很明显,上述公式是logistic回归损失函数的推广。
我们可以把logistic回归的损失函数改为如下形式:
但是,需要特别注意的是,对于,softmax回归和logistic回归的计算方式是不同的。
对于选择softmax分类器还是个logistic分类器,取决于所有类别之间是否互斥。所有类别之间明显互斥用softmax分类器,所有类别之间不互斥有交叉的情况下最好用
个logistic分类器。
发表评论
最新留言
关于作者
