逻辑回归

来源:互联网 发布:一洋淘宝运营助手账号 编辑:程序博客网 时间:2024/05/16 12:05

一、线性回归

       回归是一种极易理解的模型,就相当于y=f(x),表明自变量x与因变量y的关系。最常见问题

如医生治病时的望、闻、问、切,之后判定病人是否生病或生了什么病,其中的望闻问切就是

获取自变量x,即特征数据,判断是否生病就相当于获取因变量y,即预测分类。

       最简单的回归是线性回归,在此借用Andrew NG的讲义,有如图1.a所示,X为数据点——

肿瘤的小,Y为观测值——是否是恶性肿瘤。通过构建线性回归模型,如hθ (x)所示,构建线

性回归模型后,即可以根据肿瘤大小,预测是否为恶性肿瘤h θ(x)≥.05为恶性,h θ (x)<0.5为良

性。

            

二、逻辑回归模型

       然而线性回归的鲁棒性很差,例如在图1.b的数据集上建立回归,因最右边噪点的存在,

使回归模在训练集上表现都很差。这主要是由于线性回归在整个实数域内敏感度一致,而

分类范围,需要在[0,1]。逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回

归模型,其回归方程与回归曲线如图2所示。逻辑曲线在z=0时,十分敏感,在z>>0或z<<0

处,都不敏感,将预测值限定为(0,1)。

      

                                                                               图2 逻辑方程与逻辑曲线

       逻辑回归其实仅为在线性回归的基础上,套用了一个逻辑函数g(z),但也就由于这个

逻辑函数,逻辑回归成为了机器学习领域一颗耀眼的明星,更是计算广告学的核心。对于

多元逻辑回归,可用如下公式似合分类,其中公式(4)的变换,将在逻辑回归模型参数估计

时,化简公式带来很多益处,y={0,1}为分类结果。 

                  

       对于训练数据集,特征数据x={x 1 , x 2 , … , x m }和对应的分类数据y={y 1 , y 2 , … ,

 y m }。构建逻辑回归模型f(θ),最典型的构建方法便是应用极大似然估计。首先,对

于单个样本,其后验概率为:


      那么,极大似然函数为:


      log似然是:


  最大似然估计就是求使取最大值时的θ,其实这里可以使用梯度上升法求解

,求得的θ就是要求的最佳参数。但是,在Andrew Ng的课程中将损失函数取为

下式,即:

                       

  由于乘了一个负的系数-1/m,所以,当损失函数最小时取得的θ是最佳参数。

三、 梯度下降法

梯度下降法是按下面的流程进行的:

1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。

2)改变θ的值,使得按梯度下降的方向进行减少

为了更清楚,给出下面的图:

                              

在上面提到梯度下降法的第一步是给θ给一个初值,假设随机给的初值是在图上

的十字点。然后我们将θ按照梯度下降的方向进行调整,就会使得往更低的方向

进行变化,如图所示,算法的结束将是在θ下降到无法继续下降为止


在实际计算中,梯度表示的是损失函数的偏导数组成的一

个方向向量,所谓梯度下降,就是指:参数沿着梯

度反方向减,即:,其中表示学习率

四、梯度下降法求LR参数

在用梯度下降法求LR的参数时,采用“依次更新”的方式,
即:在每次迭代更新时,依次更新。更新的公式为:

其中,将关于的偏导数作为方向向量(一维),将该方向向
量的反方向作为梯度下降的方向,参数沿着这个方向不断减少。
由第二节我们知道,损失函数为:

则:
对数log的底为e,则:
现在计算
由于:
因此得到:
式(3)代如式(2)得到:
式(4)带入式(1)得到:
于是,得到更新的公式为:
按照该公式,依次更新,从而实现一次参数的更新(在模型训练
中,需要很多次参数的更新才能实现参数或损失函数的收敛)。

五、LR参数求解的向量化求解过程

向量化是使用矩阵计算来代替for循环,以简化计算过程,提高效率。

下面介绍向量化的过程:

约定训练数据的矩阵形式如下,x的每一行为一条训练样本,而每一列为不同的

特称取值:

g(A)的参数A为一列向量,所以实现g函数时要支持列向量作为参数,并返回列向量。

因此,θ更新过程可以改为:

经过多次迭代,更新参数θ的值,直到θ的值收敛(变化不大)为止。可以设置

一个阈值t,当θ值的变化较小(<t)时,一般可以认为是收敛了。此时,对应的参数

θ就是我们要求的最合适的LR模型的参数。

六、模型评估

       对于LR分类模型的评估,常用AUC来评估,关于AUC的更多定义与介绍,可见

参考文献2,在此只介绍一种极简单的计算与理解方法。

                      

           对于训练集的分类,训练方法1和训练方法2分类正确率都为80%,但明显可

以感觉到训练方法1要比训练方法2好。因为训练方法1中,5和6两数据分类错误,

但这两个数据位于分类面近,而训练方法2中,将10和1两个数据分类错误,但这

两个数据均离分类面较远。

        AUC正是衡量分类正确度的方法,将训练集中的label看两类{0,1}的分类问题,

分类目标是将预测结果尽量将两者分开。将每个0和1看成一个pair关系,图中的训练

集共有5*5=25个pair关系,只有将所有pair关系一至时,分类结果才是最好的,而auc

为1。在训练方法1中,与10相关的pair关系完全正确,同样9、8、7的pair关系也完全

正确,但对于6,其pair关系(6,5)关系错误,而与4、3、2、1的关系正确,故其auc

为(25-1)/25=0.96;对于分类方法2,其6、7、8、9的pair关系,均有一个错误,即(6,1)、

(7,1)、(8,1)、(9,1),对于数据点10,其正任何数据点的pair关系,都错误,即(10,1)、

(10,2)、(10,3)、(10,4)、(10,5),故方法2的auc为(25-4-5)/25=0.64,因而正如直观所见,

分类方法1要优于分类方法2。

参考文献:

1  Andrew NG. Logistic Regression Classification

2 http://www.cnblogs.com/guolei/archive/2013/05/23/3095747.html

0 0