逻辑回归(Logistic Regression)

时间:2021-10-21 23:40:15

1. 前言

今天我们介绍机器学习里面大名鼎鼎的逻辑回归。不要看他的名字里面有“回归”,但是它其实是个分类算法。它取名逻辑回归主要是因为是从线性回归转变而来的。

2.逻辑回归原理

2.1 逻辑回归的由来

不知道读者还记不记得在线性回归中有一节广义线性回归介绍了在\(Y=Xθ\)的基础上对\(Y\)进行函数变换为\(g(Y)=Xθ\)。而在逻辑回归中,这个\(g()\)就是大名鼎鼎的\(Sigmoid(x)=\frac{1}{1+e^{-x}}\)函数。Sigmoid函数的图像如下。Sigmoid函数会把自变量\(x\in\{-\infty,+\infty\}\)映射到\(y\in\{-1,+1\}\)上。

逻辑回归(Logistic Regression)

Sigmoid函数处处可导,导数很简洁\(S^{\prime}(x)=S(x)(1-S(x))\),它的导数图像如下。从图中可以看出导数范围是\(S^\prime\in\{0,0.25\}\),顺便说下,在深度学习中,如果激活函数是Sigmoid的话,会出现梯度消失问题。

逻辑回归(Logistic Regression)

2.2 逻辑回归的模型

线性回归中的模型是:

\[ Z_{\theta}={X}\theta \]

Sigmoid的函数是:
\[ S(z)=\frac{1}{1+e^{-z}} \]

最后套上Sigmoid函数合并出来的结果:

\[ h_{\theta}(X) = \frac{1}{1+e^{-X\theta}} \]

2.3 逻辑回归的损失函数

逻辑回归使用极大似然法来推导出损失函数。

我们知道,逻辑回归的定义,假设我们的样本输出是0或者1两类。那么我们有:

\[ P(y=1|x,\theta ) = h_{\theta}(x) \]

\[ P(y=0|x,\theta ) = 1- h_{\theta}(x) \]
把两种情况和一起就是如下公式:

\[ P(y|x,\theta ) = h_{\theta}(x)^y(1-h_{\theta}(x))^{1-y} \]
得到了\(y\)的概率分布函数表达式,我们就可以用似然函数最大化来求解我们需要的模型系数\(\theta\)。最大似然函数\(L(\theta)\)

\[ L(\theta) = \prod\limits_{i=1}^{m}(h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}} \]

损失函数就是对数似然函数的负值

\[ J(\theta) = -lnL(\theta) = -\sum\limits_{i=1}^{m}(y^{(i)}log(h_{\theta}(x^{(i)}))+ (1-y^{(i)})log(1-h_{\theta}(x^{(i)}))) \]

2.4 逻辑回归的损失函数的优化方法

对于逻辑回归的损失函数极小化,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,牛顿法等。

2.5 逻辑回归的正则化

逻辑回归也会面临过拟合问题,所以我们也要考虑正则化。常见的有L1正则化和L2正则化。

L1正则化形式

\[ J(\theta) = -lnL(\theta) + \alpha|\theta| \]
L2正则化形式

\[ J(\theta) = -lnL(\theta) + \frac{1}{2}\alpha|\theta|^2 \]

3. 总结

逻辑回归假设数据服从伯努利分布,在线性回归的基础上,套了一个二分类的Sigmoid函数,使用极大似然法来推导出损失函数,用梯度下降法优化损失函数的一个判别式的分类算法。逻辑回归的优缺点有一下几点:

3.1 优点

  1. 实现简单,广泛的应用于工业问题上;
  2. 训练速度较快。分类速度很快
  3. 内存占用少;
  4. 便利的观测样本概率分数,可解释性强;

3.2 缺点

  1. 当特征空间很大时,逻辑回归的性能不是很好;
  2. 一般准确度不太高
  3. 很难处理数据不平衡的问题