逻辑回归本质是分类问题,而且是二分类问题,不属于回归,为何把逻辑回归放到回归系统博客中呢?我们可以这样理解,逻辑回归就是用回归的办法来做分类。它是在线性回归的基础上,通过Sigmoid函数进行了非线性转换,从而具有更强的拟合能力。
Sigmoid函数
Sigmoid函数具体的计算公式如下:
g(z)=1+e−z1
当x为0时,Sigmoid函数值为0.5。随着x的增大,对应的Sigmoid值将逼近于1;而随着x的减小,Sigmoid值将逼近于0。两种坐标尺度下的Sigmoid函数图。上图的横坐标为-5到5,这时的曲线变化较为平滑;下图横坐标的尺度足够大,可以看到,在x = 0点处Sigmoid函数看起来很像阶跃函数,如果横坐标刻度足够大(上图中的下图),Sigmoid函数看起来很像一个阶跃函数。
Logistic回归分类器
为了实现Logistic回归分类器,我们可以在每个特征上都乘以一个回归系数,然后把所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任何大于0.5的数据被分入1类,小于0.5即被归入0类。所以,Logistic回归也可以被看成是一种概率估计。
p=hθ(x)=g(θTx)=1+e−θTx1
所以说,Logistic回归分类器可以看成线性回归与sigmoid的混合函数,是一个二分类的模型(这里是取的0和1,有的算法是+1和-1)
y={01
y^={0,P(y^=1)>p1,P(y^=0)>p
在用于分类时,实际上是找一个阈值,大于阈值的属于1类别,小于的属于0类别。(阈值是可根据具体情况进行相应变动的)
公式推导
|
y=1 |
y=0 |
p(y|x) |
θ |
1−θ |
我们假设
P(y=1│x;θ)=hθ(x)P(y=0│x;θ)=1−hθ(x)
把两个式子结合
P(y│x;θ)=(hθ(x))y(1−hθ(x))1−y
这是因为,我们期望的是,对于单个样本
- 当y=1时,我们期望
hθ(x) 最大
- 当y=0时,我们期望
1−hθ(x) 最大
所以综合起来:我们期望
P(y│x;θ)=(hθ(x))y(1−hθ(x))1−y 最大
我们可以对所有样本取似然函数
L(θ)=p(y
∣X;θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏m(hθ(x(i)))y(i)(1−hθ(x(i)))(1−y(i))
累乘不好求,我们可以求其对数似然函数
l(θ)=logL(θ)=i=1∑m(y(i)loghθ(x(i)))+(1−y(i))log(1−hθ(x(i)))
最值的问题,我们可以求导。
∂θj∂l(θ)=i=1∑m(hθ(x(i))y(i)−1−hθ(x(i))1−y(i))⋅∂θj∂hθ(x(i))=i=1∑m(g(θTx(i))y(i)−1−g(θTx(i))1−y(i))⋅∂θj∂g(θTx(i))=i=1∑m(g(θTx(i))y(i)−1−g(θTx(i))1−y(i))⋅g(θTx(i))(1−g(θTx(i)))⋅∂θj∂(θTx(i))=i=1∑m(y(i)(1−g(θTx(i)))−(1−y(i))g(θTx(i)))⋅Xj(i)=i=1∑m(y(i)−g(θTx(i)))⋅Xj(i)
不难发现:和梯度下降的公式极其类似
i=1∑m(hθ(x(i))−y(i))xj(i)
这里需要补充一下,在上面求导的过程中,第二行到第三行省略了Sigmoid求导的过程,具体如下:
g′(z)=(1+e−z1)′=(1+e−z)2e−z=1+e−z1⋅1+e−ze−z=1+e−z1⋅(1−1+e−z1)=g(z)⋅(1−g(z))
接着上面对数似然的求导结果。我们期望的是极大似然,可以进行一下转换,类似于梯度下降来求
θ
θj=θj+αi=1∑m(y(i)−hθ(x(i)))⋅xj(i)
上式为BGD
θj=θj+α(y(i)−hθ(x(i)))xj(i)
上式为SGD
我们要让对数似然函数最大,也就是他的相反数
−l(θ) 最小。而
−l(θ) 最小化,则可以看成损失函数,求其最小化:
loss=−l(θ)
先看一下极大似然估计
L(θ)=i=1∏mp(y(i)∣x(i);θ)=i=1∏mpiy(i)(1−pi)1−y(i)
l(θ)=lnL(θ)=i=1∑mln(piy(i)(1−pi)1−y(i))
注意,这里
pi=hθ(x(i))=1+e−θTx(i)1
所以,我们可以得到损失函数:
loss=−l(θ)=−i=1∑m(y(i)ln(pi)+(1−y(i))ln(1−pi))=i=1∑m(−y(i)ln(hθ(x(i)))−(1−y(i))ln(1−hθ(x(i))))
这个结果就是交叉熵损失函数。
总结
就一句话:通过以上过程,会发现逻辑回归的求解,跟线性回归的求解基本相同。