LR 和 SVM

逻辑回归(Logistic Regression, LR)

具体过程:

(1) 找到一个合适的预测函数,一般表示为h函数,该函数就是要找的分类函数,它用来预测输入数据的判断结果。

(2) 构造一个Cost函数(损失函数),该函数表示预测的输出(h)与训练数据类别(y)之间的偏差。综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为J(θ)函数,表示所有训练数据预测值和实际类别的偏差。

(3) J(θ)函数的值越小表示预测的函数越准确,即函数h越准确,所以需要找到J(θ)函数的最小值,通过梯度下降法(Gradient Descent)。

构造预测函数

Logistic Regression用于两分类问题,即找到一个预测函数(h),该函数的输出必须是两个值(二分类),所以利用了Logistic函数(或称为Sigmoid函数),函数形式为:

g(z)=1/(1+e^(-z))

对应的函数图像是一个取值在(0,1)的S型曲线:


逻辑回归模型假设:


这里g(h)是上边提到的sigmoid函数,对应的决策函数为

y* = 1, if P(y=1|x)>0.5

选择0.5作为阈值是一个一般的做法,实际应用时特定的情况可以选择不同的阈值,如果对正例的判别准确性要求高,可以选择阈值大一些,对于正例的找回要求高,则可以选择阈值小一些。

参数求解

最大似然估计:找到一组参数,使得在这组参数下,数据的相似度(概率)最大。

在逻辑回归中,相似度表示为:


取对数得到对数似然度:


梯度下降求解步骤:

(1) 选择下降方向(梯度方向,

(2) 选择步长,更新参数:

(3) 重复以上两步直到满足终止条件

其中损失函数的梯度计算方法为:


沿梯度负方向选择一个较小的步长可以保证损失函数是减小的,另一方面,逻辑回归的损失函数是凸函数(加入正则项后是严格凸函数),可以保证找到的局部最优质同时是全局最优。


分类边界

从sigmoid函数中可以看出,当时,y=1,否则y=0。是模型隐含的分类面(在高维空间中是超平面)。逻辑回归本质上是一个线性模型,但是这并不意味着只有线性可分的数据能通过LR求解,实际上,可以通过特征变换的方式把低维空间转换到高维空间,而在低维空间不可分的数据,到高维空间中线性可分的几率会高一些。

正则化

当模型的参数过多时,容易出现过拟合。因此需要一种方法来控制模型的复杂度,典型的做法是在优化目标中加入正则项,通过惩罚过大的参数来防止过拟合:


一般情况下,取p=1或p=2,分别对应L1,L2正则化,两者的区别见下图:


左图:L1正则化,倾向于使参数变为0,因此能产生稀疏解。

实际应用时,由于数据的维度可能非常高,L1正则化因为能产生稀疏解,使用的更为广泛一些。

支持向量机(Support Vector Machine ,SVM)

SVM是一种二分类模型,基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。SVM模型由支持向量(Support Vector)决定,因此SVM对outliers不敏感。

SVM原理是VC维理论和最小化结构风险。


如上图所示,有一堆训练数据的正负样本,标记为,假设有一个超平面H:,可以把这些样本分隔开。同时存在两个平行于H的超平面H1和H2:


使离H最近的正负样本刚好分别落在H1和H2上,这样的样本就是支持向量。那么其他所有的训练样本都将位于H1和H2之外,也就满足以下约束:


写成统一的式子就是:

  (1)

SVM的任务是寻找超平面H把样本分割成两部分,并且使H1和H2的距离最大。要找到这样的超平面,只需要最大化间隔margin,即最小化,于是可以构造如下的条件极值:

 (2)

对于不等式约束的条件极值问题,可以采用拉格朗日方法求解。拉格朗日方程的构造规则是:用约束方程乘以非负的量格朗日系数,然后再从目标函数中减去,于是得到拉格朗日方程如下:


其中:

要处理的规划问题变为:

 (5)

逻辑回归和支持向量机异同点

相同点:

(1)都可以用来分类。

(2)在不考虑核函数时,LR和SVM都是线性分类算法,也就是它们的决策面都是线性的。

(3)LR和SVM都是有监督学习算法。

(4)LR和SVM都是判别模型。判别模型会生成一个表示P(Y|X)的判别函数(或预测模型),而生成模型先计算联合概率P(X,Y),然后通过贝叶斯公式转化为条件概率。生成算法尝试去找到底这个数据是怎么生成的(产生的),然后再对一个信号进行分类。基于你的生成假设,那么那个类别最有可能产生这个信号,这个信号就属于那个类别。判别模型不关心数据是怎么生成的,它只关心信号之间的差别,然后用差别来简单对给定的一个信号进行分类。


不同点:

(1)损失函数不同:

LR损失函数:

SVM损失函数:

(2)支持向量机只考虑局部的边界线附近的点,逻辑回归考虑全局

影响SVM决策面的样本点只有少数的结构支持向量,当在支持向量外添加或减少任何样本点对分类决策面没有任何影响;而在LR中,每个样本点都会影响决策面的结果。

改变支持向量机样本不一定会引起决策面的变化:


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


(3)在解决非线性问题时,支持向量机采用核函数的机制,LR通常不采用核函数的方法。

SVM算法里只有少数几个代表支持向量的样本参与了计算,也就是只有少数几个样本需要参与核计算(即kernal machine解的系数是稀疏的)。然而,LR算法里,每个样本点都必须参与决策面的计算过程,也就是说,假设我们在LR里也运用核函数的原理,那么每个样本点都必须参与核计算,这带来的计算复杂度是相当高的。所以,在具体应用时,LR很少运用核函数机制。​

(4)线性SVM依赖数据表达的距离测度,所以需要对数据先做normalization,LR不受影响。

(5)SVM损失函数自带正则,(损失函数中的1/2||w||^2项),这就是为什么SVM是结构风险最小化算法的原因!!!而LR必须另外在损失函数上添加正则项!!!

SVM叫做结构风险最小化算法,所谓结构风险最小化,意思就是在训练误差和模型复杂度之间寻求平衡,防止过拟合,从而达到真实误差的最小化。未达到结构风险最小化的目的,最常用的方法就是添加正则项。


参考:

[1] http://www.cnblogs.com/zhizhan/p/5038747.html



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值