概括

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

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

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

二、假设

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

伯努利分布:一个离散型概率分布,试验成功取值为1,试验失败取值为0,成功概率记为p,则失败为1-p逻辑回归模型的亚组分析R语言 逻辑回归 lr_逻辑回归


伯努利分布应用在逻辑回归的形式:正类的概率为p,负类的概率为q逻辑回归模型的亚组分析R语言 逻辑回归 lr_逻辑回归模型的亚组分析R语言_02

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

逻辑回归模型的亚组分析R语言 逻辑回归 lr_线性回归_03
预测样本为正类的概率:
逻辑回归模型的亚组分析R语言 逻辑回归 lr_算法_04
预测为负类的概率:
逻辑回归模型的亚组分析R语言 逻辑回归 lr_机器学习_05
组合起来:
逻辑回归模型的亚组分析R语言 逻辑回归 lr_算法_06
此时,逻辑回归模型的亚组分析R语言 逻辑回归 lr_机器学习_07是个概率

三:损失函数

逻辑回归的损失函数是它的极大似然函数。
极大似然估计: 利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值。(模型已定,参数未知)
模型为:
逻辑回归模型的亚组分析R语言 逻辑回归 lr_线性回归_08
参数为里面的 逻辑回归模型的亚组分析R语言 逻辑回归 lr_算法_09。样本为逻辑回归模型的亚组分析R语言 逻辑回归 lr_逻辑回归_10,其中逻辑回归模型的亚组分析R语言 逻辑回归 lr_算法_11为特征,逻辑回归模型的亚组分析R语言 逻辑回归 lr_逻辑回归模型的亚组分析R语言_12为标签。我们的已知信息就是在特征取这些值的情况下,它应该属于y类(正或负)。

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

对于整个训练集,我们期望所有样本的概率都达到最大,也就是我们的目标函数,本身是个联合概率,但是假设每个样本独立,那所有样本的概率就可以写成:
逻辑回归模型的亚组分析R语言 逻辑回归 lr_算法_13
其实这个是目标函数,真正的损失函数为真实值和预测值的误差。
由于目标为最大化上面的目标函数,因此进行求导。为了方便计算,进行化简,加逻辑回归模型的亚组分析R语言 逻辑回归 lr_线性回归_14取对数。
逻辑回归模型的亚组分析R语言 逻辑回归 lr_逻辑回归模型的亚组分析R语言_15
由于一般都要求最小损失函数,在前面加个负号
逻辑回归模型的亚组分析R语言 逻辑回归 lr_机器学习_16
化简后:
逻辑回归模型的亚组分析R语言 逻辑回归 lr_逻辑回归模型的亚组分析R语言_17

四:求解方法

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

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

五: 逻辑回归的目的

将数据二分类

六:如何分类

设定阈值

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

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

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

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

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

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

十:逻辑回归优缺点总结

优点:

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