外贸购物网站,全国建设部网站证书查询,合肥网站建设是什么,wordpress询盘插件这个问题在最近面试的时候被问了几次#xff0c;让谈一下Logistic回归#xff08;以下简称LR#xff09;和SVM的异同。由于之前没有对比分析过#xff0c;而且不知道从哪个角度去分析#xff0c;一时语塞#xff0c;只能不知为不知。 现在对这二者做一个对比分析#xf… 这个问题在最近面试的时候被问了几次让谈一下Logistic回归以下简称LR和SVM的异同。由于之前没有对比分析过而且不知道从哪个角度去分析一时语塞只能不知为不知。 现在对这二者做一个对比分析理清一下思路。 相同点 1、LR和SVM都是分类算法曾经我认为这个点简直就是废话了解机器学习的人都知道。然而虽然是废话也要说出来毕竟确实是一个相同点。 2、如果不考虑使用核函数LR和SVM都是线性分类模型也就是说它们的分类决策面是线性的。 其实LR也能使用核函数但我们通常不会在LR中使用核函数只会在SVM中使用。原因下面会提及。 3、LR和SVM都是监督学习方法。 监督学习方法、半监督学习方法和无监督学习方法的概念这里不再赘述。 4、LR和SVM都是判别模型。 判别模型和生成模型的概念这里也不再赘述。典型的判别模型包括K近邻法、感知机、决策树、Logistic回归、最大熵、SVM、boosting、条件随机场等。典型的生成模型包括朴素贝叶斯法、隐马尔可夫模型、高斯混合模型。 5、LR和SVM在学术界和工业界都广为人知并且应用广泛。感觉这个点也比较像废话 不同点 1、loss function不一样 LR的loss function是 SVM的loss function是 LR基于概率理论通过极大似然估计方法估计出参数的值然后计算分类概率取概率较大的作为分类结果。SVM基于几何间隔最大化把最大几何间隔面作为最优分类面。 2、SVM只考虑分类面附近的局部的点即支持向量LR则考虑所有的点与分类面距离较远的点对结果也起作用虽然作用较小。 SVM中的分类面是由支持向量控制的非支持向量对结果不会产生任何影响。LR中的分类面则是由全部样本共同决定。线性SVM不直接依赖于数据分布分类平面不受一类点影响LR则受所有数据点的影响如果数据不同类别strongly unbalance一般需要先对数据做balancing。 3、在解决非线性分类问题时SVM采用核函数而LR通常不采用核函数。 分类模型的结果就是计算决策面模型训练的过程就是决策面的计算过程。在计算决策面时SVM算法中只有支持向量参与了核计算即kernel machine的解的系数是稀疏的。在LR算法里如果采用核函数则每一个样本点都会参与核计算这会带来很高的计算复杂度所以在具体应用中LR很少采用核函数。 4、SVM不具有伸缩不变性LR则具有伸缩不变性。 SVM模型在各个维度进行不均匀伸缩后最优解与原来不等价对于这样的模型除非本来各维数据的分布范围就比较接近否则必须进行标准化以免模型参数被分布范围较大或较小的数据影响。LR模型在各个维度进行不均匀伸缩后最优解与原来等价对于这样的模型是否标准化理论上不会改变最优解。但是由于实际求解往往使用迭代算法如果目标函数的形状太“扁”迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的模型最好也进行数据标准化。 5、SVM损失函数自带正则项因此SVM是结构风险最小化算法。而LR需要额外在损失函数上加正则项。 所谓结构风险最小化意思就是在训练误差和模型复杂度之间寻求平衡防止过拟合从而达到真实误差的最小化。未达到结构风险最小化的目的最常用的方法就是添加正则项。 参考博客 http://www.cnblogs.com/bentuwuying/p/6616761.html转载于:https://www.cnblogs.com/Peyton-Li/p/7620081.html