首页 > 技术文章 > 支持向量机(SVM)

ConnorShip 2018-11-14 15:51 原文

1.SVM:

SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。

2.SVM为什么采用间隔最大化:

1.当训练数据可分的时候,存在很多超平面可以将数据分开

2.感知机利用误分类最小策略,求得分离超平面,不过此时的解有无穷多个。

3.线性可分支持向量机利用间隔最大化求得最优分离超平面,这时,解是唯一的。另一方面,此时的分隔超平面所产生的分类结果是最棒的,对未知实例的泛化能力最强。

然后应该借此阐述,几何间隔,函数间隔,及从函数间隔—>求解最小化1/2 ||w||^2 时的w和b。即线性可分支持向量机学习算法—最大间隔法的由来。

3.为什么要将求解SVM的原始问题转换为其对偶问题?

一、是对偶问题往往更易求解(当我们寻找约束存在时的最优点的时候,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。)

二、自然引入核函数,进而推广到非线性分类问题。
4.为什么要引入SVM核函数?

当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。

当数据是线性不可分的情况下,SVM求解分类的超平面是使用核函数。有的数据在低维空间不可分,但是映射到高维空间后它可能是线性可分的,比如,一维线上的点不线性可分,映射到二维(平方函数)就可能可以分开了。但是在映射的时候有一个问题,是一个计算问题,低维空间映射到高维空间,在高维空间上直接计算的话回产生一个维灾难的问题(2->5, 3->19...)。这个地方就引入了核函数,核函数是计算两个向量在隐式映射过后的空间中的内积的函数,通过核函数可以使数据不用在映射后的高维空间中计算,而是在原来的低维空间中计算(在原来的低维空间上做内积)。
5.松弛变量

松弛变量的引入也就是允许某些点离超平面的距离小于1,也即放弃了这些点的分类精度,惩罚因子决定了对离群点的重视程度,C越大,表示分错某一个点需要付出更大的代价(这个可以一定程度上缓解正负样本数量相差太大的问题)。

6.LR和SVM的相同点和不同点:

相同点:1.都是分类算法   2.都是线性分类器  3.都是监督学习算法 4.LR和SVM都是判别模型

不同点:1.逻辑回归的损失函数,支持向量机的目标函数,2.支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局

3.支持向量机改变非支持向量样本并不会引起决策面的变化 ,逻辑回归中改变任何样本都会引起决策面的变化

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

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

7.SVM的损失函数就自带正则,而LR必须另外在损失函数上添加正则项。

 

推荐阅读