SVM与LR比较
1.1 相同点
- LR与SVM都属于线性分类模型
当LR中的标签是离散的,则LR可被认为是分类算法;当不考虑核函数时,原始的LR与SVM都是线性分类器。 - LR与SVM都属于判别模型
判别模型可以生成一个表示P(Y|X)的判别函数(预测模型),而生成模型会先计算联合概率P(X,Y),然后再利用贝叶斯公式计算条件概率。 换句话说,判别模型不关心数据是怎么来的,只关心数据之间的差别,然后利用数据间差别进行分类。而生成模型关注数据是怎么来的,然后产生生成假设,根据假设判断数据最有可能来自哪个类别。 - LR与SVM都属于监督学习算法
1.2 不同点
- 本质(损失函数)不同
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))]. J(θ)=n1i=1∑n[yiloghθ(xi)+(1−yi)log(1−hθ(xi))].
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]. L(w,α,b)=21∣ω∣2−i=1∑nαi[yi(ωTxi+b)−1].
不同损失函数代表着不同的假设前提即分类原理。LR是基于概率理论,利用极大似然估计的方法求解。而SVM是基于几何间隔最大化, - LR关注全局数据,而SVM只关注边界线附近的局部数据
LR受全局数据的影响,而SVM只受边界线附近的局部数据即支持向量的影响,详情见下图:
- 处理非线性问题时,SVM会使用核函数,而LR不使用核函数
分类模型就是计算决策面,SVM中只有少数几个代表支持向量的样本参与核计算,而LR中所有样本都要参与计算。如果LR采用核函数,则产生的计算复杂度将非常高。 - LR的损失函数中不包括正则项, 而SVM中包含有正则项
添加正则化项可以平衡训练误差和训练复杂度,达到结构风险最小化的目的。 1 2 ∣ ∣ ω ∣ ∣ 2 \frac{1}{2}||\omega||^2 21∣∣ω∣∣2就是SVM中的L2正则化项。