机器学习面试之LR与SVM的异同

一、逻辑回归LR

(1)模型表达式:

与单个神经元加Sigmoid激活函数的表达与效果相同

(2)损失函数:

二分类交叉熵损失

(3)参数估计:

损失函数的求导


梯度下降

(4)关于LR的一些提问:

  (a)逻辑回归为什么使用极大似然函数作为损失函数?

极大似然函数与对数损失等价,使得最终的梯度更新与Sigmoid函数无关,更新速度稳定。而平方损失会导致梯度更新的速度很慢。

  (b)如果特征高度相关或者一个特征重复多遍会有什么影响?

如果在损失函数最终收敛的情况下,不会影响最终的效果。但是对于特征本身,假设只有一个特征,不重复与重复多遍,训练结束后,后者这些特征的权重和将会等于前者。

  (c)为什么我们还是要将高度相关的特征去掉?

首先可以让模型的可解释性更好。其次可以提高训练速度,因为如果有特征高度相关,就算损失函数本身收敛,但实际参数并没有收敛,会拉低训练速度。并且特征多了,训练时间自然会提高。

二、LR与SVM的异同

(1)相同点:LR与SVM都是监督学习模型中的线性分类算法。

(2)不同点:

  (a)本质上是损失函数不同

合页损失和对数损失
两种损失的比较

总而言之,SVM只考虑边界上的点(支持向量)带来的影响,而LR考虑了数据集中所有点的影响。然而他们的目的却相同,因为LR通过非线性映射,降低离分类面远的点的权重。

(b)对数据分布的依赖

SVM增加新的点
LR增加新的点

SVM不直接依赖数据的分布,分类平面受一类点的影响;LR受所有数据点的影响,数据需要balance。

  (c)解决非线性问题

SVM解决非线性问题一般采用核函数,因为只有少数几个点参与计算。而LR通常不使用核函数,因为所有点都需要计算,计算复杂度很高。

  (d)SVM依赖数据表达的测度

(参考:https://www.zhihu.com/question/26768865/answer/34078149)

Linear SVM比较依赖penalty的系数(故实验中需要validation)和数据表达空间的测度,而(带正则化)LR比较依赖对参数做L1正则化的系数。由于他们都是线性分类器,在低维空间overfitting的能力都比较有限,在高维空间中LR会更加稳定,因为Linear SVM在计算margin有多宽时依赖距离测度(如果测度不好,那么最大化边界将没有意义;这种现象在高维空间更明显)。所以使用Linear SVM之前需要对数据做normalization,而LR不需要或者不敏感。

注:不带正则的LR,对其做normalization的目的是为了方便选择优化的起始值,不代表最后的效果与normalization有关。如果用最大熵模型解释(http://www.win-vector.com/dfiles/LogisticRegressionMaxEnt.pdf),实际优化目标与距离测度无关,其线性约束是可以被放缩的。

注2:Linear SVM在小数据集上表现好于LR,而在大规模数据上,LR应用更广泛。

  (e)SVM损失函数自带正则

SVM是结构风险最小化,而不带正则的LR是经验风险最小化。

你可能感兴趣的:(机器学习面试之LR与SVM的异同)