【机器学习】支持向量机SVM 算法 整理 及svm与lr的区别

支持向量机(Support Vector Machine ,SVM)的主要思想是:建立一个最优决策超平面,使得该平面两侧距离该平面最近的两类样本之间的距离最大化,从而对分类问题提供良好的泛化能力。对于一个多维的样本集,系统随机产生一个超平面并不断移动,对样本进行分类,直到训练样本中属于不同类别的样本点正好位于该超平面的两侧,满足该条件的超平面可能有很多个,SVM正式在保证分类精度的同时,寻找到这样一个超平面,使得超平面两侧的空白区域最大化,从而实现对线性可分样本的最优分类。

支持向量机中的支持向量(Support Vector)是指训练样本集中的某些训练点,这些点最靠近分类决策面,是最难分类的数据点。SVM中最优分类标准就是这些点距离分类超平面的距离达到最大值;“机”(Machine)是机器学习领域对一些算法的统称,常把算法看做一个机器,或者学习函数。SVM是一种有监督的学习方法,主要针对小样本数据进行学习、分类和预测,类似的根据样本进行学习的方法还有决策树归纳算法等。

SVM的优点:

1、不需要很多样本,不需要有很多样本并不意味着训练样本的绝对量很少,而是说相对于其他训练分类算法比起来,同样的问题复杂度下,SVM需求的样本相对是较少的。并且由于SVM引入了核函数,所以对于高维的样本,SVM也能轻松应对。

2、结构风险最小。这种风险是指分类器对问题真实模型的逼近与问题真实解之间的累积误差。

3、非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也叫惩罚变量)和核函数技术来实现,这一部分也正是SVM的精髓所在。

支持向量机SVM(Support Vector Machine),是常见的一种判别方法。在机器学习领域,是有监督学习模型,通常用来进行模式识别、分类及回归分析。

主要思想:

  1. 对线性可分情况进行判别分析;对线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本,转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行线性分析成为可能。

  2. 基于结构风险最小化理论,在特征空间中构建最优超平面,使得学习器得到全局最优化,且在整个样本空间的期望,以某个概率满足一定上界。

一般特征

⑴SVM学习问题可以表示为凸优化问题,因此可以利用已知的有效算法发现目标函数的全局最小值。而其他分类方法(如基于规则的分类器人工神经网络)都采用一种基于贪心学习的策略来搜索假设空间,这种方法一般只能获得局部最优解。

⑵SVM通过最大化决策边界的边缘来控制模型的能力。尽管如此,用户必须提供其他参数,如使用核函数类型和引入松弛变量等。

⑶通过对数据中每个分类属性引入一个哑变量,SVM可以应用于分类数据。

⑷SVM一般只能用在二类问题,对于多类问题效果不好。

原理介绍

SVM方法是通过一个非线性映射p,把样本空间映射到一个高维乃至无穷维的特征空间中(Hilbert空间),使得在原来的样本空间中非线性可分的问题转化为在特征空间中的线性可分的问题.简单地说,就是升维和线性化.升维,就是把样本向高维空间做映射,一般情况下这会增加计算的复杂性,甚至会引起“维数灾难”,因而人们很少问津.但是作为分类、回归等问题来说,很可能在低维样本空间无法线性处理的样本集,在高维特征空间中却可以通过一个线性超平面实现线性划分(或回归).一般的升维都会带来计算的复杂化,SVM方法巧妙地解决了这个难题:应用核函数的展开定理,就不需要知道非线性映射的显式表达式;由于是在高维特征空间中建立线性学习机,所以与线性模型相比,不但几乎不增加计算的复杂性,而且在某种程度上避免了“维数灾难”.这一切要归功于核函数的展开和计算理论.

选择不同的核函数,可以生成不同的SVM,常用的核函数有以下4种:

⑴线性核函数K(x,y)=x·y;

⑵多项式核函数K(x,y)=[(x·y)+1]^d;

径向基函数K(x,y)=exp(-|x-y|^2/d^2)

⑷二层神经网络核函数K(x,y)=tanh(a(x·y)+b)

1.寻找最大间隔

训练样本集:D = { (x1, y1) ,  (x2, y2) , ... ,(xm, ym) } , yi ϵ { -1, +1}

划分超平面的线性方程:wTx + b = 0 (1)

样本空间中任一点x到超平面(w, b)的距离为:  (2)

假设超平面(w, b)能将训练样本正确分类,对于(xi, yi) ϵ D, 有:(3)

间隔为:  (4)

欲求最大间隔,即使得ϒ最大,等价于求解:  (5)

 

2.对偶问题

大间隔划分超平面所对应的模型为:  (6)

式(5)是一个凸二次规划问题,能直接用现代计算包求解,但我们有一个更高效的办法,即拉格朗日乘子法。

对式(5)使用拉格朗日乘子法得到其“对偶问题”。具体来说,对式(5)的每条约束添加拉格朗日乘子αi ≥ 0,该问题的拉格朗日函数可写为:(7)

其中α = ( α1; α2; ... ; αm )。令L(w,b, α)对w和b的偏导为零可得:

(8)

(9)

将式(8)代入式(7),即可将L(w, b, α)中的α和b消去,再考虑式(9)的约束,就得到对偶问题:

(10)

K(xi , xj)为xi和 xj两个向量的内积。约束条件C≥αi≥0,是通过引入松弛变量,来允许有些数据点可以处于分隔面的错误一侧。

解出α后,求出w和b即可得到:(11)

3,SVM的损失函数。

3.1、Hinge损失函数

首先我们来看什么是合页损失函数(hinge loss function):

下标”+”表示以下取正值的函数,我们用z表示中括号中的部分:

也就是说,数据点如果被正确分类,损失为0,如果没有被正确分类,损失为z。
合页损失函数如下图所示:

3.2、SVM损失函数

SVM的损失函数就是合页损失函数加上正则化项:

 

支持向量机SVM 和逻辑回归LR的异同

相同点

    都是线性分类器。本质上都是求一个最佳分类超平面。
    都是监督学习算法。
    都是判别模型。通过决策函数,判别输入特征之间的差别来进行分类。
    常见的判别模型有:KNN、SVM、LR。
    常见的生成模型有:朴素贝叶斯,隐马尔可夫模型。

不同点

1) 本质上是损失函数不同
LR的损失函数是交叉熵:

SVM的目标函数:

【【是不是看到公式就头痛?一大堆符号,都不知道什么意思。其实,公式都是有规律的,复杂公式是由简单公式组成的,最简单的是加减乘除法。

逻辑回归基于概率理论,假设样本为正样本的概率可以用sigmoid函数(S型函数)来表示,然后通过极大似然估计的方法估计出参数的值。
支持向量机基于几何间隔最大化原理,认为存在最大几何间隔的分类面为最优分类面。

2) 两个模型对数据和参数的敏感程度不同
SVM考虑分类边界线附近的样本(决定分类超平面的样本)。在支持向量外添加或减少任何样本点对分类决策面没有任何影响;
LR受所有数据点的影响。直接依赖数据分布,每个样本点都会影响决策面的结果。如果训练数据不同类别严重不平衡,则一般需要先对数据做平衡处理,让不同类别的样本尽量平衡。

3) SVM 基于距离分类,LR 基于概率分类。
SVM依赖数据表达的距离测度,所以需要对数据先做 normalization;LR不受其影响。

4) 在解决非线性问题时,支持向量机采用核函数的机制,而LR通常不采用核函数的方法。
SVM算法里,只有少数几个代表支持向量的样本参与分类决策计算,也就是只有少数几个样本需要参与核函数的计算。
LR算法里,每个样本点都必须参与分类决策的计算过程,也就是说,假设我们在LR里也运用核函数的原理,那么每个样本点都必须参与核计算,这带来的计算复杂度是相当高的。尤其是数据量很大时,我们无法承受。所以,在具体应用时,LR很少运用核函数机制。

5) 在小规模数据集上,Linear SVM要略好于LR,但差别也不是特别大,而且Linear SVM的计算复杂度受数据量限制,对海量数据LR使用更加广泛。

6) SVM的损失函数就自带正则,而 LR 必须另外在损失函数之外添加正则项。

红框内就是L2正则。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值