前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通俗易懂快速理解支持向量机(SVM)

通俗易懂快速理解支持向量机(SVM)

作者头像
用户7569543
发布2020-07-17 14:13:21
1.1K0
发布2020-07-17 14:13:21
举报

支持向量机(Support Vector Machine,简称为SVM)是一种监督式学习的方法,可以用来解决分类或回归问题。

在样本空间中,划分超平面可以通过如下线性方程来描述

其中w为法向量,决定了超平面的方向,b为位移项,决定了超平面与原点之间的距离。显然,划分超平面可被法向量和位移确定。在分类问题中,SVM是尝试将向量映射到一个更高维的空间,然后在这个空间里建立一个具有最大间隔的超平面。如下图所示,哪条直线是我们要找的具有最大间隔的超平面呢?

显然是中间灰色的这条直线,因为对于给定的训练样本集D={(x1,y1), (x2,y2),… (xn,yn)},yi属于{-1,+1},希望能找出一个超平面,把不同类别(直线两边的红蓝小圆点)的数据集分开,对于线性可分的数据集来说,这样的超平面有无穷多个,而最优的超平面就是分隔间距最大的中间那个超平面。

平行超平面间的距离或差距越大,分类器(模型)的总误差越小。从分类的角度来看,SVM只考虑分类面附近的局部的点,即支持向量,如下图所示。而像逻辑回归这种算法要考虑全部样本的点,基于所有数据点的分布情况来构建分类边界。

注:处于两边虚线上的点统称为支持向量

以上是针对数据样本是线性可分的情况,但我们也经常会遇到一些线性不可分的情况,比如“异或”问题就不是线性可分的,对于这样的问题,我们可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内仍然线性可分。如下图所示,从线性不可分到高维空间线性可分,这其中起关键作用的就是核函数,SVM中常用的核函数有线性核函数、多项式核函数、径向基(高斯)核函数。

在前面的讨论中,我们一直假定训练样本在样本空间或特征空间中是线性可分的,即存在一个超平面能将不同类的样本完全划分开,然而在现实中往往很难确定合适的核函数使得训练样本在特征空间中线性可分,但我们仍然认为SVM它是较好的分类器,因为在我们的训练数据中通常会存在一些异常值,也就是我们俗称的噪声数据。如果模型在训练(学习)的时候把这些“噪声”数据都学到了,那模型往往会过拟合,这是机器学习中的大忌,所以SVM在拟合时会保证一定的容错性,忽略异常值来保证全局预测结果的准确性,这就是我们通常所说的“软间隔”,下图中被红色⭕️圈起来的样本,被认为是预测正确的。

与“软间隔”相对的就是我们前面讨论的使所有样本都必须划分正确,这称为“硬间隔”。而“软间隔”容错性大小由松弛变量和惩罚因子来控制,惩罚因子我们通常用符号C来表示,C越大表示对错误惩罚越大,当C为无穷大,则SVM退化为“硬间隔”分类器,此时只能处理线性可分问题。

以上就是SVM的理论部分介绍,最后我们一起来看下,SVM在鸢尾花数据集中的分类效果到底如何吧

可以看到支持向量机SVM预测准确率为1.0,也就是说在测试集中样本分类100%被预测对了✌️,前面我们用决策树预测鸢尾花这个数据集准确率是0.96(还记得吗?),所以SVM的威力不用我再介绍了吧,哈哈~下节课给大家带来kaggle大杀器——融合模型!!敬请期待~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 多赞云数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档