zoukankan      html  css  js  c++  java
  • svm、logistic regression对比

    相同点:都是线性分类算法

    不同点:

    1、损失函数不同

    LR:基于“给定x和参数,y服从二项分布”的假设,由极大似然估计推导

     

    SVM: hinge loss + L2 regularization的标准表示,基于几何间隔最大化原理推导

    $sum^N_{i=1}[1 - y_i(w*x_i + b)]_+ + lambda ||w||^2$

    这两个损失函数的目的都是增加对分类影响较大的数据点的权重,减少与分类关系较小的数据点的权重SVM的处理方法是只考虑support vectors($W^*$,$b^*$只依赖于训练数据中对应于$a_i > 0$的样本点,其他样本点对w,b没有影响,将训练数据中对应于$a_i > 0$的实例点称为支持向量。由KKT对偶互补条件可知,支持向量一定在间隔边界上),也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面($wx = 0$)较远的点的权重,相对提升了与分类最相关的数据点的权重
    w*x可以看做是函数距离,当||w||=1时,w*x就是几何距离,即样本点到分类平面的距离,Sigmoid函数是有上下界的,而w*x的范围是(负无穷,正无穷),也就是说随着自变量(的绝对值)的增加,Sigmoid函数的值越来越接近上下界,不能同等程度地反映自变量的变化幅度

    2、支持向量机只考虑局部的间隔边界附近的点,而逻辑回归考虑全局(远离的点对边界线的确定也起作用)。支持向量机改变非支持向量样本并不会引起分离超平面的变化

    3、SVM的损失函数自带正则(损失函数中的1/2||w||^2项),这就是为什么SVM是结构风险最小化算法的原因!!!而LR必须另外在损失函数上添加正则项!!!结构风险最小化,意思就是在训练误差和模型复杂度之间寻求平衡,防止过拟合

    4、优化方法:LR一般基于梯度下降法, SVM基于SMO

    5、对于非线性可分问题,SVM的扩展性比LR强


    如何选择两个模型? 

    假设: n = 特征数量,m = 训练样本数量

    1)如果n相对于m更大,比如 n = 10,000,m = 1,000,则使用lr

    理由:特征数相对于训练样本数已经够大了,使用线性模型就能取得不错的效果,不需要过于复杂的模型

    2)如果n较小,m比较大,比如n = 10,m = 10,000,则使用SVM(高斯核函数)

    理由:在训练样本数量足够大而特征数较小的情况下,可以通过使用复杂核函数的SVM来获得更好的预测性能,而且因为训练样本数量并没有达到百万级,使用复杂核函数的SVM也不会导致运算过慢;

    3)如果n较小,m非常大,比如n = 100, m = 500,000,则应该引入/创造更多的特征,然后使用lr或者线性核函数的SVM

    理由:因为训练样本数量特别大,使用复杂核函数的SVM会导致运算很慢,因此应该考虑通过引入更多特征,然后使用线性核函数的SVM或者lr来构建预测性更好的模型。



  • 相关阅读:
    树形dp-CF-337D. Book of Evil
    (step5.1.2)hdu 2473(Junk-Mail Filter——并查集)
    8种排序算法--直接选择排序
    iPhone之为UIView设置阴影(CALayer的shadowColor,shadowOffset,shadowOpacity,shadowRadius,shadowPath属性)
    摄像头、麦克风、扬声器测试程序(附源码)
    HashMap的实现原理
    第三代搜索推出网民评价系统,seo末日还会远吗?
    SQL Server 深入解析索引存储(聚集索引)
    罗辑思维现象透析
    哥德巴赫猜想证明
  • 原文地址:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/7279775.html
Copyright © 2011-2022 走看看