支持向量机(SVM)
Posted connorship
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机(SVM)相关的知识,希望对你有一定的参考价值。
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必须另外在损失函数上添加正则项。
以上是关于支持向量机(SVM)的主要内容,如果未能解决你的问题,请参考以下文章
支持向量机(SVM):超平面及最大间隔化支持向量机的数学模型软间隔与硬间隔线性可分支持向量机线性支持向量机非线性支持向量机核函数核函数选择SMO算法SVM vs LR优缺点