支持向量机的提出是为了解决线性无法分类的问题,想要深入理解就需要从线性分类开始探讨,找到线性分类的优缺点,然后在循序渐进的提出解决方法和思路进而引出支持向量机,在继续深入探讨支持向量机的特点,以及如何分类?分类的原理是什么,支持向量机的难点在哪里?如何解决?带着问题去探讨,这样才符合我们认识事物的规律,本篇讲述就按此进行。

线性分类器:

如图二维数据分类的例子,从 图中看,这条分类函数还是可以准确做出判断的,但是这样的一元线性函数只存在一条吗?当然不是,能正确做出判断的函数有很多,如下图:

从图中可以看出这些一元线性函数都可以对此进行分类,但哪个线性分类函数最好呢?如何找出这个最好的线性分类函数呢?

在解释提出的问题之前,先把线性分类函数的一般表达式给出:

还记的Logistic回归中,他的分类函数的表达式是什么样的吗?直接引用博客里的式子:

其中:  

为常数

下面就是如何找到最好的分类函数,什么是最好呢?就是分类预测的确信或者准确度达到最高就是最好的了

那么怎么找呢?

找这个分类函数其实就是找最佳的权值向量和b,怎么找呢?找之前先引入几个概念:

最大边缘超平面(MMH):

什么是最大边缘超平面呢?大家都知道,在一维中(横轴) 一点可以把数分两类,在二维中,一条直线可以把数据分两类(上面讲的都二维的),在三维中,一个平面可以把数据分两类(大家可以想象空间一个球,过球心的水平面就可以把球分两部分),在四维,五维、六维、、、n维中(我们目前只知道一、二、三维的空间,三维空间可通过平面进行区分空间,更高维度的空间区分他们就叫超平面了,例如 五维空间一般可以通过四维超平面进行分开,n维就是通过n-1维超平面进行区分,下面解释一下最大边界,以二维空间为例,我们知道区分二维平面的是直线,所谓最大边界,例如上图右,蓝色和红色边界的直线(黄色的)称为决策边界,他们分别经过了两边边沿的一个数据点,而这些数据点就称为支持向量点,为什么这样称呼下面会讲解,同时该两条直线之间的空间称为“隔离带”(自称的),如下图:

我们可以看到,b11和b12, b21和b22就是最大边缘决策边界(最大边缘超平面),他们分别经过两组数据的第一个点,以此称为决策边界,找到最大边缘分界有什么用呢?其实最优的分类一定就在这之间了,但是如何确定最优的呢?

假如我们找到的决策函数为上图的B1或者B2,大家觉得决策函数应该在哪里最好?直观是不是应该在中间,以B1的边缘为例,那么B1的决策决策函数就在b11和b12中间,因为中间位置到两遍的边缘分界的距离最大,那么他判断正确的确信度就越高,所以‘隔离带’越大越好,即通过求分界线之间的距离建立关系,一旦分界间的距离确定了,那么决策函数就容易求了,因此定义决策超平面(在二维中,是一条线,但是在高维中就是超平面了)如下:

把两边决策边界定义为:

                                 ①

                             ②

那么从公式中我们可以看到,在决策边界上的数据点结果是等于1或者-1的(隔离带先假设不存在数据点),其余的应该不等于1或者-1的,结合下图,以二维数据为例,我们知道,下面的图形就是平面图形,边界直线经过坐标系的一二四象限,根据直线和坐标系的位置可知,以①式为例:数据点在①式上的等于1,数据点在它上面的肯定大于1,不信的可以拿个笔计算一下,初中知识了,那么分类方块代表数据总体可以写成这样了:

同理

即分两类了。1代表一类,-1代表一类,同时这两个不等式就是把数据分类了在说简单点,我们后面所要做的所有事情都希望满足这个,为什么呢?因为我们的目的是分类呀,这是最初的目的好吧,进行这一切的操作都是为了更好的分类,你说呢?

至于为什么是1和-1,那篇文章讲的很详细,我就不啰嗦了,不知道的可以查看一下,需要解释一下为什么边界线通过的点称为支持向量,以二维为例,上图中,我们可以看到x1和x2两个数据点分别是边界线进过的数据点,以0为原点建立直角坐标系,数据x1和x2分别构成的向量为: 和 ,,两向量相减得到:

 -   = 

另外我们知道直线的斜率就是法向量,与直线是垂直的,上图是二维平面,直线的法向量和直线垂直,同时也是边界线的法向量,因此的內积就可以写出了:

 =                           
內积大家都知道吧,那我们继续,

下面正式推到了,上面是从向量的建立角度进行讲解,为下面的做准备工作。

然而这內积结果为什么等于2呢?可以根据两式相减得到,即两边界方程相减得:即① - ②

又因为 = (因为都是向量,向量的减法没忘完吧)

所以上式可以写为:

 = 

其中为范数,在平面向量里称为模

又因为其实就是两条边界线的距离d,不懂的可能是夹角,其实就是法向量中间的夹角,如上图画的,这里大家需要一点向量知识,到这里令:

 =  

可改写为:

 = 

所以:

到这里问题就转化了,求d得最大值就可以了。

在这里还有另外一种解决思路:

我们知道平面的两条直线的距离公式为:

如果求边界间的距离,可以直以直接使用该公式即可:

同样可以得到边界线的距离:

这种显得更简洁,但是为什么不直接使用这个呢?因为这个在高维的情况下可能不适用,同时也无法解释什么是支持向量,无法解释支持向量机的本质。

总结一下: 所谓支持向量就是边界超平面经过的数据点,因为这些点才构成边界,因才有支持向量的称呼,但是找边界不是目的,我们希望找到最优的决策超平面,而最优的决策超平面就在决策边界中心位置,而且决策边界间的距离越大越好,即把问题转化为求距离最大问题了。

下面问题是如何求最大距离?有哪些约束条件?下一篇介绍。

机器学习--支持向量机(一)什么是支持向量机相关推荐

  1. 机器学习实战(六)——支持向量机

    第六章 支持向量机 6.1 什么是支持向量机 6.1.1 线性SVM 6.1.2 函数间隔和几何间隔 6.1.3 最大间隔分离超平面 6.1.4 支持向量和间隔边界 6.1.4 学习的对偶算法 6.2 ...

  2. 周志华机器学习(6):支持向量机

    周志华机器学习(6):支持向量机 6 支持向量机 6.1 间隔与支持向量 6.2 对偶问题(dual problem) 6.3 核函数 6.4 软间隔与正则化 基本是大段摘录西瓜书加上一些自己的解释补 ...

  3. 李宏毅svm_【李宏毅机器学习笔记】 18、支持向量机(Support Vector Machine,SVM)...

    [李宏毅机器学习笔记]1.回归问题(Regression) [李宏毅机器学习笔记]2.error产生自哪里? [李宏毅机器学习笔记]3.gradient descent [李宏毅机器学习笔记]4.Cl ...

  4. python svr回归_机器学习入门之机器学习之路:python支持向量机回归SVR 预测波士顿地区房价...

    本文主要向大家介绍了机器学习入门之机器学习之路:python支持向量机回归SVR  预测波士顿地区房价,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助. 支持向量机的两种核函数模型进行预 ...

  5. 线性支持向量机、线性可分支持向量机、非线性支持向量机是怎么区分的?

    SVM(Support Vector Machine)是一种二类分类模型. 它的基本模型是定义在特征空间上的间隔最大的线性分类器. 支持向量就是最大间隔或者分割超平面上的那几个临界点,具体入下图所示: ...

  6. 支持向量机1-线性可分支持向量机

    线性可分支持向量机 一.理论基础 一.支持向量机分类 二.函数间隔与几何间隔 三.支持向量 四.线性可分支持向量机 4.1 线性可分支持向量机的优化函数 4.2 线性可分支持向量机的最优化问题求解 4 ...

  7. 支持向量机 一 :线性支持向量机介绍

    一.SVM简介 支持向量机(suport vector mechine,SVM)主要用于解决二分类问题.这里简单介绍一下线性SVM,希望能对SVM的入门者有所帮助. SVM是如何对样本对进行分类的呢? ...

  8. 支持向量机 二 :非线性支持向量机

    如果您还未了解 线性向量机,建议首先阅读 <支持向量机 一:线性支持向量机> 一.为什么要用非线性支持向量机? 线性支持向量机不香吗?为什么还要用非线性支持向量机? 线性支持向量机香是香, ...

  9. 支持向量机专题——线性可分支持向量机

    原文 支持向量机(support vector machine, SVM)是一种经典的分类器,其主要思想是学习一个在特征空间上使间隔最大的分类器.支持向量机的学习可以看成是一个求解凸二次规划问题的过程 ...

  10. SVM支持向量机原理(二) 线性支持向量机的软间隔最大化模型

    在支持向量机原理(一) 线性支持向量机中,我们对线性可分SVM的模型和损失函数优化做了总结.最后我们提到了有时候不能线性可分的原因是线性数据集里面多了少量的异常点,由于这些异常点导致了数据集不能线性可 ...

最新文章

  1. DBA很忙—MySQL的性能优化及自动化运维实践
  2. python3 %%time 表示执行单元格时间 时间指的是CPU时间
  3. 5gh掌上云计算认证不通过_阿里云ACP认证考试攻略、考试心得、费用及常见问题...
  4. 手把手教你用Jieba做中文分词
  5. php 备份数据库 Backup Your MySQL Database Using PHP
  6. 【项目合作】瓷砖表面打印缺陷识别
  7. php 拖拽 上传文件 进度,在Vue中如何实现带进度条的文件拖动上传功能
  8. 你知道K8S暴露服务的方式有哪些吗?
  9. 用汇编的眼光看C++(之模板类)
  10. Python 手册——调用解释器
  11. JAVA 中序遍历的非递归栈实现
  12. MySQL 中的日期时间类型
  13. 谷歌浏览器的笔记在哪里_selenium学习笔记之启动谷歌浏览器
  14. python数据分析入门到实战知了课堂_价值699元知了课堂零基础学Python 21天搞定Python分布爬虫...
  15. windows连接远程桌面必须要有用户名和密码
  16. 福昕pdf Acrobat DC pdf 右键菜单注册表
  17. 5-(4-硝基苯基)-10,15,20-三苯基卟啉NTPPH2/NTPPZn/NTPPMn/NTPPFe/NTPPNi/NTPPCu/NTPPCd/NTPPCo等金属配合物
  18. php开发前端的框架有哪些,网站的一些前端框架有哪些?4个前端框架对比
  19. 联通关闭2G、3G信号?老人机可能真的不能用了!
  20. 多分类学习(OvO、OVR、MVM 原理区别)

热门文章

  1. 如何区分炫耀和分享?
  2. 海信计算机辅助统,海信计算机辅助手术系统(CAS2.2)升级面市
  3. 聚类性能度量指标及距离计算
  4. 大数据分析应用在哪些方面
  5. 5G大数据技术防控新型肺炎疫情
  6. html 并集选择器,HTML+CSS基础 并集选择器
  7. 优化美国服务器,美国服务器性能优化
  8. html标签默认值,HTML标签CSS属性默认值汇总
  9. Java传参是字节还是字符串好_深入分析java传参
  10. 笔记︱金融风险之欺诈分类以及银行防控体系简述