Comparing between SVM and LR

SVM与LR比较

1.1 相同点

  1. LR与SVM都属于线性分类模型
           当LR中的标签是离散的,则LR可被认为是分类算法;当不考虑核函数时,原始的LR与SVM都是线性分类器。
  2. LR与SVM都属于判别模型
           判别模型可以生成一个表示P(Y|X)的判别函数(预测模型),而生成模型会先计算联合概率P(X,Y),然后再利用贝叶斯公式计算条件概率。 换句话说,判别模型不关心数据是怎么来的,只关心数据之间的差别,然后利用数据间差别进行分类。而生成模型关注数据是怎么来的,然后产生生成假设,根据假设判断数据最有可能来自哪个类别。
  3. LR与SVM都属于监督学习算法

1.2 不同点

  1. 本质(损失函数)不同
    LR的损失函数为 J ( θ ) = 1 n i = 1 n [ y i log h θ ( x i ) + ( 1 y i ) log ( 1 h θ ( x i ) ) ] . J(\theta)=\frac{1}{n}\sum_{i=1}^n[y_i\log h_{\theta}(x_i)+(1-y_i)\log(1-h_{\theta}(x_i))].
    SVM的损失函数为 L ( w , α , b ) = 1 2 ω 2 i = 1 n α i [ y i ( ω T x i + b ) 1 ] . \mathcal{L}(w,\alpha,b)=\frac{1}{2}|\omega|^2-\sum_{i=1}^n\alpha_i[y_i(\omega^Tx_i+b)-1].
           不同损失函数代表着不同的假设前提即分类原理。LR是基于概率理论,利用极大似然估计的方法求解。而SVM是基于几何间隔最大化,
  2. LR关注全局数据,而SVM只关注边界线附近的局部数据
           LR受全局数据的影响,而SVM只受边界线附近的局部数据即支持向量的影响,详情见下图:
    Alt textlfksh
    Alt textlfksh
  3. 处理非线性问题时,SVM会使用核函数,而LR不使用核函数
           分类模型就是计算决策面,SVM中只有少数几个代表支持向量的样本参与核计算,而LR中所有样本都要参与计算。如果LR采用核函数,则产生的计算复杂度将非常高。
  4. LR的损失函数中不包括正则项, 而SVM中包含有正则项
           添加正则化项可以平衡训练误差和训练复杂度,达到结构风险最小化的目的。 1 2 ω 2 \frac{1}{2}||\omega||^2 就是SVM中的L2正则化项。

1.3 参考

LR与SVM的异同

猜你喜欢

转载自blog.csdn.net/lrglgy/article/details/88581894