逻辑回归和线性回归联系与区别

线性回归解决的是连续变量问题,那么在分类任务中可以用线性回归吗?例如判断是良性肿瘤还是恶性肿瘤,判断是垃圾邮件还是正常邮件,等等……

答案是也可以,但是效果不好,见下图:
逻辑回归算法总结
图显示了是否购买玩具和年龄之间的关系,可以用线性回归拟合成一条直线,将购买标注为1,不购买标注为0,拟合后取当0.5值为阈值来划分类别。
可以看到,在途中,年龄的区分点约为19岁。
但当数据点不平衡时,很容易影响到阈值,见以下图:
逻辑回归算法总结
可以看到,0值样本的年龄段往高年龄端偏移后,真实的阈值依然是19岁左右,但拟合出来的曲线的阈值往后边偏移了。可以想想,负样本越多,年龄大的人越多,偏移越严重。

逻辑斯谛分布

介绍逻辑回归模型之前,首先看一个并不不常见的概率分布,即逻辑斯谛分布。
设X是连续随机变量, X服从逻辑斯谛分布是指X具有下列的分布函数和密度函数:
逻辑回归算法总结
曲线在中心附近增长较快,在两端增长速度较慢。形状参数γ的值越小,曲线在中心附近增长得越快。
逻辑回归算法总结

逻辑回归原理

理想的替代函数应当预测分类为0或1的概率,当为1的概率大于0.5时,判断为1,当为1的概率小于0.5时,判断为0。因概率的值域为 [0,1] ,这样的设定比线性回归合理很多。
常用的替代函数为Sigmoid函数,即:
h(z)=11+ez h(z) = \frac{1}{1+e^{-z}}
其中,z=θTxz = \theta^T x
我们可以看到,当z大于0时,函数大于0.5;当函数等于0时,函数等于0.5;函数小于0时,函数小于0.5。如果用函数表示目标分到某一类的概率,我们可以采用以下“单位阶跃函数”来判断数据的类别:
h(z)={0z<00.5z=01z>0h(z) = \left\{ \begin{aligned} 0,& & z<0 \\ 0.5, & & z=0 \\ 1, & & z>0 \end{aligned} \right.

逻辑回归损失函数

P(y=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x) P(y=1|x;\theta) = h_\theta (x) \\ P(y=0|x;\theta) = 1-h_\theta (x)
可以写作一般公式,
P(yx;θ)=h(x)y(1h(x))(1y)P(y|x;\theta)= h(x)^y (1-h(x))^{(1-y)}
极大似然函数为,L(θ)=i=1mhθ(x(i))y(i)(1hθ(x(i))(1y(i)) L(\theta) = \prod^{m}_{i=1}h_\theta (x^{(i)})^{y^{(i)}} (1-h_\theta (x^{(i)})^{(1-y^{(i)})}
对数极大似然函数为,l(θ)=logL(θ)=i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))l(\theta) = log L(\theta) = \sum^{m}_{i=1} y^{(i)}log h_\theta (x^{(i)}) + (1-y^{(i)})log (1-h_\theta (x^{(i)}))
损失函数为,
J(θ)=1ml(θ)=1mi=1my(i)hθ(x(i))+(1y(i))(1hθ(x(i))) J(\theta) = -\frac{1}{m}l(\theta) = -\frac{1}{m}\sum^{m}_{i=1} y^{(i)}h_\theta (x^{(i)}) + (1-y^{(i)})(1-h_\theta (x^{(i)})) 损失函数表示了预测值和真实值之间的差异程度,预测值和真实值越接近,则损失函数越小。
为什么不直接用和线性回归一样的平方损失函数?
回答:如果和线性回归一样的平方损失函数,则损失函数的形式为i=1m(y(i)11+eθTx)2\sum^m_{i=1}(y^{(i)}-\frac{1}{1+e^{-\theta^T x}})^2,此为非凸函数,求解复杂,而且很容易求得局部最优解为非全局最优解。

梯度下降

我们用梯度下降法求解
θ:=θαΔθJ(θ)=θ+αmΔθl(θ)\theta:=\theta-\alpha\Delta_\theta J(\theta) = \theta + \frac{\alpha}{m}\Delta_\theta l(\theta)
g(z)=11+ezg(z) = \frac{1}{1+e^{-z}}
g(z)=g(z)(1g(z))g'(z) = g(z)(1-g(z))
证明:
逻辑回归算法总结
因此:
逻辑回归算法总结

相关文章: