逻辑回归原理

看了很多遍逻辑回归的原理,但是发现自己还是不能完整的讲清楚它的原理,所以在这里写一篇博客来理清楚自己的思路。水平有限,如有错误还请指正。

逻辑回归原理

逻辑回归是利用回归类似的方法来解决分类问题。假设有一个二分类问题,输出y\in{0,1},而线性模型(下文将展示这个模型)的的预测值z是实数值,我们希望找到一个阶跃函数将实数z映射为{0,1},这样我们就能很好的处理分类问题了。那么逻辑回归中是使用什么函数来进行映射的呢?就是sigmoid函数(关于为什么用这个函数请点击这里查看)。

sigmoid函数的图像:

sigmoid

sigmoid函数中的z就是线性函数的z,因为g(z)最后输出的时样本类别的概率值,所以我们可以把阈值设为0.5,g(z)大于等于0.5的看作1,小于0.5的看作0,这样我们就能利用逻辑回归来处理二分类问题了。分类结果就是这样子的。

那我们现在的问题就是怎样计算得到线性函数的模型,也就是我们上文提到输出为z的线性模型。为了使模型能分类更准确,我们需要得出一个最优的线性模型函数。也就是下图所示的公式。如何让这个参数达到最优呢?我们就要对每个x找到最优的参数\theta,这也是我们接下来要求解的问题。

此时我们可以先将线性模型和sigmoid函数结合起来构造逻辑回归的预测函数:

通常求解回归问题(也就是上面的线性问题)的常规步骤为三步:

1.寻找预测函数h_{\theta }(x)

2.构造损失函数J(\theta)

3.想办法使得J(\theta)函数最小并求得回归参数θ

构造损失函数

上面我们已经写出了辑回归的预测函数,所以下一步我们要构造损失函数J(\theta)。构造损失函数J(\theta)我们可能会先想到模仿线性回归中的平方误差作为损失函数,但是如果使用平方误作损失函数的话我们得到的损失函数就是一个非凸函数,这就意味着损失函数有许多局部最优解,就不能得到全局最优的\theta

                                                                                        非凸函数(左)凸函数(右)

那我们就要构造其他的损失函数了。我们再来看问题本身,我们要解决的时二分类问题,函数的值有特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:

y(标签)要么取0要么取1,这样就可以把两个类别进行整合,得到一个更直观的表达。

此时P就是某个样本的概率值,我们只要最大化样本的概率就可以得到最好的分类模型了。接下来我们用极大似然函数来求解样本的概率值P

为了简化运算,我们让等式的两边都取对数,对数似然函数为:

这里就是用极大似然估计来求最优的θ。最大似然估计就是求使取最大值时的θ,其实这里可以使用梯度上升法求解,求得的θ就是要求的最佳参数。因为在很多其它的讲解中都是用梯度下降来求解,是因为它们在前加了一个负号,使J(\theta )=-l(\theta ),此时就是用梯度下降来求J(θ)了。这里我们使用梯度下降来求解。如果你想用梯度上升求解也没问题。

梯度下降法求的最小值

θ更新过程:

θ更新过程可以写成:

 

这时我们就能求出最优的参数\theta,也就能得到最优的逻辑回归模型了,得到最优模型我们就可以更好的分类未知样本了。

关于逻辑回归的代码实现我就不在这里写了,网上已经有很多人写了,很容易就能找到。

 

参考:[1]逻辑回归(logistic regression)的本质——极大似然估计

           [2]逻辑回归 - 理论篇

           [3]十分钟掌握经典机器学习算法-逻辑回归

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页