逻辑回归的原理
逻辑回归由于历史原因称作“回归”,但它其实主要用于解决分类问题。逻辑回归有“二分类”问题和“多分类”问题之分,以下以“二分类”问题为例说明逻辑回归的原理。
在“二分类”问题中,y通常只有两个取值:0和1. 通常,0代表反例,1代表正例。一般情况下,取 0.5 为阙值。若模型预测值 h θ ( x ) ≥ 0.5 h_\theta(x)\geq0.5 hθ(x)≥0.5 ,则最终预测为 “1” 类;若模型预测值 h θ ( x ) < 0.5 h_\theta(x)<0.5 hθ(x)<0.5 ,则最终预测为 “0” 类.
逻辑回归的基本模型 如下所示:
h θ ( x ) = g ( θ T x ) h_\theta(x)=g(\theta^Tx) hθ(x)=g(θTx)
其中 g ( z ) g(z) g(z)为 sigmoid 函数,具体形式如下:
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+e−z1
最终的形式为
h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+e−θTx1
可以看到逻辑回归的基本模型是在线性回归模型的基础上外套了一个 sigmoid 函数。
为什么要这样做呢?因为逻辑回归要处理的数据的 y(被解释变量)只有两个取值:0和1 ,在线性回归模型外外面套了一个 sigmoid 函数可以保证逻辑回归的预测值 h θ ( x ) h_\theta(x) hθ(x)取值在0,1之间,即 0 ≤ h θ ( x ) ≤ 1 0\leq h_\theta(x)\leq1 0≤hθ(x)≤1.
对于 h θ ( x ) h_\theta(x) hθ(x)的值的可以理解为:对于输入的已知条件(自变量x),事件发生(y=1)的估计概率,即 h θ ( x ) = P ( y = 1 ∣ x ; θ ) h_\theta(x)=P(y=1|x;\theta) hθ(x)=P(y=1∣x;θ).
决策边界(Decision Boundary): 将“0”类与“1”类分开的界线,是假设模型(hypothesis)的属性,决定于模型的参数 θ \theta θ,而非数据集。
逻辑回归的损失函数
在线性回归模型中,使用的代价函数为 h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+e−θTx1,线性回归的模型预测值为 h θ ( x ) = θ T x h_\theta(x)=\theta^Tx hθ(x)=θTx. 在逻辑回归中,如果使用相同的代价函数,只是把 h θ ( x ) = θ T x h_\theta(x)=\theta^Tx hθ(x)=θTx ,换成 h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+e−θTx1 会使得代价函数 h θ ( x ) = 1 1 + e − θ T x h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+e−θTx1 变成一个非凸函数,那么在使用梯度下降法对模型进行优化时,就会出现只能得到许多个局部最优解的问题,这对我们寻找全局最优解不利。为了解决这个问题,我们需要寻找新的代价函数,使得新的代价函数是凸函数,这样在梯度优化中才能方便地得到全局最优解。
利用极大似然法推导得到了逻辑回归的代价函数为
c o s t ( h θ ( x ) , y ) = { − log ( h θ ( x ) ) , if y=1 − log ( 1 − h θ ( x ) ) , if y=0 cost(h_\theta(x),y)=\begin{cases} -\log(h_\theta(x)), & \text {if y=1} \\ -\log(1-h_\theta(x)), & \text{if y=0} \end{cases} cost(hθ(x),y)={
−log(hθ(x)),−log(1−hθ(x)),