逻辑回归又称LR,是一种广义的线性回归分析模型,它是分类中极为常用的手段,因此,掌握其内在原理是非常必要的。什么是逻辑回归逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,最后测试验证这个求解模型的好坏。逻辑回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)。
然而该函数不连续,我们希望有一个单调可微的函数来供我们使用,这时我们就可以使用Sigmoid函数来代替:
sigmoid函数图像如下:
使用了Sigmoid函数之后,由于其取值在[0,1]之间,我们就可以将其视为类1的后验概率估计p(y=1|x)。通俗的说,就是如果有了一个测试点x,那么就可以用Sigmoid函数算出来的结果来当做该点x属于类别1的概率大小。于是,在分类的时候,当计算的结果大于0.5时,我们则以高概率将其归为1类,否则则归为0类。
这里的i代表第i个样本,如果将sigmoid函数代入此代价函数里会发现这是目标函数是一个非凸函数,这就意味着代价函数有着许多的局部最小值,这不利于我们的求解:非凸函数与凸函数函数图像如下:
这时候我们可以使用最大似然法去计算代价函数。前面,我们提到了sigmoid函数可以视为类1的后验估计,所以我们有:其中,p(y=1|x;w)表示给定w,那么样本x为类1的概率大小。因此有:接下来使用极大似然估计来根据给定的训练集估计出参数w:
为了让训练出来的模型很好,则对于已知的样本,对于类1的样本,则以高概率偏向1(sigmoid函数值大),对于类0的样本,则以高概率偏向0(1-sigmoid函数的值大),这样则表示L(w)的值应该尽可能的大。为了简化计算,我们对上面的等式两边取一个对数:
我们现在要求的是使得j(w)取得最大值时的w。这时候我们在l(w)前面加个负号就变成取最小值,这就是我们最终的代价函数:
这里我们要明确一点,梯度的负方向就是代价函数下降最快的方向。这样我们就可以使用梯度下降求解参数w:
对于每一个参数,则有:
所以,在使用梯度下降法更新权重时,只要根据下式即可:
此式与线性回归时更新权重用的式子极为相似,也许这也是逻辑回归要在后面加上回归两个字的原因吧。当然,在样本量极大的时候,每次更新权重会非常耗费时间,这时可以采用随机梯度下降法,这时每次迭代时需要将样本重新打乱,然后用下式不断更新权重。如是去掉了求和,针对每个样本点都进行更新,即:
领取专属 10元无门槛券
私享最新 技术干货