概括
逻辑回归假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度下降来求解参数,从而达到将数据二分类的目标。
一、逻辑回归于线性回归的关系
逻辑回归(Logistic Regression)与线性回归(Linear Regression)简称都为LR,都是一种广义线性模型。逻辑回归假设因变量y
服从伯努利分布,线性回归假设因变量y
服从高斯分布。逻辑回归以线性回归为理论支持,通过Sigmoid函数引入非线性因素,从而处理二分类问题。
二、假设
假设1:假设数据服从伯努利分布。
伯努利分布:一个离散型概率分布,试验成功取值为1,试验失败取值为0,成功概率记为p
,则失败为1-p
伯努利分布应用在逻辑回归的形式:正类的概率为p
,负类的概率为q
假设2:假设正类的概率由sigmoid函数计算,即:
预测样本为正类的概率:
预测为负类的概率:
组合起来:
此时,是个概率
三:损失函数
逻辑回归的损失函数是它的极大似然函数。
极大似然估计: 利用已知的样本结果信息,反推最具有可能(最大概率)导致这些样本结果出现的模型参数值。(模型已定,参数未知)
模型为:
参数为里面的 。样本为,其中为特征,为标签。我们的已知信息就是在特征取这些值的情况下,它应该属于y类(正或负)。
反推最具有可能(最大概率)导致这些样本结果出现的参数,举个例子,我们已经知道了一个样本点,是正类,那么我们把它丢入这个模型后,它预测的结果一定得是正类啊,正类才是正确的,才是我们所期望的,我们要尽可能的让它最大,这样才符合我们的真实标签。反过来一样的,如果你丢的是负类,那这个式子计算的就是负类的概率,同样我们要让它最大,所以此时不用区分正负类。
对于整个训练集,我们期望所有样本的概率都达到最大,也就是我们的目标函数,本身是个联合概率,但是假设每个样本独立,那所有样本的概率就可以写成:
其实这个是目标函数,真正的损失函数为真实值和预测值的误差。
由于目标为最大化上面的目标函数,因此进行求导。为了方便计算,进行化简,加取对数。
由于一般都要求最小损失函数,在前面加个负号
化简后:
四:求解方法
一般用梯度下降法。梯度下降又分为:随机梯度下降,批梯度下降,small batch梯度下降。
- 批梯度下降会获得全局最优解,缺点是在更新每个参数的时候需要遍历所有的数据,计算量会很大,并且会有很多的冗余计算,导致的结果是当数据量大的时候,每个参数的更新都会很慢。
- 随机梯度下降是以高方差频繁更新,优点是使得sgd会跳到新的和潜在更好的局部最优解,缺点是使得收敛到局部最优解的过程更加的复杂。
- 小批量梯度下降结合了sgd和batch gd的优点,每次更新的时候使用n个样本。减少了参数更新的次数,可以达到更加稳定收敛结果,一般在深度学习当中我们采用这种方法。
五: 逻辑回归的目的
将数据二分类
六:如何分类
设定阈值
七:LR为什么用极大似然函数作为损失函数
一般会和平方损失函数(最小二乘法)进行比较,因为线性回归用的是平方损失函数。
原因就是平方损失函数加上sigmoid函数会是一个非凸函数,不容易求解,得到的是局部解,用对数似然函数得到高阶连续可导凸函数,可以得到最优解。
其次是因为对数损失函数更新更快,只和x,y有关,和sigmoid本身梯度无关。
八:在训练过程中,如果有多个特征高度相关,或者特征重复,会造成什么样的影响?
如果在损失函数最终收敛的情况下,不会影响分类器的效果。
九:那为什么还是要在训练过程中去掉高度相关的特征?
为了让模型的可解释性更好。
可以提高训练速度。如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。其次是特征多了,本身就会增大训练的时间。
十:逻辑回归优缺点总结
优点:
- 形式简单,可解释性强。从特征的权重可以看到不同特征对结果的影响。
- 模型效果好,往往作为baseline。特征工程可并行开发,加快开发速度。
- 训练速度快。分类时,计算量仅仅只和特征数目相关。
- 内存资源占用小,因为只需要存储各个维度的特征值。
- 方便输出结果调整。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率分数进行cut off,也就是划分阈值(大于某个阈值的是一类,小于某个阈值的是一类)。
缺点: - 准确率不高。因为形式简单(类似于线性模型),很难拟合数据的真是分布。
- 无法处理数据不平衡问题。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率分数进行cut off,也就是划分阈值(大于某个阈值的是一类,小于某个阈值的是一类)。
- 处理非线性数据麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据(二分类数据)。
- 逻辑回归本身无法筛选特征。如果要筛选特征,会用GBDT来筛选特征,再加上逻辑回归。