逻辑回归常见面试总结

逻辑回归常见面试总结

一、基本知识

简要介绍:逻辑回归假设数据服从伯努利分布,通过极大似然函数的估计方法,运用梯度下降的方法来求解参数,来达到将数据二分类的目的。

1、逻辑回归的假设

逻辑回归的第一个基本假设是假设数据服从伯努利分布。伯努利分布有一个简单的例子抛硬币,抛中为正面的概率是p,抛中为负面的概率是1-p。在逻辑回归这个模型里面是假设为样本为正的概率,为样本为负的概率。整个模型可以描述为


逻辑回归的第二个假设是假设样本为正的概率是


所以逻辑回归的最终形式


2、逻辑回归的损失函数

逻辑回归的损失函数是它的极大似然函数


3、逻辑回归的求解方法

由于极大似然函数无法直接求解,因此需要通过对该函数进行梯度下降来不断逼近最优解。

这里的考点有批梯度下降、随机梯度下降、小批量梯度下降以及其他优化方式。

1.批梯度下降,这种方式可以获得全局最优解,缺点是更新每个参数的时候需要遍历所有的数据,计算量太大,存在冗余数据,当数据量特别大的时候,每个参数的更新会很慢。

2.随机梯度下降,这种方式每遍历一个样本更新一次参数,更新具有高方差。优点在于容易获得更好的局部最优解,但是收敛比较慢。

3.小批量梯度下降,这种方法结合了批梯度下降和随机梯度下降的优点,每遍历一小批数据更新一次参数,减少了参数更新的次数,加快了收敛

上述三种方法还存在很多不足:

首先,是如何对模型选择合适的学习率。学习率保持不变不是一种好的选择。因为刚开始的时候,参数离最优解隔的比较远,需要保持一个较大的学习率尽快逼近最优解。但是,学习到后面的时候,参数和最优解隔得比较近,继续保持之前的学习率容易越过最优点。

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

4、逻辑回归的目的

将数据二分类,提高准确率。

5、逻辑回归如何进行分类

逻辑回归作为回归模型,若要运用到分类上去可以划定一个阈值,大于这个阈值的归为一类,小于这个阈值的归为一类。例如CTR预估任务。一般阈值取0.5,具体可根据任务进行适当的改进。

二、进一步提问

1、逻辑回归的损失函数为何使用极大似然函数

极大似然估计:利用已有的样本信息,反推最有可能导致这些样本结果出现的模型参数值。

损失函数一般有四种:平方损失函数、对数损失函数、HingeLoss0-1损失函数、绝对值损失函数。将极大似然函数取对数后等同于对数损失函数。在逻辑回归这个模型下,对数损失函数的训练求解参数比较快,原因可参考其梯度更新公式:


在这个式子种参数的更新只和x_{j}i,yi有关。和sigmoid本身无关。更新的速度是可以自始至终都比较的稳定。

若选用平方损失函数,梯度更新的速度和sigmoid本身的梯度相关性很强。sigmoid的梯度在它的定义域内的梯度都不大于0.25。这样训练会非常的慢。

从凸函数的角度来看:

一般和平方损失函数(最小二乘法)拿来比较,因为线性回归用的就是平方损失函数,原因就是平方损失函数加上sigmoid的函数将会是一个非凸的函数,不易求解,会得到局部解,用对数似然函数得到高阶连续可导凸函数,可以得到最优解。

2、逻辑回归在训练的过程当中,如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响:

结论:就算有很多特征高度相关也不会影响分类器的效果。

对于特征本身来说,假设只有一个特征,在不考虑采样的情况下,将它重复100遍。训练完以后,数据还是这么多,但是这个特征本身重复了一百遍,实质上将原来的特征分成了100份,每个特征都是原来特征权值的百分之一。

3、为什么要在训练过程中去掉高度相关的特征

结论:去掉高度相关的特征会让模型的可解释性更好

可以大大提高模型的训练速度。如果模型中有很多高度相关的特征,那么就算函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练速度。其次是特征多了,本身就会增大训练的时间。

三、逻辑回归的优缺点

优点:

1.形式简单,模型的可解释性好。根据特征的权值可以看到不同特征对最后结果的影响,某个特征的权重值比较高,那么这个特征最后对结果的影响会比较大。

2.模型效果不错。在工程上常被用来做baseline,若是特征工程做的好,效果也不会太差。

3.训练速度快。分类的时候,计算量仅仅只和特征的数目相关。

4.资源占用小,尤其是内存。因为只需要存储各个维度的特征值。

5.方便输出结果调整。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率分数进行cut off,也就是划分阈值(大于某个阈值的是一类,小于某个阈值的是一类)。

缺点:

1.准确率不会很高。因为模型的形式很简单,很难拟合复杂数据的真实分布。

2.很难处理好数据不平衡问题。举个例子:如果我们对于一个正负样本非常不平衡的问题比如正负样本比 10000:1.我们把所有样本都预测为正也能使损失函数的值比较小。但是作为一个分类器,它对正负样本的区分能力不会很好。

3.处理非线性的数据比较麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据,或者进一步说,处理二分类的问题 。

4.逻辑回归本身无法进行特征筛选。一般可以利用GBDT进行特征筛选再作为逻辑回归的输入。

posted @ 2019-10-23 20:56  天花板掉啦a  阅读(628)  评论(0编辑  收藏  举报