【面试】逻辑回归

逻辑回归的常见面试点总结(博客园)
LR(逻辑回归) 为什么使用sigmoid函数

1. 基本概念

  1. 一句话概括:逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。

    1,逻辑回归的假设;
    2,逻辑回归的损失函数;
    3,逻辑回归的求解方法;
    4,逻辑回归的目的;
    5,逻辑回归如何分类

基本假设
第一个基本假设是假设数据服从伯努利分布。
第二个假设是假设样本为正的概率是$\frac{1}{1+e^{-z}}$

使用sigmoid(假设)函数的原因
假设数据服从伯努利分布,与指数族的最大熵性质有关
[站外图片上传中...(image-70d1b8-1520841059263)]

模型

损失函数/目标函数:对数似然函数

极大似然估计法

求解方法
一般通过对该函数进行梯度下降来不断逼近最优解。梯度下降法、拟牛顿法。
随机梯度下降,批梯度下降,small batch 梯度下降三种方式,这三种方式的优劣以及如何选择。

批梯度下降:会获得全局最优解,缺点是在更新每个参数的时候需要遍历所有的数据,计算量会很大,每个参数的更新都会很慢。
随机梯度下降:每次使用一个样本点更新参数。
小批量梯度下降:结合了sgd和batch gd的优点,每次更新的时候使用n个样本。减少了参数更新的次数,可以达到更加稳定收敛结果。

动量法,Adam优化方法。因为上述方法其实还有两个致命的问题。
第一个是如何对模型选择合适的学习率。
第二个是如何对参数选择合适的学习率。

逻辑回归的目的
二分类问题

如何分类
y值是一个连续的变量。划定一个阈值,y值大于这个阈值的是一类,y值小于这个阈值的是另外一类。阈值具体如何调整根据实际情况选择。一般会选择0.5做为阈值来划分。

2. 为什么要使用极大似然函数作为损失函数?

损失函数一般有四种,0-1损失函数、平方损失函数、绝对值损失函数、对数损失函数,合页损失函数。
将极大似然函数取对数以后等同于对数损失函数。在逻辑回归这个模型下,对数损失函数的训练求解参数的速度是比较的。和sigmod函数本身的梯度是无关的。这样更新的速度是可以自始至终都比较的稳定。
为什么不选平方损失函数的呢?其一是因为如果你使用平方损失函数,你会发现梯度更新的速度和sigmod函数本身的梯度是很相关的。sigmod函数在它在定义域内的梯度都不大于0.25。这样训练会非常的慢。

3.如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响?

如果在损失函数最终收敛的情况下,其实就算有很多特征高度相关也不会影响分类器的效果。
删除这些特征,可解释性好,速度快

4.逻辑回归的优点

形式简单,模型的可解释性非常好。从特征的权重可以看到不同的特征对最后结果的影响,某个特征的权重值比较高,那么这个特征最后对结果的影响会比较大。
模型效果在工程上是可以接受的(作为baseline)
训练速度较快。分类的时候,计算量仅仅只和特征的数目相关。并且逻辑回归的分布式优化sgd发展比较成熟,训练的速度可以通过堆机器进一步提高.
资源占用小,尤其是内存。因为只需要存储各个维度的特征值。
方便输出结果调整。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率分数进行切阈值

5.逻辑回归的缺点

准确率并不是很高。因为形式非常的简单(非常类似线性模型),很难去拟合数据的真实分布。
很难处理数据不平衡的问题。举个例子:如果我们对于一个正负样本非常不平衡的问题比如正负样本比 10000:1.我们把所有样本都预测为正也能使损失函数的值比较小。
处理非线性数据较麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的数据,或者进一步说,处理二分类的问题 。
逻辑回归本身无法筛选特征。

1、LR与SVM的联系和区别

LR和SVM的相同和不同
http://blog.csdn.net/haolexiao/article/details/70191667
https://zhuanlan.zhihu.com/p/28036014

相同点:
1、都是分类算法,且一般处理二分类问题
2、都是监督学习算法
3、两个方法都可以增加不同的正则化项,如l1、l2等等
4、都是判别模型
5、如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。

不同点:
1、损失函数不同:LR采用对数似然函数;
SVM采用的是合页损失函数。这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重
2、SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。所以, 线性SVM不直接依赖于数据分布,分类平面不受一类点影响;LR则受所有数据点的影响,如果数据不同类别strongly unbalance,一般需要先对数据做balancing
3、在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。因为SVM只有少数几个点运算,LR要全部
4、Linear SVM依赖数据表达的距离测度,所以需要对数据先做normalization;LR不受其影响,但是如果要正则的话也要归一化
5、SVM不能产生概率,LR可以产生概率
6、SVM的目标函数就自带正则(目标函数中的1/2||w||^2项),这就是为什么SVM是结构风险最小化算法的原因。而LR必须另外在损失函数上添加正则项。

2.LR和线性回归的区别

逻辑回归和线性回归首先都是广义的线性回归,
其次经典线性模型是平方损失函数,而逻辑回归则是似然函数,
另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的要好。

你可能感兴趣的:(【面试】逻辑回归)