归纳总结:LR逻辑回归

概括

逻辑回归假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度下降来求解参数,从而达到将数据二分类的目标。

一、逻辑回归于线性回归的关系

逻辑回归(Logistic Regression)与线性回归(Linear Regression)简称都为LR,都是一种广义线性模型。逻辑回归假设因变量y服从伯努利分布,线性回归假设因变量y服从高斯分布。逻辑回归以线性回归为理论支持,通过Sigmoid函数引入非线性因素,从而处理二分类问题。

二、假设

假设1:假设数据服从伯努利分布。

伯努利分布:一个离散型概率分布,试验成功取值为1,试验失败取值为0,成功概率记为p,则失败为1-p
f X ( x ) = p x ( 1 − p ) 1 − x = { p , if  x = 1 1 − p , if  x = 0 f_X(x)=p^x(1-p)^{1-x}= \begin{cases} p, & \text {if $x=1$}\\ 1-p, & \text{if $x=0$}\end{cases} fX(x)=px(1p)1x={p,1p,if x=1if x=0



伯努利分布应用在逻辑回归的形式:正类的概率为p,负类的概率为q
p = h θ ( x ; θ ) q = 1 − h θ ( x ; θ ) p=h_\theta(x;\theta) \\ q=1-h_\theta(x;\theta) p=hθ(x;θ)q=1hθ(x;θ)

假设2:假设正类的概率由sigmoid函数计算,即:

p = 1 1 + e − θ T x p= \frac{1}{1+e^{-\theta^Tx}} p=1+eθTx1
预测样本为正类的概率:
p ( y = 1 ∣ x ; θ ) = h θ ( x ; θ ) = 1 1 + e − θ T x p(y=1|x;\theta)=h_\theta(x;\theta)= \frac{1}{1+e^{-\theta^Tx}} p(y=1x;θ)=hθ(x;θ)=1+eθTx1
预测为负类的概率:
p ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ; θ ) = 1 1 + e θ T x p(y=0|x;\theta)=1-h_\theta(x;\theta)= \frac{1}{1+e^{\theta^Tx}} p(y=0x;θ)=1hθ(x;θ)=1+eθTx1
组合起来:
y ^ = p = p ( y = 1 ∣ x ; θ ) y p ( y = 0 ∣ x ; θ ) 1 − y \hat{y}=p=p(y=1|x;\theta)^yp(y=0|x;\theta)^{1-y} y^=p=p(y=1x;θ)yp(y=0x;θ)1y
此时, y ^ \hat{y} y^是个概率

三:损失函数

逻辑回归的损失函数是它的极大似然函数。
极大似然估计: 利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值。(模型已定,参数未知)
模型为:
y ^ = ( 1 1 + e − θ T x ) y ( 1 1 + e θ T x ) 1 − y \hat{y}= \left(\frac{1}{1+e^{-\theta^Tx}} \right) ^y \left(\frac{1}{1+e^{\theta^Tx}} \right)^{1-y} y^=(1+eθTx1)y(1+eθTx1)1y
参数为里面的 θ \theta θ。样本为 x , y x,y x,y,其中 x x x为特征, y y y为标签。我们的已知信息就是在特征取这些值的情况下,它应该属于y类(正或负)。

反推最具有可能(最大概率)导致这些样本结果出现的参数,举个例子,我们已经知道了一个样本点,是正类,那么我们把它丢入这个模型后,它预测的结果一定得是正类啊,正类才是正确的,才是我们所期望的,我们要尽可能的让它最大,这样才符合我们的真实标签。反过来一样的,如果你丢的是负类,那这个式子计算的就是负类的概率,同样我们要让它最大,所以此时不用区分正负类。

对于整个训练集,我们期望所有样本的概率都达到最大,也就是我们的目标函数,本身是个联合概率,但是假设每个样本独立,那所有样本的概率就可以写成:
l o s s f u n c t i o n = ∏ i = 1 N ( 1 1 + e − θ T x i ) y i ( 1 1 + e θ T x i ) 1 − y i lossfunction= \quad \prod_{i=1}^N\left(\frac{1}{1+e^{-\theta^Tx_i}} \right) ^{y_i} \left(\frac{1}{1+e^{\theta^Tx_i}} \right)^{1-y_i}\quad lossfunction=i=1N(1+eθTxi1)yi(1+eθTxi1)1yi
其实这个是目标函数,真正的损失函数为真实值和预测值的误差。
由于目标为最大化上面的目标函数,因此进行求导。为了方便计算,进行化简,加 log ⁡ \log log取对数。
log ⁡ ( l o s s f u n c t i o n ) = ∑ i = 1 n ( y i ( 1 1 + e − θ T x i ) y i + ( 1 − y i ) ( 1 1 + e θ T x i ) 1 − y i ) \log(lossfunction)= \quad\sum_{i=1}^n\left( y_i\left(\frac{1}{1+e^{-\theta^Tx_i}} \right) ^{y_i} +(1-y_i)\left(\frac{1}{1+e^{\theta^Tx_i}} \right)^{1-y_i}\right)\quad log(lossfunction)=i=1n(yi(1+eθTxi1)yi+(1yi)(1+eθTxi1)1yi)
由于一般都要求最小损失函数,在前面加个负号
− log ⁡ ( l o s s f u n c t i o n ) = − ∑ i = 1 n ( y i ( 1 1 + e − θ T x i ) y i + ( 1 − y i ) ( 1 1 + e θ T x i ) 1 − y i ) -\log(lossfunction)= \quad-\sum_{i=1}^n\left( y_i\left(\frac{1}{1+e^{-\theta^Tx_i}} \right) ^{y_i} +(1-y_i)\left(\frac{1}{1+e^{\theta^Tx_i}} \right)^{1-y_i}\right)\quad log(lossfunction)=i=1n(yi(1+eθTxi1)yi+(1yi)(1+eθTxi1)1yi)
化简后:
l o s s = ∑ ( ( y i θ T x i ) − log ⁡ ( 1 + e θ T x i ) ) loss = \sum \left((y_i\theta^Tx_i)-\log\left( 1+e^{\theta^T x_i} \right) \right) loss=((yiθTxi)log(1+eθTxi))

四:求解方法

一般用梯度下降法。梯度下降又分为:随机梯度下降,批梯度下降,small batch梯度下降。

  • 批梯度下降会获得全局最优解,缺点是在更新每个参数的时候需要遍历所有的数据,计算量会很大,并且会有很多的冗余计算,导致的结果是当数据量大的时候,每个参数的更新都会很慢。
  • 随机梯度下降是以高方差频繁更新,优点是使得sgd会跳到新的和潜在更好的局部最优解,缺点是使得收敛到局部最优解的过程更加的复杂。
  • 小批量梯度下降结合了sgd和batch gd的优点,每次更新的时候使用n个样本。减少了参数更新的次数,可以达到更加稳定收敛结果,一般在深度学习当中我们采用这种方法。

五: 逻辑回归的目的

将数据二分类

六:如何分类

设定阈值

七:LR为什么用极大似然函数作为损失函数

一般会和平方损失函数(最小二乘法)进行比较,因为线性回归用的是平方损失函数。
原因就是平方损失函数加上sigmoid函数会是一个非凸函数,不容易求解,得到的是局部解,用对数似然函数得到高阶连续可导凸函数,可以得到最优解。
其次是因为对数损失函数更新更快,只和x,y有关,和sigmoid本身梯度无关。

八:在训练过程中,如果有多个特征高度相关,或者特征重复,会造成什么样的影响?

如果在损失函数最终收敛的情况下,不会影响分类器的效果。

九:那为什么还是要在训练过程中去掉高度相关的特征?

为了让模型的可解释性更好。
可以提高训练速度。如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。其次是特征多了,本身就会增大训练的时间。

十:逻辑回归优缺点总结

优点:

  • 形式简单,可解释性强。从特征的权重可以看到不同特征对结果的影响。
  • 模型效果好,往往作为baseline。特征工程可并行开发,加快开发速度。
  • 训练速度快。分类时,计算量仅仅只和特征数目相关。
  • 内存资源占用小,因为只需要存储各个维度的特征值。
  • 方便输出结果调整。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率分数进行cut off,也就是划分阈值(大于某个阈值的是一类,小于某个阈值的是一类)。
    缺点:
  • 准确率不高。因为形式简单(类似于线性模型),很难拟合数据的真是分布。
  • 无法处理数据不平衡问题。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率分数进行cut off,也就是划分阈值(大于某个阈值的是一类,小于某个阈值的是一类)。
  • 处理非线性数据麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据(二分类数据)。
  • 逻辑回归本身无法筛选特征。如果要筛选特征,会用GBDT来筛选特征,再加上逻辑回归。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值