文章目录
- 1. Logistic回归与线性回归的区别与联系?
- 2. Logistic回归有哪些基本假设?
- 3. Logistic回归的损失函数?
- 4. Logistic回归损失函数的求解方法?
- 5. Logistic回归是如何进行分类的?
- 6. Logistic回归为什么要用极大似然函数作为损失函数?
- 7. 为什么在Logistic回归训练的过程中要将高度相关的特征去掉?
- 8. Logistic回归有哪些优缺点?
- 9. LR与SVM的区别与联系?
- 10. Logistic回归如何实现多分类?
一句话概括: 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。
包含了5个点 : 1:逻辑回归的假设,2:逻辑回归的损失函数,3:逻辑回归的求解方法,4:逻辑回归的目的,5:逻辑回归如何分类。
1. Logistic回归与线性回归的区别与联系?
区别:
最大区别在于它们的因变量不同,Logistic回归与现行回归属于同一家族:广义线性模型。
- (1)线性回归处理的是回归问题,逻辑回归处理的是分类问题,这是本质区别;
- (2)线性回归要求因变量是连续型的,Logistic回归要求因变量是分类变量(离散变量);
- (3)线性回归要求变量服从正态分布,Logistic回归对变量分布无要求;
- (4)线性回归要求自变量和因变量呈线性关系,Logistic并不要求;
- (5)Logistic回归是分析因变量取某个值的概率与自变量的关系,而线性回归是直接分析因变量与自变量的关系;
更详细的区别如下图,参考学术群里结果:
联系: - (1)二者都使用了极大似然估计来对训练样本进行建模
- 线性回归使用最小二乘法,实际上就是在自变量x与超参数θ确定,因变量y服从正态分布的假设下,使用极大似然估计的一个化简;而逻辑回归中通过对似然函数的学习,得到最佳参数θ;
- (2)二者在求解超参数的过程中,都可以使用梯度下降的方法,这也是监督学习中一个常见的相似之处。
2. Logistic回归有哪些基本假设?
逻辑回归的第一个基本假设是假设数据服从伯努利分布。
伯努利分布有一个简单的例子是抛硬币,抛中为正面的概率是 p p p,抛中为负面的概率是 1 − p 1−p 1−p。
在逻辑回归里假设 h θ ( x ) h_θ(x) hθ(x) 为样本为正的概率, 1 − h θ ( x ) 1−h_θ(x) 1−hθ(x)为样本为负的概率,那么模型可以描述为:
h θ ( x ; θ ) = p h_\theta\left(x;\theta \right )=p hθ(x;θ)=p
逻辑回归的第二个假设是假设样本为正的概率是:
p = 1 1 + e − θ T x p=\frac{1}{1+e^{-\theta^{T} x}} p=1+e−θTx1
所以逻辑回归的最终形式 :
h θ ( x ; θ ) = 1 1 + e − θ T x h_\theta\left(x;\theta \right )=\frac{1}{1+e^{-\theta^{T} x}} hθ(x;θ)=1+e−θTx1
3. Logistic回归的损失函数?
4. Logistic回归损失函数的求解方法?
二元逻辑回归的损失函数(极大似然函数)极小化的求解,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,等牛顿法等,最常用的是梯度下降来不断逼近最优解。
梯度下降法:随机梯度下降(SGD)、批量梯度下降(BGD)、小批量梯度下降(MBGD)。
(1)批量梯度下降: θ i = θ i − α ∑ j = 0 m ( h θ ( x 0 ( j ) , x 1 ( j ) , . . . x n ( j ) ) − y j ) x i ( j ) \theta_i = \theta_i - \alpha\sum\limits_{j=0}^{m}(h_\theta(x_0^{(j)}, x_1^{(j)}, ...x_n^{(j)}) - y_j)x_i^{(j)} θi=θi−αj=0∑m(hθ(x0(j),x1(j),...xn(j))−yj)xi(j)
BGD会获得全局最优解,缺点是在更新每个参数的时候需要遍历所有的数据,计算量会很大,并且会有很多的冗余计算,导致的结果是当数据量大的时候,每个参数的更新都会很慢。
(2)随机梯度下降: θ i = θ i − α ( h θ ( x 0 ( j ) , x 1 ( j ) , . . . x n ( j ) ) − y j ) x i ( j ) \theta_i = \theta_i - \alpha (h_\theta(x_0^{(j)}, x_1^{(j)}, ...x_n^{(j)}) -y_j)x_i^{(j)} θi=θi−α(hθ(x0(j),x1(j),...xn(j))−yj)xi(j)
SGD下降法由于每次仅仅采用一个样本来迭代,训练速度很快,但仅仅用一个样本决定梯度方向导致解很有可能不是最优,一次迭代一个样本导致迭代方向变化很大,不能很快的收敛到局部最优解。
(3)小批量梯度下降: 对于m个样本,我们采用n个样子来迭代,1<n<m。一般可以取n=10。
θ i = θ i − α ∑ j = t t + n − 1 ( h θ ( x 0 ( j ) , x 1 ( j ) , . . . x n ( j ) ) − y j ) x i ( j ) \theta_i = \theta_i - \alpha \sum\limits_{j=t}^{t+n-1}(h_\theta(x_0^{(j)}, x_1^{(j)}, ...x_n^{(j)}) - y_j)x_i^{(j)} θi=θi−αj=t∑t+n−1(hθ(x0(j),x1(j),...xn(j))−yj)xi(j)
MBGD每次更新的时候使用n个样本。减少了参数更新的次数,可以达到更加稳定收敛结果。
5. Logistic回归是如何进行分类的?
逻辑回归作为一个回归(也就是y值是连续的),如何应用到分类上去呢。y值确实是一个连续的变量。逻辑回归的做法是划定一个阈值,y值大于这个阈值的是一类,y值小于这个阈值的是另外一类。阈值具体如何调整根据实际情况选择。一般会选择0.5做为阈值来划分。
6. Logistic回归为什么要用极大似然函数作为损失函数?
损失函数一般有四种:平方损失函数,对数损失函数,HingeLoss0-1损失函数,绝对值损失函数。
将极大似然函数取对数以后等同于对数损失函数。在逻辑回归模型中,对数损失函数的训练求解参数的速度是比较快的,求解参数式子如下:
θ j = θ j − ( y i − h θ ( x i ; θ ) ) ∗ x j i \theta _j=\theta _j-\left ( y^{i} -h_\theta (x^{i};\theta ) \right )\ast x^{i}_j θj=θj−(yi−hθ(xi;θ))∗xji
这个式子的更新速度只和 x j i x^i_j xji, y i y^i yi相关。和sigmod函数本身的梯度是无关的。这样更新的速度是可以自始至终都比较的稳定。如果你使用平方损失函数,你会发现梯度更新的速度和sigmod函数本身的梯度是很相关的。sigmod函数在它在定义域内的梯度都不大于0.25。这样训练会非常的慢。
7. 为什么在Logistic回归训练的过程中要将高度相关的特征去掉?
(1)去掉高度相关的特征会让模型的可解释性更好。
(2)可以大大提高训练的速度。如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。其次是特征多了,本身就会增大训练的时间。
8. Logistic回归有哪些优缺点?
优点:
(1)训练速度较快,分类的时候,计算量仅仅只和特征的数目相关;
(2)简单易理解,模型的可解释性非常好,从特征的权重可以看到不同的特征对最后结果的影响;
(3)适合二分类问题,不需要缩放输入特征;
(4)内存资源占用小,因为只需要存储各个维度的特征值;
缺点:
(1)不能用Logistic回归去解决非线性问题,因为Logistic的决策面试线性的;
(2)对多重共线性数据较为敏感;
(3)很难处理数据不平衡的问题;
(4)准确率并不是很高,因为形式非常的简单(非常类似线性模型),很难去拟合数据的真实分布;
(5)逻辑回归本身无法筛选特征,有时会用gbdt来筛选特征,然后再上逻辑回归。
参考资料:
逻辑回归的常见面试点总结
9. LR与SVM的区别与联系?
(1)联系:
- LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题);
- 两个方法都可以增加不同的正则化项,如L1、L2等等。所以在很多实验中,两种算法的结果是很接近的。
(2)区别:
- LR是参数模型,SVM是非参数模型。
- 从目标函数来看,区别在于LR采用的是Logistical Loss,SVM采用的是hinge loss。这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重。
- SVM的处理方法是只考虑Support Vectors,也就是和分类最相关的少数点,去学习分类器。而LR通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重。
- LR相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
- LR能做的 SVM能做,但可能在准确率上有问题,SVM能做的LR有的做不了。
10. Logistic回归如何实现多分类?
(1)修改Logistic回归的损失函数,使用softmax函数构造模型解决多分类问题,softmax分类模型会有相同于类别数的输出,输出的值为对于样本属于各个类别的概率,最后对于样本进行预测的类型为概率值最高的那个类别。
(2)根据每个类别都建立一个二分类器,本类别的样本标签定义为0,其它分类样本标签定义为1,则有多少个类别就构造多少个LR分类器,这种方法为最常用的one-vs-rest,简称OvR。另一种多元逻辑回归的方法是Many-vs-Many(MvM),它会选择一部分类别的样本和另一部分类别的样本来做逻辑回归二分类。
若所有类别之间有明显的互斥则使用softmax分类器,若所有类别不互斥有交叉的情况则构造相应类别个数的逻辑回归分类器。