一、逻辑回归LR
(1)模型表达式:
(2)损失函数:
(3)参数估计:
(4)关于LR的一些提问:
(a)逻辑回归为什么使用极大似然函数作为损失函数?
极大似然函数与对数损失等价,使得最终的梯度更新与Sigmoid函数无关,更新速度稳定。而平方损失会导致梯度更新的速度很慢。
(b)如果特征高度相关或者一个特征重复多遍会有什么影响?
如果在损失函数最终收敛的情况下,不会影响最终的效果。但是对于特征本身,假设只有一个特征,不重复与重复多遍,训练结束后,后者这些特征的权重和将会等于前者。
(c)为什么我们还是要将高度相关的特征去掉?
首先可以让模型的可解释性更好。其次可以提高训练速度,因为如果有特征高度相关,就算损失函数本身收敛,但实际参数并没有收敛,会拉低训练速度。并且特征多了,训练时间自然会提高。
二、LR与SVM的异同
(1)相同点:LR与SVM都是监督学习模型中的线性分类算法。
(2)不同点:
(a)本质上是损失函数不同
总而言之,SVM只考虑边界上的点(支持向量)带来的影响,而LR考虑了数据集中所有点的影响。然而他们的目的却相同,因为LR通过非线性映射,降低离分类面远的点的权重。
(b)对数据分布的依赖
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是经验风险最小化。