逻辑回归详解 从零开始 从理论到实践
一、逻辑回归的理解
前面介绍了线性回归及其衍生回归模型,主要是解决回归问题,即预测的结果是连续的,比如数值。然而有时候,机器学习需要处理样本中的非连续的数据,比如已知某西瓜的质量有“好”和“坏”这两个种类,要对某样本西瓜质量进行预测,这种情况则称为分类问题。
这时就引申出了逻辑回归,逻辑回归(Logistic Regression)是由统计学家大卫·考克斯(David Cox)于1958年提出的。它是一个二元逻辑模型,用于估计一个或多个预测变量(特征)的二元响应概率,用于估计某种事情的可能性。
分类问题要预测的不再是数值,而是两个或者两个以上的类别,即机器学习算法所要完成的是预测输入属于哪个类别。
分类问题的分类 - 二分类(Binary Classification)与多分类(Multi-class Classification)的选择
如果待预测的类别选择只有两个,通常称之为二元分类问题,在机器学习中较多使用 Logistic 函数来解决。
如果待预测的类别选择有两个以上,则称之为多分类问题,在及其学习中较多使用 Softmax 函数来解决。
逻辑回归与线性回归既有非常大的不同:
- 前者为解决分类问题,后者为解决回归问题
也有非常密切的联系:
- 逻辑回归与多元线性回归有很多相同之处,但最大的区别是它们的因变量不同,正因如此,这两种回归同属于一个家族,即广义线性模型(Generalized Linear Model)。
1.1、字面含义
“逻辑回归”由“逻辑”和“回归”两部分组成,它的名字对于初学者来说不太友好。
“逻辑” 为英文单词“Logistic”的音译+简写,或完整叫“逻辑斯蒂”,但还有一种比较高级的叫法为“对数几率”或简称“对数”,即“对数回归”,从数学的角度看,这种叫法最为准确,因为中文“逻辑”与logistic和logit的含义相去甚远。
除此之外,“逻辑”替代了“线性回归”中的“线性”,却完全套用了“线性模型”的思路,即在广义线性模型的基础上衍生而来,这种衍生的模型叫做“逻辑模型”(机器学习中的模型也等同于数学中的函数,还有一种普遍叫法为Logistic函数)。
“回归” - Regression 的含义本来等同于“线性回归”中的“回归”,在加入前面“逻辑”的条件后,就表示为“分类”算法。
1.2、引申
1.2.1、阶跃函数的引入
分类问题的预测结果是离散的,对于二分类问题,我们需要一个函数模型,在变量取任意值的情况下,只会得到两个结果值。在线性回归中,自变量与因变量是一对一或者多对一(一个x对应一个y,或者多个x对应一个y)的情况,显然难以用直线拟合分类问题。
这里引入阶跃函数 - Step Function(或Heaviside Function),它的图像如下:

阶跃函数是一种特殊的连续时间函数,是一个从0跳变到1的过程,从图中可以看出:
当 x < 0 x\lt 0 x<0, y = 0 y=0 y=0;当 x > 0 x\gt 0 x>0, y = 1 y=1 y=1;当 x = 0 x=0 x=0, y y y 为0.5。
阶跃函数在各个领域如自然生态、计算、工程等等拥有非常重要的作用,然而却无法直接用于机器学习:
- 可导的函数图像是“光滑”的曲线(直线也是特殊的曲线),而阶跃函数线条非常硬朗,包含两个垂直角位置,明显不可导。
- 可导的函数一定连续,而实际上,阶跃函数准确图像为两条直线加一个点:当 x < 0 x<0 x<0 时,图像始终为某个值,当 x > 0 x>0 x>0 时,图像又始终为某个值,当 x = 0 x=0 x=0 时,函数的值只能为一个确定的值,阶跃函数包含不连续的点,因此也称为奇异函数,所以图像是不连续的,即不可导。
函数不可导,也就无法运用到机器学习中,去搭配梯度下降等优化算法,使得损失函数的偏差最小。
1.2.2、可导的阶跃函数 - Logistic函数
理解:
原生的阶跃函数不可导,线性函数可导不是阶跃函数不能直接用作分类,如何发明一种函数能满足这两种要求呢?
Logistic函数就正是这种即是可导函数,又是阶跃函数。
Logistic函数使线性模型能够预测离散的分类问题。它由统计学家皮埃尔·弗朗索瓦·韦吕勒于19世纪发明的,它在不同场景中拥有不同的名字:
在逻辑回归算法中,它被称为Logistic函数(曲线)。
在神经网络算法中,它被称为Sigmoid函数。Sigmoid函数即形似S的函数,对率函数是Sigmoid函数最重要的代表。
数学表达式:
L o g i s t i c ( z ) = 1 1 + e − z Logistic(z)=\frac{1}{1+e^{-z}} Logistic(z)=1+e−z1
- e e e 为自然常数,即一个固定的“常量”。
- e − z e^{-z} e−z是以 e e e 为底、 z z z 为变量的指数函数,也可写成 e x p ( − z ) exp(-z) exp(−z)。
函数图像:

从图中可以看出,该函数将y值转化成一个接近0或1的y值,函数的斜率随着靠近和远离0轴进行放大和缩小,函数“光滑”可导,并且其输出值在y=0附近变化很陡,以0为分界点, z z z 越小于0, y y y 越接近于0; z z z 越大于0, y y y 越接近于1。
1.2.3、Logistic回归
理解:
Logistic回归即:将线性模型的输出套在Logistic函数内部,于是可以把线性模型的预测结果映射成分类问题所需的预测结果,并且线性模型的输出预测值越小于0或者越大于0越好,即往两极靠效果越好。
表达式:
线性模型:
z = w T x i + b = β T X z=w^Tx_i+b=\beta^TX z=wTxi+b=βTX
logistic函数:
L o g i s t i c ( z ) = 1 1 + e − z Logistic(z)=\frac{1}{1+e^{-z}} Logistic(z)=1+e−z1
带入到 logistic函数 中去:
H ( x ) = 1 1 + e − ( w T x i + b ) = 1 1 + e − ( β T X ) H(x)=\frac{1}{1+e^{-(w^Tx_i+b)}}=\frac{1}{1+e^{-(\beta^TX)}} H(x)=


1万+

被折叠的 条评论
为什么被折叠?



