logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域。
自变量既可以是连续的,也可以是分类的。
1.理论推导
2.怎么使用逻辑回归进行多分类:
我们已经知道,普通的logistic回归只能针对二分类(Binary Classification)问题,要想实现多个类别的分类,我们必须要改进logistic回归,让其适应多分类问题。
关于这种改进,有两种方式可以做到。
(1)第一种方式是直接根据每个类别,都建立一个二分类器,带有这个类别的样本标记为1,带有其他类别的样本标记为0。假如我们有k个类别,最后我们就得到了k个针对不同标记的普通的logistic二分类器。(本质上就是ovr的做法)
(2)第二种方式是修改logistic回归的损失函数,让其适应多分类问题。这个损失函数不再笼统地只考虑二分类非1就0的损失,而是具体考虑每个样本标记的损失。这种方法叫做softmax回归,即logistic回归的多分类版本。
ovr
对于二分类问题,我们只需要一个分类器即可,但是对于多分类问题,我们需要多个分类器,其中hc 表示一个二分类模型,其判断样本 x属于第c 类的概率值。
对于 hc 的训练,我们挑选出带有标记为 c的样本标记为1,将剩下的不带标记 c
的样本标记为0。针对每个分类器,都按上述步骤构造训练集进行训练。
针对每一个测试样本,我们需要找到这k个分类函数输出值最大的那一个,即为测试样本的标记
softmax
该模型将逻辑回归推广到分类问题,其中类标签y可以采用两个以上的可能值。这对于诸如MNIST数字分类之类的问题将是有用的,其中目标是区分10个不同的数字。Softmax回归是一种监督学习算法,但我们稍后会将其与我们的深度学习/无监督特征学习方法结合使用。
在softmax回归设置中,我们对多类分类感兴趣(而不是仅对二元分类),所以y
可以取k
个不同的取值。因此,在我们的训练集
给定测试输入x,我们希望我们的模型估计每个类别的概率。因此,我们的模型将输出k维向量(其元素总和为1),给出我们的k个类别的估计概率。具体地说,我们的假设采用以下形式:
其中, 是模型的参数,而是归一化项。
为方便起见,我们还会向量法来表示模型的所有参数。当你实现softmax回归时,将θ表示为通过堆叠 [图片上传失败...(image-3da094-1584342852734)]
成行获得的k-by(n + 1)矩阵通常很方便,这样
损失函数
求导后,可得
更新参数
ovr vs. softmax
假设您正在处理音乐分类应用程序,并且您正在尝试识别k种类型的音乐。您应该使用softmax分类器,还是应该使用逻辑回归构建k个单独的二元分类器?这取决于这四个类是否相互排斥。例如,如果您的四个类是经典,乡村,摇滚和爵士乐,那么假设您的每个训练样例都标有这四个类别标签中的一个,那么您应该构建一个k = 4的softmax分类器。(如果有'还有一些不属于上述四个类的例子,那么你可以在softmax回归中设置k = 5,并且还有第五个,“以上都不是”类。)但是,如果你的类别是has_vocals,舞蹈,配乐,流行音乐,那么这些课程并不相互排斥;例如,可以有一段来自音轨的流行音乐,另外还有人声。在这种情况下,构建4个二元逻辑回归分类器更合适。这样,对于每个新的音乐作品,您的算法可以单独决定它是否属于四个类别中的每一个。现在,考虑一个计算机视觉示例,您尝试将图像分为三个不同的类。(i)假设您的课程是indoor_scene,outdoor_urban_scene和outdoor_wilderness_scene。你会使用sofmax回归还是三个逻辑回归分类器?(ii)现在假设你的课程是indoor_scene,black_and_white_image和image_has_people。您会使用softmax回归或多重逻辑回归分类器吗?在第一种情况下,类是互斥的,因此softmax回归分类器是合适的。在第二种情况下,构建三个单独的逻辑回归分类器更为合适。
总结就是,如果类别之间是互斥的,那么用softmax会比较合适,如果类别之间不是互斥的,用ovr比较合适。
注:源自:逻辑回归(百度百科)
多分类部分来源于:https://zhuanlan.zhihu.com/p/45230536
Softmax函数详解与推导
原理推导参考:周志华的《机器学习》
网友评论