LR详解

时间:2024-05-18 21:09:09

对于文本分类这个经典问题,很多传统机器学习的算法都是适用的,比如说逻辑回归(LR)的表现就很优秀。在用LR进行文本分类的时候,最主要的是如何解决特征之间的非线性关系。所谓的非线性关系是指,一个特征和另外特征相关,而且为非线性的关系。举个简单的例子,LR详解就是线性关系,而LR详解就是非线性关系。对于这个问题的解决主要有以下几个方式:多元特征模型、boosting、nb-norm、去除非线性特征。

照例还是先从原理开始解析:

回归问题的常规解决步骤为:寻找假设函数h -> 构造损失函数 -> 想办法使得损失函数最小并求得回归参数

逻辑回归模型常用来解决二分类问题。依照上述步骤进行模型构建。原始问题的假设是这样的:假设数据服从伯努利分布(伯努利分布就是说,只有两个结果,成功或者失败,即二分类,且每次实验都是独立的,每次试验都有固定的成功概率p,概率公式可以表示为LR详解,其中x值只能为0或1)。除此之外,没有任何关于数据的假设。

同样还是试图找到一个线性超平面对结果进行划分,由于结果是二值的,即0/1,使用线性回归模型产生的预测值是一个连续的实数,因此我们想要用一个函数来对这预测值来进行转化(即把数字转化为0/1)。此时使用sigmoid函数,函数定义如下:

LR详解

式子里的x为自变量,即用到的特征,特征可以是连续的,也可以是分类的,不需要对特征进行标准化。这个函数对应的图像如下:

LR详解

从图像可以看出,这个函数的取值区间为[0, 1],可以把这个函数值y看做某一点x属于类别1的概率的大小。

对于前边的这些其实是属于inference的阶段,对于预测结果的损失函数,最直接的方法是使用误差平方和,即

LR详解

但是如果直接使用该函数的话,将sigmoid函数带入会发现,该损失函数是一个非凸函数,有很多极小值,不利于求解。此时,换一个思路,P(y = 1| x;θ) = h(θ),那么对应的P(y = 0| x;θ) = 1 - h(θ)。把这两个式子结合在一起,用极大似然估计进行参数求解,形式如下:

LR详解

对上边的函数两边都求对数,得到如下公式:

LR详解

设计完损失函数之后,需要使用梯度下降法(梯度的负方向就是代价函数下降最快的方向)进行最优参数的求解。sigmoid函数有一个很好的特点:LR详解

LR详解

上边的式子是针对梯度下降法求参数更新来说的,对于样本量极大的情况,这种方法非常耗时,可采用随机梯度下降,每次迭代时将样本重新打乱,

for i in range(n), LR详解

 

前边是整个逻辑回归的流程和数学推导,下面对LR进行深入讨论。

逻辑回归属于广义线性模型的一种,这个家族中的模型形式基本上都差不多。线性回归的前提是满足高斯马尔科夫假设,其中提到相应变量和误差项均满足正态分布,但是现实中很多数据都不满足正态分布,由此提出的广义线性模型,即只要满足指数分布族的数据都可以通过连接函数转化后进行线性拟合。线性回归误差值必须是正常分布的,但在逻辑回归的情况下并非如此。

在训练过程中,往往会遇到过拟合和欠拟合的问题。如果发生过拟合的话,往往都是因为特征过多。给模型加入新的特征会提高训练的准确性,如果特征比较显著的话,这种提高会比较明显,但是会过拟合。对这个问题的解决方法主要有以下两点:减少特征数量和正则化。前者可以用人工选择来保留想要的特征,也可以用模型选择算法(如卡方、LASSO算法等,因为LASSO应用了绝对惩罚,在增加了LASSO的惩罚后,一些变量的系数可能变为0,从而起到特征选择的作用)进行特征重要性的计算。但是即使特征选的很好,减少特征也会失去一些信息,因此这不是最佳解决方案。所谓的正则化就是保留所有特征,但是θ比较小,这种方法在特征较多的时候比较有效。

这里就有必要说一下正则化的问题:正则化项一般是模型复杂度的单调递增函数,正则项越大,对模型复杂度惩罚越严重,最终的模型越简单。直观地来说,对于不想要的特征(一般都是引起模型过拟合的特征)加上惩罚项,令这个参数很小很小,那么这几个不想要的特征对模型起的作用就很小很小,从而起到过拟合的作用。正则化是对参数起到的限制,对应的就是正则项,正则项分有两种——L1范数和L2范数,这两种正则化项各有各自的用途。

正则项的系数就是正则项系数。如果正则项系数很大,则对模型的复杂度惩罚大,对拟合数据的损失惩罚小,这样就不会过分拟合数据,在训练数据上的偏差较大,在未知数据上的方差较小,但是可能出现欠拟合的现象。若果正则项系数很小,则比较注重对训练数据的拟合,在训练数据上的偏差会小,但可能会导致过拟合。L1范数采用参数的绝对值之和,类似于LASSO的绝对惩罚,因此同理也有参数选择的作用,L2范数采用参数的平方和,相对L1范数来说更为常用。

  • L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为||w||1 。L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,更容易产生稀疏解可以用于特征选择,即让一部分无用特征的系数缩小到0,从而帮助模型找出数据集中最相关的特征,但是通常在计算上不如L2高效。L1求导的问题可以用次梯度来解决。

  • L2正则化是指权值向量w中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号),通常表示为||w||2。对尖峰向量的惩罚很强,且倾向于分散权重的向量。

 

题外话:分析逻辑回归性能的一个很好的方法是AIC准则,是衡量统计模型拟合优良性的一种标准,类似于线性回归中的R-squared。这个准则建立在熵的概念基础上,可以权衡所估计模型的复杂度和此模型你和数据的优良性。用数学公式表示如下:AIC = 2k + nln(SSR/n),其中k为参数的数量,SSR是残差平方和,n是样本数。很显然,AIC更喜欢具有最小值的模型。