Logistic

本文深入浅出地介绍了逻辑回归模型的基本原理及其在文本分类中的应用。包括模型构建、参数估计、显著性检验等内容,并探讨了如何优化分类效果。
初步接触

谓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)

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

2.显著性检验

下面讨论在逻辑回归模型中自变量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]。或者某个变量进入模型后,在下一步又被删除,形成循环。

本文适合有少许文本分类实践经验的同学。

 

1.什么是文本分类?

简单点说,给定类别,将文本分到某个或某几个类别中。比如,一篇网页,判断它是体育类还是政治类还是娱乐类。当然网页比文本稍微复杂一些,需要先做一些页面解析等预处理工作。文本分类可看作网页分类的一个子问题。

想继续了解文本分类,推荐看计算所王斌老师的PPT ,点击这里

 

 

2.什么是逻辑回归(LR, logistic regression)?

英文,参考wikipedia的定义,点击这里

中文,可参考这篇,点击这里

目前有不少机器学习方面的开源实现,本人采用了liblinear开源库,实现高效,使用简单,它支持LR和SVM,点击这里了解。

 

3.什么是模型调优?

对于文本分类问题,收集若干类别样本,确定好文本特征后,采用一些成熟的分类算法(朴素贝叶斯、SVM、决策树、LR等),即可得到一个分类器,采用交叉验证(cross validation)可得到这个分类器的大致效果。要想达到比较理想的分类效果(准确率/召回率),则需要进行模型调优。以下列举本人在利用LR的实践过程中觉得比较重要的调优点。

 

4. 训练样本调优

理想情况下,对于任何分类算法来讲,只要训练样本足够好(什么算好?),分类效果的差别并不是特别大。训练样本的好坏直接决定了分类效果。矛盾的是,理想中的训练样本几乎无法得到。主要原因有二:1)训练样本无法正确映射出现实世界中的各类别比例。比如现实世界里A类/B类=40,如果按照这个比例来确定训练样本,则显然不行。2)对于有监督学习来说,训练样本往往需要人工标注,这使得训练样本数量无法得到保证。另外人工标注不可避免会产生错误,也会对分类造成影响。

在实践过程当中,要保持对数据的敏感性,对于模型的错误/有偏输出结果,要不断分析和猜测并加以验证。比如某个非政治类词与政治类的关联度特别大,则可断定是训练样本的有偏性造成的(比如训练样本大部分来自新浪政治类网页,则新浪这个词肯定与政治类关联度特别大,要想办法消除这种有偏性)。

 

5. 特征调优

如何表示一个文本?向量空间模型(VSM)是比较常用的。对于文本分类问题,VSM的每一维可以表示一个word,而tfidf是比较常见的权重计算方法,但是tfidf的具体计算方法又有很多种(log形式, normalized形式、tf=1形式等)。任何一种都没有绝对的优劣性。需要在实践中根据具体数据来选择对应形式。

另外,特征的维数及各维定义也需要商榷。维数过大会带来训练时间过长和数据稀疏性问题。维数过小无法完整表示文本显然也不行。一般通过特征选择(feature selection)方法来确定特征维数和组成方式。实际使用过程中CHI和IG是效果比较好的两种。各维数含义则可简单可复杂,简单的,各维可表示一个word,直观明了;复杂的可使用LSI等方法来对其进行重构。

    对于特征选择的计算结果(每维特征与各类别的关联度排序),可稍加分析,看是否存在训练样本的有偏问题。

 

6. 保持对数据的敏感性

模型调优是一个不断迭代的过程,在实践过程中,要善于根据分类器的输出(打分分布、区间样本抽查、误判分析)来发现问题所在。走一步,看一步。不要盲目地去调整,要根据模型目前的状态,分析其可能的问题所在,然后有针对性地去优化。另外还要确保测试集合的开放性,防止over-fitting.

 

7. 保持耐心、细致

模型调优又是一个繁琐的工作,需要不断的迭代优化,需要不断的抽查样本,需要不断的分析和对比数据。往往有时模型的输出结果与预测不符,会令人沮丧。但最重要的是要保持耐心和细心。如果确定目前的方法可以解决这类问题,则要坚定不移地走下去,同时细致地发现可能存在的问题并加以改进。相信总会得到一个令人满意的结果

Logistic regression is a statistical model used primarily for binary classification problems, where the outcome is dichotomous (i.e., there are only two possible outcomes) [^2]. The algorithm applies the logistic function, also known as the sigmoid function, to convert the output of a linear equation into a probability that can be mapped to two or more classes. In machine learning, it serves as a foundation for understanding more complex models and is often used when the data is linearly separable. The hypothesis function in logistic regression uses the sigmoid function to predict the probability that an instance belongs to a particular class. Mathematically, this is represented as: $$ h_\theta(x) = \frac{1}{1 + e^{-\theta^T x}} $$ Here, $ h_\theta(x) $ gives the probability that the output is 1 given the input $ x $ parameterized by $ \theta $. The decision boundary is typically set at 0.5, meaning if $ h_\theta(x) \geq 0.5 $, the model predicts the instance belongs to class 1, and if $ h_\theta(x) < 0.5 $, it predicts class 0 [^2]. To learn the parameters $ \theta $, logistic regression uses the maximum likelihood estimation, which is optimized using various algorithms. One common approach is gradient ascent (or descent for minimization), which iteratively adjusts the weights to reduce the cost function. An example of a stochastic gradient ascent implementation is provided in the following Python-like pseudocode: ```python def stocGradAscent0(dataMatrix, classLabels): m, n = shape(dataMatrix) alpha = 0.01 weights = ones(n) for i in range(m): h = sigmoid(sum(dataMatrix[i] * weights)) error = classLabels[i] - h weights = weights + alpha * error * dataMatrix[i] return weights ``` This algorithm updates the weights one sample at a time, making it suitable for online learning scenarios [^3]. For batch optimization, gradient descent is used to update the parameters by taking steps proportional to the negative of the gradient of the function at the current point, as described in the following update rule: $$ \theta_j := \theta_j - \alpha \frac{\partial}{\partial \theta_j} J(\theta) $$ This update is performed simultaneously for every parameter $ \theta_j $, where $ \alpha $ is the learning rate and $ J(\theta) $ is the cost function that needs to be minimized [^4]. Regularization is another important aspect of logistic regression, which helps prevent overfitting by adding a penalty to the size of the coefficients. This is particularly useful when dealing with high-dimensional data where the number of features may be large relative to the number of observations [^1].
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值