这个问题是我在面试过程中多次被问到的问题,今天整理出来:
一、相同点:
1.LR和SVM都是分类算法
2.若不考虑核函数,LR和SVM都是线性分类算法(它们的分类决策都是找到一个超平面来划分样本)
3.LR和SVM都是监督学习算法
4.LR和SVM都是判别模型(判别模型会生成一个P(Y|X)的判别函数,而生成模型先计算联合概率P(Y,X),然后通过贝叶斯公式转化为条件概率)
5.LR和SVM在学术界和工业界都广为认知并且引用广泛
二、不同点:
1.本质上是它们俩loss function不同:
LR:基于概率理论,样本为1 的概率可以用sigmoid函数表示
SVM:基于集合间隔最大化原理,认为存在最大几个分类面为最优分类面
2.支持向量机只考虑局部边界线附近的点(支持向量),LR受所有的数据点影响
3.非线性问题是,SVM采用核函数机制,而LR通常会采用特征构造,组合交叉特征引入非线性
4.线性SVM依赖数据表达的距离测度,所以需要对数据先做归一化,LR不受影响
5.SVM的损失函数自带正则化项,这是SVM是结构化风险最小化算法的原因,而LR必须另外在损失幻术上添加正则化项