LR的常见面试点总结

一 . 建议不要说自己精通逻辑回归,非常容易被问倒

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

1:逻辑回归的假设,2:逻辑回归的损失函数,3:逻辑回归的求解方法,4:逻辑回归的目的,5:逻辑回归如何分类。这些问题是考核你对逻辑回归的基本了解。

1:逻辑回归的假设: 数据服从伯努利分布,例子:抛硬币。

2 :逻辑回归的损失函数: 极大似然函数

Logistic Regression损失函数,怎么来的

https://www.nowcoder.com/discuss/205260

笔记31页

参考:https://blog.csdn.net/ZhikangFu/article/details/51315542

3:求解方法:极大似然函数无法直接求解,通过对该函数进行梯度下降来不断逼近最优解:有随机梯度下降,批梯度下降,small batch 梯度下降。

3.1 三种方式的优劣以及如何选择最合适的梯度下降方式。

批梯度下降会获得全局最优解,缺点:每个参数更新的时候需要遍历所有的数据,计算量很大,会有很大冗余计算,导致结果是当数据量大的时候,每个参数的更新都会很慢。

随机梯度下降是以高方差频繁更新,优点使得sgd 会跳到新的和潜在更好的局部最优解,缺点是使得收敛到局部最优解的过程更加的复杂。

小批量梯度下降结合了sgd 和batch gd 的优点,每次更新的时候使用n个样本,减少了参数更新的次数,可以达到更加稳定收敛结果。

3.2 Adam 和动量:

对模型选择合适的学习率,模型刚开始学习的时候,此时的参数和最优解的比较远,需要保持一个较大的学习率尽快逼近最优解,但是学习到后面,参数和最优接已经隔的比较近了,还保持最初的学习率,容易错过最优点,在最优点附近来回振荡。

第二是如何对参数选择合适的学习率,在实践中,对每个参数都保持相同的学习率也是不合理的。有的参数更新频繁,可以学习率小一点。

4 逻辑回归的目的:数据二分类

5 如何分类的: y 值是一个连续的变量,逻辑回归的做法是划定一个阈值,y 值大于这个阈值的是一类,y值小于这个阈值是另外一类,阈值具体如何调整要根据实际情况选择,一般0.5。

三. 进一步提问:

1 为什么要使用极大似然函数作为损失函数:

损失函数有4种:损失函数分为4种,平方损失函数,对数损失函数,LingeLoss0-1 损失函数,绝对值损失函数,将极大似然函数取对数以后等同于对数损失函数,在逻辑回归这个模型下,对数损失函数的训练求解参数的速度是比较快的,

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

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

不会影响分类器的效果。对特征来说,在不考虑采样的情况下,重复100遍,训练完后数据还是这么多,但是这个特征本身重复了100遍,实质上将原来的特征分成了100份,每个特征都是原来特征权重值的百分之一。

在随机采样的情况下,其实训练收敛完后,还认为这100个特征和原来的哪一个特征扮演的效果一样,只是中间很多特征的值正负相消了。

3 为什么要去掉相关的特征:让模型的可解释性更好,可以大大提高训练的速度,如果模型当中有很多特征高度相关,就算损失函数本身收敛了,但实际参数是没有收敛的,这样会拉低训练的速度。

4 优缺点:

优点:形式简单,模型的可解释性好,某个特征的权重高,这个特征对结果的影响会比较大。

模型效果不错,可以并行开发。

训练速度快,分类的时候,计算量只和特征的数目相关,并且逻辑回归的分布式优化sgd 发展比较成熟,训练速度可以通过堆机器进一步提高。这样我们可以在短时间内迭代好几个版本的模型。

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

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

缺点:准确率不高,形式很简单,很难去拟合数据的真实分布。

很难处理数据不平衡的问题。例子:正负1000:1,把所有样本都预测为正也能使损失函数的值比较小。

处理非线性数据麻烦,逻辑回归在不引人其他方法的情况下,只能处理线性可分的数据。

无法筛选特征,可以用gbdt 筛选,再用逻辑回归。

5 逻辑回归为什么更适合处理id 类特征。

(1) 对于tree based 模型,处理id 类特征,从树根到树叶的路径,其实就是是否某用户和是否是某商品的联合判断,它已经变成了一个历史记忆。这就是为什么tree-based 模型在稀疏大规模ID 类特征表现不行的原因。

(2)对于逻辑回归模型,一方面它可以处理大规模的数据,可以并行处理,另一方面可以通过L1 正则化进行特征选择。

2 模型在各个维度进行不均匀伸缩后,最优解与原来等价吗?

等不等价要看最终的误差优化函数,如果经过变化后最终的优化函数等价则等价,明白了这一点,那么很容易得到如果对原来的特征乘除某一常数,做加减和取对数都不等价。

3 逻辑回归连续特征离散化的好处。

可以实现非线性,一个变量如果服从对数正态分布,那么对于不同区间,重要度不同,因此我们通过离散化,可以实现对不同区间学习不同的权重。

4 LR 为什么可以用来做CTR 预估。

若把点击的样本作为正例,未点击的样本作为负例,则样本的CTR 就是样本为正例的概率,LR 可以输出样本为正例的概率,故可以解决此问题。

四: 推导和code:https://www.jianshu.com/p/558272375463

 

5 线性回归和逻辑回归的区别

https://www.nowcoder.com/discuss/209251

线性回归要求变量服从正太分布,LR 回归对变量分布没要求

线性回归要求因变量是连续性数值变量,LR 要求因变量是分类型变量

线性:自变量和因变量是线性关系,LR 不要求

LR 是分析因变量取某个值的概率与自变量的关系,线性: 分析因变量与自变量的关系

https://zhuanlan.zhihu.com/p/31233767

6 LR,为啥用的是似然函数不用最小二乘?

6-1 想要让每一个样本的预测都要得到最大的概率,即将所有的样本预测后的概率进行相乘都最大,也就是极大似然函数

6-2 对极大似然函数取对数后相当于对数损失函数,该函数的训练求解参数的速度是比较快的,而且更新速度只和x,y 有关,比较稳定。

6-3 为什么不用平方损失函数

如果使用平方损失函数,梯度更新的速度会和sigmoid 函数的梯度相关,sigmoid 梯度最大为0.25,导致训练速度会很慢。

而且平方损失会导致损失函数是theta 的非凸函数,不利于求解,因为非凸函数存在很多局部最优解。

https://www.zhihu.com/question/24900876

最小二乘和极大似然是目标函数,梯度下降是优化算法,机器学习的核心是一个model ,一个loss function,在加上一个优化算法,一个目标函数可以用不同的优化算法,不同的目标函数也可以用相同的优化算法,所以最小二乘和极大似然不是算法,

极大似然和最小二乘也不是对立的。

最小二乘是从函数形式上来看的,极大似然是从概率意义上来看的,事实上,最下二乘可以由高斯噪声假设+ 极大似然估计推导出来,当极大似然估计还可以推导出其他的loss function,比如logistic 回归中,loss function 是交叉熵,

LR 中loss 为什么是交叉熵而不是最小二乘:

(1)交叉熵和最小二乘都是通过极大似然估计推断出来的,区别在于logistic 回归,预测的结果是在于分类的概率,而线性回归预测的结果output,结果的物理意义不同,所以求似然概率时他们似然概率的形式也就不同,log 一下,就会发现他们的损失函数不同,

(2) 最小二乘法只能解决线性最小二乘问题,而logistic回归的损失函数不是线性最小二乘问题,就好比你用十字交叉法解三次方程一样。

https://blog.csdn.net/aliceyangxi1987/article/details/80532586

7 线性回归为何要用最小二乘不用极大似然

简单的说,是因为使用平方形式的时候,使用的是"最小二乘法“” 思想,二乘是指用平方来度量观测点与点估计点的距离(远近),“最小” 指的是参数值要保证各个观测点与估计点的距离的平方和达到最小。

最小二乘法以估计值与观测值的平方作为损失函数,在误差服从正太分布的前提下,与极大似然估计的思想在本质上是相同的,通常认为e 服从正太分布,通过对极大似然公式的推导,结果真的是最小二乘的式子。

https://blog.csdn.net/Beyond_2016/article/details/80030414

8 逻辑回归LR的特征为什么要先离散化

1)稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展

2) 离散化后的特征对异常数据有很强的鲁棒性,比如一个特征是年龄>30 是1,否则是0,如果没有离散化,一个异常数据"年龄 300 岁" 会给模型造成很大的干扰。

3) LR 属于广义线性模型,表达能力受限,单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合。

4) 离散化后可以进行特征交叉,由M+N 个变量变成M*N 个变量,进一步引入非线性,提升表达能力

5) 特征离散化后,模型更加稳定,比如如果对用户年龄离散化,20-30 作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人,

计算简单,简化模型,增强模型的泛化能力,不易受噪声的影响。

https://blog.csdn.net/yang090510118/article/details/39478033

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值