支持向量机简单理解之目标函数

  支持向量机(SVM)一般用于分类,当然,还可用于回归,如果感兴趣,可在网上查阅,本文主要简单介绍SVM的部分原理,为了方便理解,对于太复杂的公式,等理解了一部分再看。
  SVM可用于线性可分以及线性不可分的情况,当然,我们学习其原理的时候,先学最基础的,后面再学难一点的,只会事半功倍。本文暂时只说明线性可分的SVM,至于线性不可分的情况以及序列最小最优化(SMO)算法,后面再写几篇进行补充。
  以下是我根据个人理解,尽可能简单的阐述其原理,如有错误之处,请指出,我会加以改正的。


  首先引入一个问题:现有一些样本,分为两种类别,这些样本有多个维度(本文以两维举例),让你根据这些样本,去预测新的样本的类别?
话不多说,看图>>>

  很显然,我们一眼就能看出来,这很明显的分成了两类,但是,计算机不能一眼就“看出来”,既然这是两维的,那就画一条直线,把他们分开吧!(当然,也可以画曲线,但涉及核函数,下下下篇博客再写,哈哈…)
  现在,我大概画了几条直线,用于将它们分开

  不知到你怎么看,我是觉得绿色的线比较好,如果你也这样觉得,那好巧啊,SVM也这样觉得,它表示,距离分割线最近的正负样本的两个点与分割线距离之和越大越好,且最佳的分割线与这两个最近点的距离相等。(我是用个人理解的话语说的,可能,你有更好的表述方式,欢迎跟我说)
  请注意,下面,我要关门放“公式”了,不过不要怕,都不难的。
  因为是线性可分的,所以最佳的分割线应该绝对可区分所有样本点!
  这条线长这样:

  假如得到了相应的w和b,那么,如果现在有个新的样本点让你预测类别,只需要将新的样本数据x,带入下面函数进行计算

  如果计算的f(x)<0,那我们就认为,它属于红色那一类,如果f(x)>0,我们就认为,它属于蓝色那一类。如果等于0呢?你猜…
  那么,我们怎么计算出那两个重要的参数w和b呢?

  这里有必要解释一下其含义,怕你不懂。
  这两个是等价的:

  某点到分割线的距离就可以表示为:

  此时,这个距离肯定是大于等于某个值r的,若某点到分割线距离等于r,说明该点距离分割线最近,SVM称它们为支持向量,至于其他点,就不需要管了。
  根据之前的原则,间隔最大化,因此只需要使得这个r最大,即可得到该原则下的最佳的分割线!
  这个目标函数有点难算,我们还需要进行简化(如果你想算,那你算,反正我要简化之后,再算,哈哈。)
  至于怎么简化,首先理解下,函数间隔与几何间隔

  这个,图在那里,我不说,你品,你细品,哈哈!
  开玩笑的,还是得说一些重要的。
  几何间隔就相当于初中学的点到直线的距离,这个好理解。至于函数间隔,具体就不多说,只说重要的,它比几何间隔少了点东西,显然,计算简单很多,它可以比较出任意两个点,哪个距离直线更近,即可计算出相对距离。几何间隔与函数间隔满足以下关系:

  显然,当||w||=1,的时候,函数间隔与几何间隔计算得到的大小是相等的。
  为了便于计算,我们利用函数间隔与几何间隔之间的关系,考虑一种我们比较喜欢的情况,就是分割线最近的点到分割线的函数间隔为1,此时几何间隔则变为

  注意:对于任意一点以及任意一条直线,成比例的改变直线的w和b,总是存在一个新的w和b,使得点到直线的函数距离为1
  SVM的目标函数就变成了:

  这里最大化的函数并不是凸函数,不太好进行优化,但可以进行等价的变换,使它变成一个凸函数:

  那么,最后SVM目标函数就可以简化成:

  你,懂了吗?
  这个关于目标函数的解释有好几种,这里只写了其中一种,至于这个目标函数怎么求解,下一篇博客再写,静待更新吧,哈哈…

  未完待续…

支持向量机之目标函数相关推荐

  1. 每天5分钟机器学习算法:支持向量机的目标函数是怎么来的?

    支持向量机的核心 两个线性可分的数据集会有多个分割超平面,那么哪个分割超平面最好呢?我们可以通过下面的方式来寻找这个最优的超平面: 我们需要线找到数据点中距离分割超平面距离最近的点(找最小) 然后尽量 ...

  2. 机器学习中的数学基础(4.1):支持向量机Support Vector Machine(SVM)

    SVM可以说是一个很经典的二分类问题,属于有监督学习算法的一种.看过那么多的博客知乎解释SVM我一定要自己总结一篇,加深一下自己的理解. 带着问题去读文章会发现,柳暗花明又一村,瞬间李敏浩出现在眼前的 ...

  3. 机器学习-第六章 支持向量机(SVM)

    机器学习-第六章 支持向量机(SVM) D系鼎溜关注 2020.02.09 21:19:41字数 1,131阅读 458 6.1 间隔与支持向量 开倍速观看视频之后,对课本所说的会更加了解. 支持向量 ...

  4. 支持向量机原理讲解(一)

    https://www.toutiao.com/a6670858850679128588/ 介绍 支持向量机(Support Vector Machine,以下简称SVM),作为传统机器学习的一个非常 ...

  5. [机器学习-原理篇]支持向量机(SVM)深入理解

    支持向量机SVM 1,SVM概念 1.1 支持向量机包含三种: 2.准备知识 KKT条件 点到直线的距离 3. 线性可分支持向量机(hard margin) 线性可分支持向量机建立超平面: 函数间隔: ...

  6. 支持向量机(SVM)复习总结

    摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 6.适用场合 7.svm和感知机的异同 8.svm和LR的异同 内容: 1.算法概述 其基本模型定义为特征空 ...

  7. 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [8] 支持向量机(二)...

    这两篇内容为西瓜书第 6 章支持向量机 6.1,6.2,6.4,6.3 的内容: 6.1 间隔与支持向量 6.2 对偶问题 6.4 软间隔与正则化 6.3 核函数 由于本章内容较多,分为两篇来叙述.本 ...

  8. 网格向量必须包含特征点。_【专题研究】基于SVM支持向量机模型的选股策略

    研究过集成学习中的随机森林和XGBoost后,本文将介绍一种更传统的机器学习方法:SVM支持向量机.SVM由于其较高的准确度,并且能够解决非线性分类问题,曾一度成为非常流行的机器学习算法.本文分别介绍 ...

  9. 支持向量机smo matlab,理解支持向量机(三)SMO算法

    在支持向量机模型的求解中,我们用到了SMO算法来求解向量α. 那么什么是SMO算法?在讲SMO算法之前.我们须要先了解下面坐标上升法. 1.坐标上升法 如果有优化问题: W是α向量的函数.利用坐标上升 ...

最新文章

  1. 面试官如何判断面试者的机器学习水平?
  2. 博士申请 | 北京理工大学宋承天老师组招收目标感知与识别方向博士生
  3. 运用El表达式截取字符串/获取list的长度
  4. 《Redis官方文档》Redis调试指南
  5. python原理及代码_原理+代码|详解层次聚类及Python实现
  6. (转)基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用
  7. 明年起Polkascan不再为Kulupu提供服务
  8. Python 获取父级文件夹的名字
  9. POJ 2054 Color a Tree#贪心(难,好题)
  10. Julia: 1.0 ! “startup.jl” 的妙用, 设置IDE启动时,自动运行某文件或某行命令
  11. Prescan基础知识总结
  12. 现代交换技术的基本概念及基本知识
  13. linux下安装编译pidgin
  14. 高效文件搜索工具Everything/Listary
  15. 2015CDAS中国数据分析师行业峰会:R语言量化投资数据分析应用
  16. 如何判断微信/判断支付宝退款超期
  17. 2021年9月22日-忆阻神经网络综述
  18. 调用wireshark(二):调用协议解析器
  19. 苹果cms数据.php,苹果cms数据库常用sql语句对照及使用方法
  20. 高薪程序员面试题精讲系列60之进程与线程的区别有哪些?

热门文章

  1. 单相交流电机为什么需要电容才能正常启动?
  2. 哪些飞机机型是安全、可信赖的
  3. 拉格朗日插值法--python
  4. 21个经典深度学习句间关系模型|代码技巧
  5. 企业做好私域电商的六大关键点
  6. 潇洒郎: 去哪儿2021届/2020年开发岗笔试题分享
  7. java pg数据库事务回滚,基于Postgresql 事务的提交与回滚解析
  8. C语言:输入三个整数,从小到大排序!
  9. 年轻人必备的几个资源订阅号
  10. 有关冰川的小知识(1)