逻辑回归算法总结

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

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

答案是也可以,但是效果不好,见下图:
在这里插入图片描述
图显示了是否购买玩具和年龄之间的关系,可以用线性回归拟合成一条直线,将购买标注为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 ) = 1 1 + e − z h(z) = \frac{1}{1+e^{-z}} h(z)=1+ez1
其中, z = θ T x z = \theta^T x z=θTx
我们可以看到,当z大于0时,函数大于0.5;当函数等于0时,函数等于0.5;函数小于0时,函数小于0.5。如果用函数表示目标分到某一类的概率,我们可以采用以下“单位阶跃函数”来判断数据的类别:
h ( z ) = { 0 , z < 0 0.5 , z = 0 1 , z > 0 h(z) = \left\{ \begin{aligned} 0,& & z<0 \\ 0.5, & & z=0 \\ 1, & & z>0 \end{aligned} \right. h(z)=00.51z<0z=0z>0

逻辑回归损失函数

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

梯度下降

我们用梯度下降法求解
θ : = θ − α Δ θ J ( θ ) = θ + α m Δ θ l ( θ ) \theta:=\theta-\alpha\Delta_\theta J(\theta) = \theta + \frac{\alpha}{m}\Delta_\theta l(\theta) θ:=θαΔθJ(θ)=θ+mαΔθl(θ)
g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1
g ′ ( z ) = g ( z ) ( 1 − g ( z ) ) g'(z) = g(z)(1-g(z)) g(z)=g(z)(1g(z))
证明:
在这里插入图片描述
因此:
在这里插入图片描述

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值