LR与SVM的相同点:
- *LR和SVM都是分类算法
- *如果不考虑核函数,LR和SVM都是线性分类算法,模型求解的就是一个超平面。
- *LR和SVM都是监督学习算法
- *LR和SVM都是判别模型
–判别模型会生成一个表示p(y|x)的判别函数或直接学习决策函数f(x),
–生成模型先计算联合p(y,x)然后通过贝叶斯公式转化为条件概率。
–常见的判别模式:KNN、SVM、LR,常见的生成模型有:朴素贝叶斯,隐马尔可夫模型。
LR和SVM的不同:
1.本质上是其loss function不同
逻辑回归采用的是logistical loss,svm采用的是hinge loss。
可以看出,二者的唯一区别就是对于单个数据点,计算损失的方法不同。
Logistic regression中的
称为log loss;
而SVM中的
称为hinge loss。
可以看出,二者的唯一区别就是对于单个数据点,计算损失的方法不同。
Logistic regression中的
而SVM中的
可以看出,二者的唯一区别就是对于单个数据点,计算损失的方法不同。
Logistic regression中的
而SVM中的
2.SVM不直接依赖数据分布,分类平面不受一类点影响(正确分类的点);LR则受所有数据点的影响,如果数据不同类别strongly unbalance,一般需要先对数据做balancing。
3.LR可以给出每个点属于每一类的概率,而SVM是非概率的
4.在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。
SVM算法里只有少数几个代表支持向量的样本参与了计算,也就是只有少数几个样本需要参与核计算,LR每个样本点都必须参与核计算,这带来的计算复杂度是相当高的。
3.LR可以给出每个点属于每一类的概率,而SVM是非概率的
4.在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。
SVM算法里只有少数几个代表支持向量的样本参与了计算,也就是只有少数几个样本需要参与核计算,LR每个样本点都必须参与核计算,这带来的计算复杂度是相当高的。
5.SVM是结构风险最小化算法,LR必须另外在损失函数上添加正则项。
6.线性SVM依赖数据表达的距离测度,所以需要对数据先做normalization,LR不受其影响。
6.线性SVM依赖数据表达的距离测度,所以需要对数据先做normalization,LR不受其影响。
同样的线性分类情况下,如果异常点较多的话,无法剔除,首先LR,LR中每个样本都是有贡献的,最大似然后会自动压制异常的贡献,SVM+软间隔对异常还是比较敏感,因为其训练只需要支持向量,有效样本本来就不高,一旦被干扰,预测结果难以预料。