正文
逻辑回归也被称为对数几率回归,是一种分类算法,用条件概率分布的形式表示P ( Y ∣ X ) ,这里随机变量X XX取值为n nn维实数向量。
例如x = ( x 1 , x 2 , … , x n ) Y取值为0或1。
逻辑回归模型
逻辑回归的模型定义如下:
假设有一个二分类问题,输出为y = { 0 , 1 } ,而线性回归模型产生的预测值为 z=wx+b是实数值,我们希望有一个理想的阶跃函数来帮我们实现z值到0/1值的转化.
我们可以很自然的想到如下函数:
但是由于该函数在定义域内不连续,而我们需要一个单调可微的函数来供我们使用,于是便找到了Sigmoid函数:
由于Sigmoid函数的取值范围为[ 0 , 1 ],我们就可以将其视为类1的后验概率估计P ( y = 1 ∣ x ) 。说白了,就是如果有了一个测试点x ,那么就可以用Sigmoid 函数算出来的结果来当做该点x属于类别1的概率大小。
于是,非常自然地,我们把Sigmoid函数计算得到的值大于等于0.5的归为类别1,小于0.5的归为类别0:
逻辑回归的损失函数
逻辑回归模型的损失函数(误差平方和)定义如下:
其中:
z^{(i)} = w^Tx^{(i)} + bi表示第i个样本点;
y^i表示第i 个样本的真实值;
ϕ ( z ( i ) 表示第i个样本的预测值。
这时,如果我们将ϕ ( z ) = 1 /1 + e − z带入的话,会发现这是一个非凸函数,这就意味着代价函数(代价即预测值和实际值之间的差距)有着许多的局部最小值,这非常不利于我们求解。
左:非凸函数;右:凸函数
因此我们需要换一个思路去解决问题,我们注意到,在逻辑回归的分类任务中,分类结果非0即1,所以我们有:
其中
表示给定w ww,那么x xx点y = 1 y=1y=1的概率大小。
于是上式可以整合为:
逻辑回归模型参数估计
求解中的参数w可以用极大似然估计(最大可能性估计)的方法:
等式两边做对数变换可得
我们现在就得到了代价函数l ( w ) l(w)l(w),为了方便使用梯度下降法求解代价函数,我们取代价函数的相反数,然后将代价函数定义为原代价函数的相反数:
逻辑回归的模型求解
由于Sigmoid函数的自身性质,其对参数求偏导后:
偏导数推导过程:
接下来使用梯度下降法求解回归模型:
其中
w j表示第j个特征的权重;
η为学习率,用来控制步长。
梯度推导过程:
所以使用梯度下降法更新权重时,根据下列式子即可:
当样本量极大时,更新权重会非常耗时,我们可以采用随机梯度下降的方法,把每次迭代时需要的样本打乱:
也就是去掉了求和,而是对每个样本点都进行更新。
多项逻辑回归模型
将逻辑回归应用推广为多项式逻辑回归,用于解决多分类问题,这时公式定义为: