目录
1.逻辑回归的原理和推导
2.逻辑回归相关面试题
逻辑回顾假设数据服从伯努利分布,则P(y|X)---在已知x的情况下y服从伯努利分布,通过极大化似然函数的方法,运用梯度下降或者拟牛顿法等优化方法来求解参数,以达到将数据二分类的目的。
伯努利分布:是一个离散型概率分布,若成功,则随机变量取值1;若失败,随机变量取值为0.成功概率记为p,失败为q=1-p
逻辑回归有两个假设:第一个是假设数据服从伯努利分布;第二个假设是假设样本为正的概率由sigmoid函数计算,即.
首先,sigmoid函数为:
它有一个非常好的性质:
逻辑回归说白了就是线性回归的形式加入sigmoid函数中:
其中h的值越小,则分类为0的概率越高,否则分类问1的概率越高,靠近临界点则分类准确率下降。
需要注意,这里的h表示的是输出结果为1的概率而不是0.
上面两个式子合并得到:
其中y的取值只能是0或者1.
得到了y的概率分布函数表达式,我们就可以用似然函数最大化来求解我们需要的模型系数θ。极大似然函数为:
其中m为样本的个数,因为这里是极大似然式需要进行梯度上升法求解最大值,不过比较常见的是梯度下降法,所以对上式做一个变形得到:
分别对每一个参数θ求一阶导,可以得到:
梯度下降法公式:
第j个权重系数θj=第j个权重系数θj-学习率*(损失J(θ)关于θj的一阶导数),将上面的损失函数J(θ)的公式带入可得:
α是学习率,n是特征数量,m是样本量。
mini-batch就是这里的m变成了batch里的样本数量而已。
为什么lr或者神经网络等使用梯度下降法求解的算法要提前对数据做标准化?
https://www.cnblogs.com/silence-tommy/p/7113498.html
机器学习——标准化/归一化的目的和作用_归一化处理的目的和意义_o_Eagle_o的博客-CSDN博客
基于上面的链接,我们来举个例子说明。
假定为预测房价的例子,自变量为面积,房间数两个,因变量为房价。那么可以得到的公式为:
其中x1代表房间数,θ1代表变量x1前面的系数。其中x2代表面积,θ2代表变量x2前面的系数。
我们来画出数据是否归一化的最优解寻解过程。
未归一化:
归一化之后:
我们在寻找最优解的过程也就是在使得损失函数最小的θ1,θ2.上述两幅图就是损失函数的等高线。我们很容易看出,当数据没有归一化的时候,面积数的范围可以从0~1000,房间数的范围一般为0~10,可以看出面积数的取值范围大于房间数。
这样造成的影响就是在画损失函数的时候,数据没有归一化的表达式,可以为:
造成图像的等高线为类似椭圆形状,最优解的寻优过程就是像未归一化的那个图所示。
而数据归一化后,损失函数的表达式可以表示为:
其中变量的前面系数几乎一样,则图像的等高线为类似圆形形状,最优解的寻优过程归一化的那个图所示。
总而言之,从上可以看出,数据归一化后,消除了不同特征的量纲的影响,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解。否则量纲大的特征的梯度更新量大,量纲校的特征的梯度更新量小,特征之间的收敛速度差别大导致整体的收敛速度慢(因为更新快的特征要等更新慢的特征的权重系数收敛),这就是数据为什么要归一化的原因。
逻辑回归是线性模型还是非线性模型?
classification - Why is logistic regression a linear classifier? - Cross Validated
这个涉及到我们怎么去定义线性还是非线性,如果从输出的角度来看,逻辑回归的输出是非线性的数据,经过sigmoid映射之后的输出值是非线性的:
但是如果我们从它的决策面来说,它又是超平面而不是曲面:
上述现象的原因是:
sigmoid函数就是一个纯粹的数学变换没有任何的可学习参数,我们的决策是直接根据右边的式子得到的,sigmoid只是负责映射成非线性的输出,直观的说就是我们的逻辑回归的输出在进入sigmoid函数之前是图2这样的线性的值,经过sigmoid之后称为非线性的值,所以从决策平面的来说逻辑回归是线性模型,从输出来看逻辑回归是非线性模型,不过一般是从决策平面来定义线性和非线性的,所以我们还是将逻辑回归作为线性模型。
逻辑回归可以用在线性不可分吗?那怎么才能让逻辑回归能用?
逻辑回归的决策边界时平面或者超平面,并不能用在非线性关系的拟合上,如果要用逻辑回归来拟合非线性关系有这两种方法:
1.提高特征的维度,比如ctr领域常见的特征交叉组合,lr+gbdt增大有效特征的维度等方式,根据covar定理,维度越高则线性可分的概率越高,实际上目的和核技巧类似,把问题转化到高维空间上去以找到某一个决策的超平面,实现原始问题的线性可分。
2.kernel trick,核技巧。
逻辑回归中损失函数的实际意义?
直观的,根据极大似然法将这些条件概率连乘取对数取反得到逻辑回归的损失函数,意义在于希望能够最大化这些样本出现的概率,极大似然本身的假设就是真实存在的样本出现的概率最大,而相对应的参数就是能够使得这些数据出现概率最大的参数,取反则变成希望真实存在的样本出现的概率的负数最小(也就是我们上面的损失函数的公式)
推导逻辑回归的迭代公式:直接背下面这个公式面试的时候过去默写把。(其实就是第一个逻辑回回归的原理,不过这里是以梯度上升法来做的,我们实际用梯度下降法来做)
逻辑函数如下:
这个式子表示正样本,也就是常见的标签为1的样本的概率。
样本分到每个类的概率如下(即logisitic分布):
似然函数如下:
似然函数取对数(一般为了使用梯度下降法会再取负使得原始的问题从求极大值变成求极小值):
求导:
求导利用如下性质:
得到递推公式如下:
逻辑回归有什么特点(逻辑回归的思想和过程)?如果使用逻辑回归,你是如何提升模型性能的(如何训练得到最优参数)?
逻辑回归假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。
特征离散化、特征交叉、调参(学习率和正则化系数等)、gbdt提取高阶特征、使用正则化等。
逻辑回归为什么用极大似然函数作为损失函数?
一般和平方损失函数(最小二乘法)拿来比较,因为线性回归用的是平方损失函数,原因就是平方损失函数加上sigmoid的函数将会是一个非凸的函数,不易求解,会得到局部解,用对数似然函数得到高阶连续可导凸函数,可以得到最优解。
其次,是因为对数损失函数更新起来很快,因为只和x,y有关,和sigmoid本身的梯度无关。
逻辑回归在训练过程当中,如果有很多的特征高度相关或者说有一个特征重复了100遍,会造成怎样的影响
先说结论,如果在损失函数最终收敛的情况下,其实就算有很多特征高度相关也不会影响分类器的效果。
但是对特征本身来说的话,假设只有一个特征,在不考虑采样的情况下,现在将它重复100遍。训练完以后,数据还是这么多,但是这个特征本身重复了100遍,实质上将原来的特征分成了100份,每一个特征都是原来特征权重值的百分之一。
为什么我们还是会在训练的过程当中将高度相关的特征去掉
去掉高度相关的特征会让模型的可解释性更好。
可以大大提高训练的速度。如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。其次是特征多了,本身就会增大训练的时间。
LR与线性回归的区别与联系
逻辑回归是一种广义线性模型,它引入了sigmoid函数,是非线性输出,但本质上还是一个线性回归模型,因为除去sigmoid函数映射关系,其他的算法都是线性回归的。
逻辑回归和线性回归首先都是广义的线性回归,在本质上没多大区别,区别在于逻辑回归多了个sigmoid函数,使样本映射到[0,1]之间的数值,从而来处理分类问题。另外逻辑回归是假设变量服从伯努利分布,线性回归假设变量服从高斯分布。逻辑回归输出的是离散型变量,用于分类,线性回归输出的是连续性的,用于预测。逻辑回归是用最大似然法去计算预测函数中的最优参数值,而线性回归用最小二乘法对自变量关系进行拟合。
连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果?例如ctr预估中,特征大多数是离散的,这样做的好处在哪里?
在工业界,很少直接将连续值作为逻辑回归模型的特征输入,而是将连续特征离散化为一系列0,1特征交给逻辑回归模型,这样做的优势有以下几点:
逻辑回归的优缺点
优点:
缺点:
逻辑回归的适用场景(在什么情况下你会选择用逻辑回归):
【面经】关于逻辑回归,面试官们都怎么问_zenRRan的博客-CSDN博客
逻辑回归面经总结,cheat sheet_牛客网
https://www.cnblogs.com/lian1995/p/11728848.html
关于逻辑回归,面试官都怎么问_kaiyuan_sjtu的博客-CSDN博客
逻辑回归算法面经 - 知乎
逻辑回归面经整理——from牛客 - 知乎