逻辑回归实践总结一

最近使用LR的方法,训练了一个排序模型,边实践边总结,这篇说下LR相关的理论知识。

一、LR的定义

LR是Logistic Regression 的缩写,称为逻辑回归。假设数据集为,其中m代表数据个数,是数据的特征向量,维度为n,是其j维的值,是数据的类别,只有两个值{+1,-1},1代表正样本,-1代表负样本。LR是一种分类模型,它通过以下公式判断出特征向量的类别:

其中w是权重向量,代表着特征向量的各个维度的特征的权重。

LR模型利用上述公式计算出特征向量属于正(负)样本的概率大小,然后根据阈值,将数据分类为正(负)样本。那如何确定w呢?

如下图所示,好的w应该达到这个效果:如果x本身为正样本,x带入公式后应该值很大;如果x本身为负样本,x带入公式后应该值很大。

下面的损失函数就能满足这个需求:

在数据集给定的情况下,若w使得函数L值越大,则表明模型判断的准确率越高,模型的效果越好。转换成最优化问题,等价求使得下列函数的取最小值的w

二、LR的求解

最优化问题常用解法有梯度下降法和牛顿法。下面推导梯度下降法。

梯度下降法的思想是,按照梯度下降的方向去更新参数,一直进行下去就会找到函数的最小值。梯度是一个方向函数,代表着函数在这个方向增长最快,数学上求解时就是函数的一阶导数。梯度下降法每次按照梯度的方向取更新参数,代表朝着函数下降最快的方向。下列公式是损失函数的导数:

当然这个函数还有其他形式的写法,都能推导处理。使用梯度下降法,需要对全部数据集求一阶导数,然后根据步长,去更新权重w。步骤如下:

for I in iterations:

d = countDec(T)

w += step * d

其中iterations 是训练的轮数,step是步长,countDec是求数据集T的梯度的函数。

其他类似的方法有随机梯度下降法(不需要对全部数据集求梯度,每次随机选择一个数据计算梯度,然后更新w),批量梯度下降法(不需要对全部数据集求梯度,每次随机选择k个数据计算梯度,然后更新w)。

还有一类方法是牛顿法,和梯度下降法不同。牛顿法所用的方向是函数的二阶导数,即函数的hensen矩阵。牛顿法相比梯度下降法要更快,但是由于hensen矩阵的求解对应大数据集,计算量太大,所以出现了一批仿牛顿法。这类方法的主要思想是使用各种办法求得hensen矩阵的近似值和减少计算的数据量。有LBGS方法。

三、正则化

在训练机器学习模型的时候,会出现过拟合的现象。过拟合在指标上的表现就是在训练集的准确率很高,但是在测试集的准确率很低,表明模型虽然很号第学习了训练集的规律,但是扩展性很差,无法进行预测,实际效用页大大降低。对于LR来说,当出现过拟合现象时,一般w的某些维度的值都比较大,往往是很大的负数或者很大的正数。常用的降低过拟合的办法是在损失函数中加入L1正则化或者L2正则化。

L1正则化指的是在损失函数中加入w的绝对值。新的损失函数为

L2正则化指的是在损失函数中加入w的平方,新的损失函数为

当w取很大的正数或者负数时,将导致损失函数的值增加,降低了该w值使得L取最小值的机会,即降低了w为最优值的机会。正则化可以看作是w做的惩罚,限制w不能取过大的值。

 

四、相关问题

1、逻辑回归与线性回归的区别与联系

1.1 逻辑回归用于分类问题,线性回归用户回归问题。前者主要作用是训练模型,将数据分类,后者是训练模型,对数据做出预测。

1.2逻辑回归的因变量(y)是离散的,线性回归的因变量是连续的。在自变量x和超参数固定的情况下,逻辑回归是线性回归在因变量y服从二元分布时的一个特殊情况;而使用最小二乘法求解线性回归是,我们认为因变量y服从正态分布。

1.3 两者都使用极大似然估计来对训练样本进行建模。

从另一个角度理解LR,设p为特征向量x为正样本的概率,则可以定义x为正样本的几率为。则有如下公式推导:

即x为正样本的几率是特征向量的线性函数,wx的值越大,x为正样本的概率就越大;wx的值越小,x为负样本的概率就越大。

2、为什么L1正则化比L2正则化更容易产生稀疏解。

1.1 稀疏解有利用模型的线上部署,可以减少存储空间和减少计算量,对于模型的线上运行很有益处。这个问题可以用下面的图来解释。

正则化是对w的惩罚和限制,图中圆圈等值线代表原损失函数的函数值,围绕零点的是正则化对w的限制。L2的限制更容易与原损失函数产生交集,而L1的限制导致更容易在值为0的时候与原函数产生交集,更容易产生为0的稀疏解。

 

3、当使用逻辑回归处理多标签的分类问题时,有哪些常见做法,分布应用于哪些场景,它们之间又有怎么样的关系?

当一个样本只有一个标签时,使用多项逻辑回归(softmax regression)进行分类,

当存在样本属于多个类别的时候,我们可以训练k个二分类器,第i个分类器确定每个样本是否可以分为第i类。

 

4、lr的正式介绍

lr假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,达到将数据二分类的目的。

5、adam 动量法相比梯度下降法的优点

1 第一个是如何对模型选择合适的学习率。自始至终保持同样的学习率其实很不合适。因为一开始模型刚刚开始学习的时候,此时的参数和最优解隔的比较远,需要保持一个较大的学习率,尽快逼近最优解。但是学习到后面的时候,参数和最优解隔的比较近,如果还保持较大的学习率,则容易越过最优点,在最优点附近来回震荡。

2 第二个是如何对参数选择合适的学习率。在实践中,对每个参数保持同样的学习率同样也是不合理的。有些参数更新比较频繁,那么学习率可以适当小一点。有些参数更新缓慢,学习率应该大一点。

6、为什么使用最大似然函数作为损失函数

1 损失函数有四种:平方损失函数,对数损失函数,0-1损失函数,绝对值损失函数。极大似然函数取对数后等效于对数损失函数。在Lr中,这个损失函数的训练求解参数的速度是比较快的。

更新速度之和x,y相关,和simmod函数本身的梯度无关,更新速度可以自始至终都比较稳定。

7、 为什么不选平方损失函数

1 使用平方损失函数,参数的更新速度和sigmod函数本身的梯度相关,sigmod函数的梯度在定义域内不大于0.25 。这样训练会很慢


 

8、如果有特征向量中有很多特征高度相关或者某个特征重复了100遍,对训练有什么影响。

在函数最终收敛的情况下,特征高度相关不会影响分类器的效果。假设现在特征向量只有一个特征,现在你把它重复了100遍(变成了100维的向量)。实质上把原来的特征分成了100份,每个特征的权重是原来权重的值百分之一。如果在随机采样的情况下,收敛完后,还是可以认为这100个特征和原来特征扮演的角色是一样的,只是可能中介很多特征的权重值正负抵消了。

9、接问题5,为什么在训练的时候还要把高度相关的特征去掉?

1 让模型的可解释性更好

2 大大提高模型的训练速度。1是很多特征高度相关的话,损失函数本身收敛了,但是模型并没有收敛。2是特征多了,本身会增大训练的时间。

10 lr的优点

1 形式简单、模型的可解释性好。从特征的权重可以看到不同特征对最后结果的影响,某个特征的权重较大,这个特征对结果的影响也大。

2 工业上使用效果可以接收。并且特征工程可以并发做,加大开发的速度。

3 资源占用小,预测时只需要存储各个维度的特征值。

4 方便结果调整,可以调整预测时的阈值。

 

11 lr的缺点

1 准确率不是很高,因为形式简单,所以很难拟合数据的真实分布。

2 很难处理数据不平衡的问题。99个正样本,1个负样本时,全部预测为正,也可以使损失函数值很小,但是对正负样本的区分不是很好。

3 处理非线性数据麻烦,需要人工进行特征组合。

8.4 本身无法筛选特征,会用gbdt筛选特征,然后用lr训练。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值