支持向量机SVM

SVM是什么

SVM(全称Support Vector Machine)中文名称支持向量机。SVM是一种二分类算法,所谓二分类即把具有多个特性(属性)的数据分为两类。它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

线性分类

如果需要分类的数据都是线性可分的,那么只需要一根直线f(x)=wx+b就可以分开了,如下图所示,现在有一个二维平面,平面上有两种不同的数据,分别用圈和叉表示。由于这些数据是线性可分的,所以可以用一条直线将这两类数据分开,这条直线就相当于一个超平面。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zWMgZD7W-1629969702523)(https://img-![在这里插入图片描述](https://img-blog.csdnimg.cn/54d15e45a13a473abbeb412e211557a9.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_Q1NETiBAQWxsbXln,size_13,color_FFFFFF,t_70,g_se,x_16](https://img-blog.csdnimg.cn/2219519694aa4dd0af1566368db9a3f5.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_Q1NETiBAQWxsbXln,size_13,color_FFFFFF,t_70,g_se,x_16)]

然而,通过L1或L2,我们都可以将上面的样本呢点分为两类,这两条线称为分类器。那么,这两个分类器哪个更好呢?

在这里插入图片描述

可能看起来差别不大,都可以完美地分开所有的数据,但我们在上面样本点地基础山再加入两个样本点,如图:
在这里插入图片描述在这里插入图片描述

可以发现这次两个分类器地分类结果完全不同。根据数学定义,距离越近表示越相似,这也就意味着上方的X样本点属于B类,而下方的X样本点属于A类,显然第一个分类器L1的判断是正确的。

现在我们采用以分类器L1,如图:在这里插入图片描述

则,样本点到线L1的距离越远,则样本点属于某一类的可能性越大。如图中所示,样本点d属于B类的可信度大于样本点c属于B类的可信度。

而SVM就是找到让所有的样本点分类可信度最高的那条线。

最大间隔分类器

对一个数据点进行分类,当超平面离数据点的“间隔”越大,分类的确信度(confidence)也越大。所以,为了使得分类的确信度尽量高,需要让所选择的超平面能够最大化这个“间隔”值。这个间隔就是下图中的Gap的一半。

在这里插入图片描述
而图中的两条虚线所占据的点被称为支持向量点,在测试训练数据的过程中,SVM只需计算支持支持向量点,便可以得出结果,因此计算量大大减少。

核函数处理非线性数据

事实上,大部分时候数据并不是线性可分的,这个时候满足这样条件的超平面就根本不存在。那对于非线性的数据SVM怎么处理呢?对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维空间,来解决在原始空间中线性不可分的问题。
具体来说,在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开。如图所示,一堆数据在二维空间无法划分,从而映射到三维空间里划分:
在这里插入图片描述
但是,如果凡是遇到线性不可分的样例,一律映射到高维空间,那么这个维度大小是会高到可怕的,而且内积方式复杂度太大。此时,核函数就隆重登场了,核函数的价值在于它虽然也是讲特征进行从低维到高维的转换,但核函数绝就绝在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算。
几种常用核函数:

  • h度多项式核函数(Polynomial Kernel of Degree h)

  • 高斯径向基和函数(Gaussian radial basis function Kernel)

  • S型核函数(Sigmoid function Kernel)

通过松弛变量处理 outliers

在文章一开始我们就假定,数据是线性可分的。后来为了处理非线性数据,也通过核函数对原来的线性 SVM 进行了推广,使得非线性的的情况也能处理。虽然通过映射将原始数据映射到高维空间之后,能够线性分隔的概率大大增加,但是对于某些情况还是很难处理。

例如可能并不是因为数据本身是非线性结构的,而只是因为数据有噪音。对于这种偏离正常位置很远的数据点,我们称之为 outlier ,在我们原来的 SVM 模型里,outlier 的存在有可能造成很大的影响,因为超平面本身就是只有少数几个 support vector 组成的,如果这些 support vector 里又存在 outlier 的话,其影响就很大了。例如下图:在这里插入图片描述
而SVM 允许数据点在一定程度上偏离一下超平面,这样一来也就可以消除这个outlier的影响。

SVM特征

在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别、分类(异常值检测)以及回归分析。

其具有以下特征:

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值