这篇文章将详细地讲解逻辑回归的推导过程。
原理:
逻辑回归处理的是分类问题,具体来说,是处理二分类问题。为了实现逻辑回归分类器,我们可以在线性回归的基础上(即每个特征乘以一个回归系数后相加),添加一个sigmoid函数,进而得到一个范围在0-1之间的数值。任何大于0.5的数据会被分入1类,小于0.5即被分入0类。至于为什么要用sigmoid函数,简单来说,是为了将标签归到[0,1]的范围内;深层原因,sigmoid函数的使用是由指数分布族决定的,具体内容会在下一篇博客中做详细讲解。
详细推导:
根据以上描述,我们可以得到预测值
hθ(x)
:
hθ(x)=g(θTx)=11+e−θTx
其中 g(z)=11+e−z 即为sigmoid函数。
以上二分类问题满足伯努利分布(Bernoulli distribution),即:
p(y=1|x;θ)=hθ(x)p(y=0|x;θ)=1−hθ(x)
因此:
p(y|x;θ)=hθ(x)y(1−hθ(x))1−y
假设样本之间是相互独立的,即似然函数如下:
L(θ)===p(Y|X;θ)∏i=1mp(y(i)|x(i);θ)(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
对数似然函数:
l(θ)===logL(θ)∑i=1mlog(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)∑i=1m(y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i))))
为了方便理解,我们先对每一个样本进行分析,首先,对参数求导:
∂l(θ)∂θj===y(i)hθ(x(i))∗∂hθ(x(i))∂θj+1−y(i)1−hθ(x(i))∗(−∂hθ(x(i))∂θj)y(i)(1−hθ(x(i)))−(1−y(i))hθ(x(i))hθ(x(i))(1−hθ(x(i)))∗∂hθ(x(i))∂θjy(i)−hθ(x(i))hθ(x(i))(1−hθ(x(i)))∗∂hθ(x(i))∂θj
其中 hθ(x)=11+e−θTx ,为了简化显示,这里省略x的上标i,所以:
∂hθ(x)∂θj=====−(1+e−θTx)−2∗e−θTx∗(−x)e−θTx(1+e−θTx)2∗x1+e−θTx−1(1+e−θTx)2∗x(1(1+e−θTx)−1(1+e−θTx)2)∗xhθ(x)∗(1−hθ(x))∗x
因此:
∂l(θ)∂θj===y(i)−hθ(x(i))hθ(x(i))(1−hθ(x(i)))∗∂hθ(x(i))∂θjy(i)−hθ(x(i))hθ(x(i))(1−hθ(x(i)))∗hθ(x(i))∗(1−hθ(x(i)))∗x(i)(y(i)−hθ(x(i)))∗x(i)
我们是要求使得似然函数最大时的 θ ,所以使用梯度上升法:
θj=θj+(y(i)−hθ(x(i)))∗x(i) (for every j)
得到优化后的 θ ,代入 hθ(x)=11+e−θTx ,以0.5为阈值进行分类。