逻辑回归与支持向量机

LR 和 SVM

LRLogistic Regression逻辑回归):解决二分类问题的机器学习方法。

SVMSupport Vector Machine支持向量机):为了区分两类维度数据,n 维数据的样本数,m 为维度数,如何设计一个维度为 m-1 的超平面将两类数据区分开来。

LR 和 SVM 的联系

1. LR 和 SVM 都是分类算法

普通的 LR 和 SVM 算法只能处理二分类问题,当然,通过改进后的 LR 和 SVM 都可以用来处理多分类问题。

2. 在不考虑核函数时,两者都是线性分类算法

注意,不考虑核函数时两者都是线性分类器。LR、SVM 加了核函数后为分别为 KLR、KSVM,只不过一般而言采用 KSVM 较多而KLR 用得较少。

3. 两者都属于监督学习算法

4. 两者都是判别式模型

什么是判别式模型?假设给定观测集合X,需要预测的变量集合为Y,那么判别式模型就是直接对条件概率分布P(Y|X)进行建模来预测 Y;而生成式模型是指,先对联合概率模型P(X,Y)进行建模,然后在给定观测集合X的情况下,通过计算边缘分布来求解出P(Y|X)。

常见的判别式模型有:LR、SVM、KNN、神经网络、最大熵模型、条件随机场等

常见的生成式模型有:隐马尔科夫模型HMM、朴素贝叶斯、贝叶斯网络、高斯混合模型GMM等

LR 和 SVM 的区别

1.损失函数不同

LR 的 loss function:J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]J(\theta)=-\frac{1}{m}\left[\sum_{i=1}^{m}y^{(i)}\log h_{\theta}(x^{(i)})+(1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))\right]

SVM 的 loss function:

L(w,b,α)=12w2i=1nαi(yi(wTxi+b)1)\mathcal{L}(w,b,\alpha)=\frac{1}{2}\left\|w\right\|^{2}-\sum_{i=1}^{n}\alpha_{i}\left(y_{i}(w^{T}x_{i}+b)-1\right)

不同的loss function代表了不同的假设前提,也就代表了不同的分类原理。

LR: 基于概率理论,通过极大似然估计方法估计参数值

SVM:基于几何间隔最大化原理

补充: Logistic Loss: Llog(z)=log(1+ez)L_{log}(z)=log(1+e^{-z}) // 用于 LR

​ Hinge Loss: Lhinge(z)=max(0,1z)L_{hinge}(z)=max(0,1-z) // SVM

​ Exponential Loss: Lexp(z)=ezL_{exp}(z)=e^{-z} // Adaboost

2.支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局(远离的点对边界线的确定也起作用,虽然作用会相对小一些)。

影响 SVM 决策分类面的只有少数的点,即边界线上的支持向量support vector),其他样本对分类决策面没有任何影响,即SVM 不依赖于数据分布;而LR则考虑了全部的点(即依赖于数据分布),通过非线性映射,减少远离分类平面的点的权重,即对不平衡的数据要先做 balance。

支持向量机改变非支持向量样本并不会引起决策面的变化

逻辑回归中改变任何样本都会引起决策面的变化

3. 在解决非线性问题时,SVM 采用核函数机制,而 LR 一般很少采用核函数的方法。

SVM 使用的是 hinge loss,可以方便地转化成对偶问题进行求解,在解决非线性问题时,引入核函数机制可以大大降低计算复杂度。

4. SVM 依赖于数据分布的距离测度,所以需对数据先做normalization,而LR不受影响。

normalization 的好处:进行梯度下降时,数值更新的速度一致,少走弯路,可以更快地收敛。

5. SVM 的损失函数中自带正则化项(12w2\frac{1}{2}||w||^2),而 LR 需要另外添加。

LR和SVM什么时候用?

来自Andrew Ng的建议:

①若feature数远大于样本数量,使用LR算法或者Linear SVM

②若feature数较小,样本数量适中,使用kernel SVM

③若feature数较小,样本数很大,增加更多的feature然后使用LR算法或者Linear SVM

LR和SVM如何处理多分类问题?

SVM

方式一:组合多个二分类器来实现多分类器(两种方法OvO或OvR)

①OvO(one-versus-one): 任意两个类别之间设计一个二分类器,N个类别一共N(N1)2\frac{N(N-1)}{2}个二分类器

②OvR(one-versus-rest): 每次将一个类别作为正例,其余的作为反例,共N个分类器。

注:OvO和OvR先训练出多个二分类器,在测试时,新样本将同时提交给所有的分类器进行预测,投票产生 最终结果,将被预测的最多的类别作为最终的分类结果

方式二:直接修改目标函数,将多个分类面的参数合并到一个最优化问题中,一次性实现多分类。

LR

方式一: OvR:同上,组合多个logistic 二分类器

方式二: 修改目标函数,改进成softmax回归