假设我们有 一些数据点,我们用一条直线对其进行拟合,那么拟合的过程就称为回归。
实际上Logistic回归经常用于二类分类,也就是一般只用于只存在两种诸如“是”与“不是”等的问题,我们需要这么一个函数,能接收所有输入然后预测出类别。要找到只存在两种分类的函数,阶跃函数是个不错的选择,但是有一个问题,阶跃函数在跳跃点处如何处理?所以我们引入另一个函数——Sigmoid函数代替阶跃函数,Sigmoid函数的定义如下:
我们可以利这个式子来进行分类:
由上面的图像和公式都可以得出,这里不存在阶跃函数中的跳跃点,可以接受任何输入,那么 z 是什么?实际上,
我们将使用梯度上升法来求解二分类问题,很多博客和文章甚至于本书都没有简述为什么要使用梯度上升法来解决这个问题,这里我们来描述一下,让读者更加清晰。首先,我们得知道梯度是什么,在数学上的定义是,梯度是某个函数关于所有自变量求偏导得到的一个向量,如果我们对函数中的某一个变量进行求偏导,得到的在某个点上的偏导数就是该函数“沿着这个特征变量变化速率最快的方向”,默认为上升(也就是增加幅度最大的方向),加个负号就变成了下降幅度最大的方向。现在我们不取某一个特征,而是取所有特征组成的梯度向量来使用,就变成了该函数综合考虑所有的特征之后“整体”变化最快的方向,我们换个术语可以理解为“最大化收益”。梯度上升法就是求函数最大值的方法,不过其步骤是一步一步逼近最大值,相同的,梯度下降法就是求函数最小值的方法。
我们结合之前的讨论,可以综合得出我们所需要求的函数是有关得到相应分类概率的函数:
换句话说,当得到的类别是1的使用我们使用的是第一个式子,类别为0的使用我们使用的是第二个式子,所以总公式很好的综合了两种情况,现在我们要求得就是使得这个概率最大化,所以我们要利用梯度上升法来一步一步逼近最大值。
在知道了为何要使用梯度上升法之后,我们转过来就是要使用梯度上升法确定