Logistic回归

      对于初次接触Logistic回归以及梯度上升、梯度下降方法的朋友来说,最费解的地方可能就是:为什么经过迭代之后得出的向量就是所求的最佳回归系数?本文将针对Logistic回归和梯度上升,从问题的引入到解决,一步一步谈谈自己的理解,希望能对大家更好的理解Logistic回归有所帮助。

      注:1.文中出现的一些数学结论,只提供了简单、便于理解的证明,并非严谨、详细的证明。

            2.文中所述仅是个人理解,难免有些错误和不足的地方,还请大家见谅。

     一、问题描述

      对于二分类问题,我们希望通过某一样例的属性 ...  ,来判断属于A类还是B类,即求一函数,使得( ... ) = A or B。

     二、单位阶跃函数及回归系数

      对于( ... ) = A or B ,我们将其转化为更通俗一点的数学描述,最直观的就是“单位阶跃函数”:

      这里,若输出为1,则是A类,输出为0,则是B类。 代表f的一个输入,可以把 当作是 ... 的一个线性组合,即   = = ,为了方便统一,也可以令,这就是为什么有些书上,在实现Logistic回归时,会增加一列数据,将其全部设置为1的原因。

      现在,我们的问题就是从样本中求得适合的向量(回归系数),使得对于属于A类的样例 ... )有 

 =  = ;属于B类的样例,则z<0。然后将求得的与待预测样本属性的线性组合代入单位阶跃函数来进行预测。

     三、引入Sigmoid函数

      对于单位阶跃函数,由于其不连续性,并不能直接用于求解向量,我们可以试着不用单位阶跃函数来将函数的值进行分类。这里可以借鉴朴素贝叶斯的思想:我们不需要像单位阶跃函数一样,得到明确的分类结果(不是1就是0),我们可以只得到其为A类的概率,如果概率大于等于0.5,就为A类,否则为B类。

      那么,怎么做呢?我们可以通过某种函数,将输入转化为一个在(0,1)之间的值,用于表示其结果为A类的概率,而Sigmoid函数正好满足我们的需求:

      其函数图像为:

 

      可以看出Sigmoid函数的取值范围在(0,1)之间,连续且单调递增,非常适合用于表述某一样本为A类的概率。鉴于样本中的分类一般只表示为1或0,我们依然令1为A类,0为B类, 为输入,做一复合函数

      我们的问题进一步转化为:从样本中求得适合的向量,使得对于属于A的样例( ... )有 = 1,对于B类,有 = 0。然后将求得的与待预测样本属性的线性组合代入复合函数来进行预测。

 

     四、极大似然估计

      由上节描述可知,对于样本集合中的任一样例,Sigmoid函数代表其为A类(即 = 1)的概率,我们记此概率为(),则其为B类(即 = 0)的概率为

      现在,我们要从样本集合中求适合的,那么,如何算是适合的呢?这里可以运用极大似然估计的思想,即适合的应当尽量使得每一个样本的分类都正确。

      具体来说就是,对于样例,如果它是A类(即样例的实际分类 = 1),则我们希望概率()越大越好,如果它是B类,则我们希望概率越大越好。为了统一表示,我们将两个概率整合入一个表达式中,方便计算,记为,将 = 1, = 0分别代入式子中,即可得到对应的概率。所以现在的问题就是对于样本中任一样例的实际分类为已知量,不论其为1还是0),我们希望越大越好。对于整体的样本,则我们希望所有概率的乘积的值越大越好。

      由于每一项的都小于1,累乘之后,可能会得到一个非常小的数(例如100个0.6相乘),导致计算机无法计算。解决方法就是对取对数,将乘法问题转化为加法问题。

      所以,我们现在的目标就是求向量,使得取得最大值。

     五、方向导数、梯度与极值

      现在,我们已经将问题转化为一个求极值的问题,自变量为

      为了求极值,我们有必要先介绍一下方向导数和梯度。导数的概念大家应该都不陌生,对于一元函数y=f(x),导数代表在某一点x0,函数值y的增长率。对于二元函数z=f(x,y),由于自变量从一维变化为二维,我们引入方向导数的概念,用来代表在某一点(x0,y0)上,函数值z沿着某一方向上的增长率。设l为从点P0(x0,y0)出发的一条射线,f在P0的某邻域U(P0)内有定义,点P(x,y)为l上的一点,且P在邻域U(P0)内,代表P到P0的距离,若极限存在,则称此极限为函数f在点P0沿方向l的方向导数,记做。从定义可以看出,若l的方向为x轴正方向,即y不变,x变化时的方向导数正好为f对x的偏导数,记做(P0),关于方向导数和偏导数有如下关系:,其中为方向l的方向余弦,为f在P0点对x、y的偏导数。其证明也很简单,具体可以百度,这里大概写一下(就不画图了):假设函数f在P0点可微,P为射线l上任一点,则有,(其中的高阶无穷小量,即为点P到P0的距离,即,易知),等式两边同时除以,并取->0时的极限,就可以得到

      下面介绍梯度,若函数f(x,y)在点P0(x0,y0)存在对所有自变量的偏导数,则称向量()为函数f在点P0的梯度,记做grad f,根据方向导数和偏导数的关系以及向量乘法法则,l方向上P0点的方向导数,其中,为l方向上的单位向量,为梯度向量与方向l的夹角。因此当=0时,方向导数取得最大值,即f在点P0的梯度方向上的增长率最大。对于多元函数,结论不变。

    因此,我们要求的最大值,只需要求出其对所有自变量()的偏导数,并给定一个初始位置P0,让其沿着梯度方向移动一定距离(步长),找到下一个点P1,再沿着P1的梯度方向找到P2,按照这种方法迭代k次,所得到的点Pk,将会非常接近使得取得最大值的点,此时点Pk对应的坐标向量,即所求的最佳回归系数。

      注:本节所涉及的数学描述,为了简单明了,忽略了一些前置条件,简化了证明,只重视结论。而且对于一般求极值、最值问题,这种迭代法求得的局部极大值,不一定是全局最大值,但是对于Logistic回归,这里的局部极大值,就是全局最大值,因为是关于的高阶可导连续凸函数。关于本节的一些具体证明,有兴趣可以查看相关专业书籍。

     六、问题求解

      现在,我们的问题已经很明确了,就是要求解复合函数                                    

        对其自变量()的偏导数,然后根据初始向量以及步长,不断沿着梯度方向迭代更新k次,最终得到向量,使得接近最大值,即此时的分类器对样本的分类正确率最高。

      为了方便求解偏导数,我们令,代入得:,再将该式代入,得,对求导,可得。则,对其第i个自变量的偏导数为:

     

               

               

      此式中,表示m个样本中,第j个样本的真实值,表示第j个样本的所有属性值( ... )与此次迭代中的线性组合的Sigmoid函数值表示第j个样本的第i个属性值。

      通过求解各个自变量的偏导数,得到的梯度,接下来就可以用权值更新公式,(其中为步长,代表每次沿着梯度方向移动的距离)以及初始点来进行迭代求解了。

 

      以上就是Logistic回归的求解过程,希望能对大家理解Logistic回归有所帮助。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值