zoukankan      html  css  js  c++  java
  • Logistic Regression逻辑回归算法汇总**

    转自别处 有很多与此类似的文章  也不知道谁是原创 因原文由少于错误 所以下文对此有修改并且做了适当的重点标记(横线见的内容没大明白 并且有些复杂,后面的运行流程依据前面的得出的算子进行分类)

    初步接触

    谓LR分类器(Logistic Regression Classifier),并没有什么神秘的。在分类的情形下,经过学习之后的LR分类器其实就是一组权值w0,w1,...,wm.
    当测试样本集中的测试数据来到时,这一组权值按照与测试数据线性加和的方式,求出一个z值:

    z = w0+w1*x1+w2*x2+...+wm*xm。 (其中x1,x2,...,xm是某样本数据的各个特征,维度为m)

    之后按照sigmoid函数的形式求出:

    σ(z) = 1 / (1+exp(z)) 。

    由于sigmoid函数的定义域是(-INF, +INF),而值域为(0, 1)。因此最基本的LR分类器适合于对两类目标进行分类。

    那么LR分类器的这一组权值w0,w1,...,wm是如何求得的呢?这就需要涉及到极大似然估计MLE和优化算法的概念了。

    我们将sigmoid函数看成样本数据的概率密度函数,每一个样本点,都可以通过上述的公式①和计算出其概率密度

    详细描述

    1.逻辑模型

    1.1逻辑回归模型

    考虑具有p个独立变量的向量clip_image002,设条件概率clip_image004为根据观测量相对于某事件发生的概率。逻辑回归模型可表示为

    clip_image006         (1.1)

    上式右侧形式的函数称为称为逻辑函数。下图给出其函数图象形式。

    clip_image008

    其中。如果含有名义变量,则将其变为dummy变量一个具有k个取值的名义变量,将变为k-1个dummy变量。这样,有

    (1.2)

      定义不发生事件的条件概率为

    (1.3)

    那么,事件发生与事件不发生的概率之比为

    clip_image016                                       (1.4)

    这个比值称为事件的发生比(the odds of experiencing an event),简称为odds。因为0<p<1,故odds>0。对odds取对数,即得到线性函数

          (1.5),

    1.2极大似然函数

      假设有n个观测样本,观测值分别为clip_image020clip_image022为给定条件下得到yi=1(原文clip_image024)的概率。在同样条件下得到yi=0(clip_image026)的条件概率为clip_image028。于是,得到一个观测值的概率为

                                                    (1.6)     -----此公式实际上是综合前两个等式得出,并无特别之处

     因为各项观测独立,所以它们的联合分布可以表示为各边际分布的乘积。

                                         

    上式称为n个观测的似然函数。我们的目标是能够求出使这一似然函数的值最大的参数估计。于是,最大似然估计的关键就是求出参数clip_image034,使上式取得最大值。

    对上述函数求对数

       (1.8)

    上式称为对数似然函数。为了估计能使clip_image038取得最大的参数clip_image034[1]的值。

    对此函数求导,得到p+1个似然方程。

               (1.9)

    ,j=1,2,..,p.-----p为独立向量个数

     上式称为似然方程。为了解上述非线性方程,应用牛顿-拉斐森(Newton-Raphson)方法进行迭代求解

    1.3 牛顿-拉斐森迭代法

      对clip_image038[1]求二阶偏导数,即Hessian矩阵为

    clip_image045

    clip_image047                                          (1.10)

    如果写成矩阵形式,以H表示Hessian矩阵,X表示

    clip_image049                                                  (1.11)

                             (1.12)

    clip_image053。再令clip_image055(注:前一个矩阵需转置),即似然方程的矩阵形式。

    牛顿迭代法的形式为

    clip_image057                                                 (1.13)

    注意到上式中矩阵H为对称正定的,求解clip_image059为求解线性方程HX=U中的矩阵X。对H进行cholesky分解。

    最大似然估计的渐近方差(asymptotic variance)和协方差(covariance)可以由信息矩阵(information matrix)的逆矩阵估计出来。而信息矩阵实际上是clip_image038[2]二阶导数的负值,表示为clip_image062。估计值的方差和协方差表示为clip_image064,也就是说,估计值clip_image066的方差为矩阵I的逆矩阵的对角线上的值,而估计值clip_image066[1]clip_image068的协方差(clip_image066[1]clip_image068的协方差等于clip_image062?不解。。。)为除了对角线以外的值。然而在多数情况,我们将使用估计值clip_image066[2]的标准方差,表示为

    clip_image070,for j=0,1,2,…,p                        (1.14)

    -----------------------------------------------------------------------------------------------------------------------------------------------

    .显著性检验

    下面讨论在逻辑回归模型中自变量clip_image072是否与反应变量显著相关的显著性检验。零假设clip_image074clip_image076=0(表示自变量clip_image072[1]对事件发生可能性无影响作用)。如果零假设被拒绝,说明事件发生可能性依赖于clip_image072[2]的变化。

    2.1 Wald test

    对回归系数进行显著性检验时,通常使用Wald检验,其公式为

    clip_image078 (2.1)

    其中, clip_image080clip_image082的标准误差。这个单变量Wald统计量服从自由度等于1的clip_image084分布。

      如果需要检验假设clip_image074[1]clip_image086=0,计算统计量

    clip_image088 (2.2)

    其中,clip_image090为去掉clip_image092所在的行和列的估计值,相应地,clip_image094为去掉clip_image092[1]所在的行和列的标准误差。这里,Wald统计量服从自由度等于p的clip_image084[1]分布。如果将上式写成矩阵形式,有

    clip_image097 (2.3)

    矩阵Q是第一列为零的一常数矩阵。例如,如果检验clip_image099,则clip_image101

      然而当回归系数的绝对值很大时,这一系数的估计标准误就会膨胀,于是会导致Wald统计值变得很小,以致第二类错误的概率增加。也就是说,在实际上会导致应该拒绝零假设时却未能拒绝。所以当发现回归系数的绝对值很大时,就不再用Wald统计值来检验零假设,而应该使用似然比检验来代替。

    2.2 似然比(Likelihood ratio test)检验

      在一个模型里面,含有变量clip_image103与不含变量clip_image103[1]的对数似然值乘以-2的结果之差,服从clip_image106分布。这一检验统计量称为似然比(likelihood ratio),用式子表示为

    clip_image108 (2.4)

    计算似然值采用公式(1.8)。

    倘若需要检验假设clip_image074[2]clip_image086[1]=0,计算统计量

        (2.5)

    式中,clip_image112表示clip_image114=0的观测值的个数,而clip_image116表示clip_image114[1]=1的观测值的个数,那么n就表示所有观测值的个数了。实际上,上式的右端的右半部分clip_image118表示只含有clip_image120的似然值。统计量G服从自由度为p的clip_image106[1]分布

    2.3 Score检验

      在零假设clip_image074[3]clip_image076[1]=0下,设参数的估计值为clip_image122,即对应的clip_image076[2]=0。计算Score统计量的公式为

    clip_image124          (2.6)

    上式中,clip_image126表示在clip_image076[3]=0下的对数似然函数(1.9)的一价偏导数值,而clip_image128表示在clip_image076[4]=0下的对数似然函数(1.9)的二价偏导数值。Score统计量服从自由度等于1的clip_image084[2]分布。

    2.4 模型拟合信息

      模型建立后,考虑和比较模型的拟合程度。有三个度量值可作为拟合的判断根据。

    (1)-2LogLikelihood

        (2.7)

    (2) Akaike信息准则(Akaike Information Criterion,简写为AIC)

    clip_image132 (2.8)

     其中K为模型中自变量的数目,S为反应变量类别总数减1,对于逻辑回归有S=2-1=1。-2LogL的值域为0至clip_image134,其值越小说明拟合越好。当模型中的参数数量越大时,似然值也就越大,-2LogL就变小。因此,将2(K+S)加到AIC公式中以抵销参数数量产生的影响。在其它条件不变的情况下,较小的AIC值表示拟合模型较好。

    (3)Schwarz准则

      这一指标根据自变量数目和观测数量对-2LogL值进行另外一种调整。SC指标的定义为

    clip_image136 (2.9)

    其中ln(n)是观测数量的自然对数。这一指标只能用于比较对同一数据所设的不同模型。在其它条件相同时,一个模型的AIC或SC值越小说明模型拟合越好。

    3.回归系数解释

    3.1发生比

    odds=[p/(1-p)]clip_image138,即事件发生的概率与不发生的概率之比。而发生比率(odds ration),即clip_image140

    (1)连续自变量。对于自变量clip_image072[3],每增加一个单位,odds ration为

    clip_image143 (3.1)

    (2)二分类自变量的发生比率。变量的取值只能为0或1,称为dummy variable。当clip_image072[4]取值为1,对于取值为0的发生比率为

    clip_image145 (3.2)

    亦即对应系数的幂。

    (3)分类自变量的发生比率。

    如果一个分类变量包括m个类别,需要建立的dummy variable的个数为m-1,所省略的那个类别称作参照类(reference category)。设dummy variable为clip_image072[5],其系数为clip_image076[5],对于参照类,其发生比率为clip_image148

    3.2 逻辑回归系数的置信区间

      对于置信度1-clip_image150,参数clip_image076[6]的100%(1-clip_image150[1])的置信区间为

    clip_image154 (3.3)

      上式中,clip_image156为与正态曲线下的临界Z值(critical value), clip_image158为系数估计clip_image160的标准误差,clip_image162clip_image164两值便分别是置信区间的下限和上限。当样本较大时,clip_image150[2]=0.05水平的系数clip_image160[1]的95%置信区间为

    clip_image168 (3.4)

    -----------------------------------------------------------------------------------------------------------------------------------------------

    4.变量选择

    4.1前向选择(forward selection):在截距模型的基础上,将符合所定显著水平的自变量一次一个地加入模型。

      具体选择程序如下

    (1) 常数(即截距)进入模型。

    (2) 根据公式(2.6)计算待进入模型变量的Score检验值,并得到相应的P值。

    (3) 找出最小的p值,如果此p值小于显著性水平clip_image170,则此变量进入模型。如果此变量是某个名义变量的单面化(dummy)变量,则此名义变量的其它单面化变理同时也进入模型。不然,表明没有变量可被选入模型。选择过程终止。

    (4) 回到(2)继续下一次选择。

    4.2 后向选择(backward selection):在模型包括所有候选变量的基础上,将不符合保留要求显著水平的自变量一次一个地删除。

    具体选择程序如下

    (1) 所有变量进入模型。

    (2) 根据公式(2.1)计算所有变量的Wald检验值,并得到相应的p值。

    (3) 找出其中最大的p值,如果此P值大于显著性水平clip_image172,则此变量被剔除。对于某个名义变量的单面化变量,其最小p值大于显著性水平clip_image172[1],则此名义变量的其它单面化变量也被删除。不然,表明没有变量可被剔除,选择过程终止。

    (4) 回到(2)进行下一轮剔除。

    4.3逐步回归(stepwise selection)

    (1)基本思想:逐个引入自变量。每次引入对Y影响最显著的自变量,并对方程中的老变量逐个进行检验,把变为不显著的变量逐个从方程中剔除掉,最终得到的方程中既不漏掉对Y影响显著的变量,又不包含对Y影响不显著的变量。

    (2)筛选的步骤:首先给出引入变量的显著性水平clip_image170[1]和剔除变量的显著性水平clip_image172[2],然后按下图筛选变量。

    (3)逐步筛选法的基本步骤

    逐步筛选变量的过程主要包括两个基本步骤:一是从不在方程中的变量考虑引入新变量的步骤;二是从回归方程中考虑剔除不显著变量的步骤。

    假设有p个需要考虑引入回归方程的自变量.

    ① 设仅有截距项的最大似然估计值为clip_image175。对p个自变量每个分别计算Score检验值,

    设有最小p值的变量为clip_image177,且有clip_image179,对于单面化(dummy)变量,也如此。若clip_image181,则此变量进入模型,不然停止。如果此变量是名义变量单面化(dummy)的变量,则此名义变量的其它单面化变量也进入模型。其中clip_image183为引入变量的显著性水平。

    ② 为了确定当变量clip_image177[1]在模型中时其它p-1个变量也是否重要,将clip_image186分别与clip_image177[2]进行拟合。对p-1个变量分别计算Score检验值,其p值设为clip_image188。设有最小p值的变量为clip_image190,且有clip_image192.若clip_image194,则进入下一步,不然停止。对于单面化变量,其方式如同上步。

    ③ 此步开始于模型中已含有变量clip_image177[3]clip_image190[1]。注意到有可能在变量clip_image190[2]被引入后,变量clip_image177[4]不再重要。本步包括向后删除。根据(2.1)计算变量clip_image177[5]clip_image190[3]的Wald检验值,和相应的p值。设clip_image196为具有最大p值的变量,即clip_image198=max(clip_image188[1]),clip_image201.如果此p值大于clip_image203,则此变量从模型中被删除,不然停止。对于名义变量,如果某个单面化变量的最小p值大于clip_image203[1],则此名义变量从模型中被删除。

    ④ 如此进行下去,每当向前选择一个变量进入后,都进行向后删除的检查。循环终止的条件是:所有的p个变量都进入模型中或者模型中的变量的p值小于clip_image172[3],不包含在模型中的变量的p值大于clip_image183[1]。或者某个变量进入模型后,在下一步又被删除,形成循环。

  • 相关阅读:
    HTML5结构
    HTML5新增的非主体元素header元素、footer元素、hgroup元素、adress元素
    CF GYM 100703G Game of numbers
    CF GYM 100703I Endeavor for perfection
    CF GYM 100703K Word order
    CF GYM 100703L Many questions
    CF GYM 100703M It's complicate
    HDU 5313 Bipartite Graph
    CF 560e Gerald and Giant Chess
    POJ 2479 Maximum sum
  • 原文地址:https://www.cnblogs.com/biyeymyhjob/p/2595410.html
Copyright © 2011-2022 走看看