为了理解svm算法,我这边以2位空间的点数据集分类为例,在二维空间中,直线的一般公式为:Ax+By+c=0;然后我们希望通过已有的数据点,求出直线的A,B,C三个参数,这就是SVM算法的目的。

(1)这里我们为了方便,我把直线的一般公式写成:

写成矩阵形式:

简化为:

先回忆一下点P(x1,x2)位于直线的上方和下方的计算公式,判断方法如下:

如果,则P点位于直线的下方;

如果,则点P位于直线的上方;

如果,则点位于直线上。

为了简便起见,我们令:,对于点P到直线的距离公式为:

有向距离函数d(p)有可能为正也有可能为负数,其代表点p位于直线的下方或者上方的意义,这个距离计算公式,在svm中称之为几何间隔函数。由于svm是有监督学习算法,因此一开始给定数据点集的时候,我们就可以从这些数据点集中知道其是位于直线的上方还是下方,假设数据点p的符号为y(p),其中:

这个对于训练数据时已知的。我们定义全局的几何间隔函数为:

其实说白了,就是计算训练数据中所有的点到直线的最短距离,该距离必为正数。因为我们的目的是求取直线,其实这个直线等价于:

因此我们求取的直线其实也可以简单写为:

这个叫做直线的归一化公式,我们直接求取这个归一化的直线,这是为了与上面的距离函数的计算简便,所以才用直线的归一化形式。由于因此上面的有向距离函数又可以简单的写为:

最后全局最小几何间隔函数为:

我们的目的便是要使得最小的距离rmin最大。即求解公式为:

这个公式其实又等价于:

这个便是目前为止的推导出来的公式,看以下这个公式的物理意义,r其实是训练数据点到直线的最短距离,我们的目的便,svm算法中为了简便起见,对r做了归一化。然而求解:

因此:

因此公式进一步演化为:

而这一步,其实又等价于:

也就是说我们要求解w,b使得满足最小的同时,满足约束条件:所有训练数据点到直线的距离的最小值大于1。这就是svm算法的最初公式,也就是说我们后面接着要做的事就是求解上面这个公式,然而上面这个公式的求解可不是那么简单就可以求解的,后面我的博文将继续详解这个约束优化方程的求解。

机器学习(六)支持向量机svm初级篇相关推荐

  1. 机器学习实战 支持向量机SVM 代码解析

    机器学习实战 支持向量机SVM 代码解析 <机器学习实战>用代码实现了算法,理解源代码更有助于我们掌握算法,但是比较适合有一定基础的小伙伴.svm这章代码看起来风轻云淡,实则对于新手来说有 ...

  2. 机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)

    目录 一.ROC曲线 二.TP.FP.TN.FN 三. python绘制ROC曲线(二分类) 1.思路 2.关键代码 3.完整代码 四. python绘制ROC曲线(多分类) 五.参考文献 一.ROC ...

  3. 优达学城机器学习之--支持向量机(SVM)

    前言 SVM是支持向量机的简称(Support Vector Machine) 文章目录如下: 简述 选择分隔线 核函数(kernel)及其参数c, gamma 过拟合 over-fitting SV ...

  4. OpenCV之ml 模块. 机器学习:支持向量机(SVM)介绍 支持向量机对线性不可分数据的处理

    支持向量机(SVM)介绍 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 CvSVM::train 训练一个SVM分类器, 以及用 CvSVM::predict 测试训练结果. 什么是支持向 ...

  5. 机器学习:支持向量机SVM的SVC和SVR

    支持向量机SVM SVM的工作原理及分类 支持向量机的原理 线性可分的SVM 非线性可分的支持向量机 支持向量机分类SVC 支持向量机回归SVR SVR原理 SVR模型 时间序列曲线预测 SVM的工作 ...

  6. 机器学习(七)支持向量机svm中级篇

    上一篇博文中我们得到的最后求解方程是: 接着我们将详解它的求解方法.这一步涉及到拉格朗日求解问题,有点难,建议如果想学这个问题是怎么求解的,先去好好学学拉格朗日的对偶问题求解. 一.数学基础知识复习: ...

  7. 机器学习(八)支持向量机svm终结篇

    一.SMO算法简单推导 前面讲了一大堆都是理论推导,最后得到的公式是: KKT条件为: 接着我们要将的就是如何求解,编程如何实现,这才是我们学习的真正目的. 在这里我们先不管KKT条件,相关公式推导, ...

  8. [机器学习-实践]支持向量机(SVM)从例子代码中学习

    [机器学习-原理篇]支持向量机(SVM)深入理解 1.用SVM的linear做鸢尾花分类 利用sklearn中自带的dataset,鸢尾花数据库为例,进行二分类. #载入鸢尾花数据集,datasets ...

  9. 机器学习:支持向量机SVM和人工神经网络ANN的比较

    在统计学习理论中发展起来的支持向量机(Support Vector Machines, SVM)方法是一种新的通用学习方法,表现出理论和实践上的优势.SVM在非线性分类.函数逼近.模式识别等应用中有非 ...

最新文章

  1. 在线作图|如何绘制一张三元相图
  2. linux下两个进程可以同时打开同一个文件吗?返回的文件描述符一样吗?
  3. BugkuCTF-Misc:白哥的鸽子
  4. 四十六、和我一起看看,国外的Python考试到底是怎么样(下篇)
  5. 大一大学计算机课后答案,南昌大学计算机作业答案(大一)
  6. 任正非:将来华为岗位分三类 职员类岗位不涉及末位淘汰
  7. 关于OATUH中的AUTHRAZITON CODE和TOKEN的关系,实际上就是这么回事
  8. Spark 学习【一】
  9. 第十六届“振兴杯”计算机网络管理员赛项理论参考题库(2)多选
  10. Linux设备模型分析之bus
  11. 小猫爪:AWR294x学习笔记02-AWR294x之DPMIPC
  12. 2017车载后市场年终回顾:天下武功,唯快不破
  13. 如何确定系统上的CPU插槽数量
  14. Proximal Point Algorithm(PPA)
  15. C语言实现估计信号的幅度
  16. 【华人学者风采】聂礼强 山东大学
  17. RAD Studio 11中文发布会录像
  18. JS实例:网页特效-自动刷新页面
  19. 算法分析五:回溯法与分⽀限界法
  20. python分析股票数据的项目_用Python分析股市指数

热门文章

  1. python 金字塔的程序_python生成金字塔
  2. amaplocation无法获取高度_kali一款高度可定制的WiFi钓鱼工具 WiFiPhisher
  3. oracle绑定值的结尾,Oracle Sql字符串多余空格处理方法小记
  4. java file的相对路径_JAVA File的建立及相对路径绝对路径
  5. c++ jna 数据类型_JNA实战笔记汇总一 简单认识JNA|成功调用JNA
  6. 传感器工作原理_光电式速度传感器的工作原理
  7. html前进2格2em,HTML2
  8. Mac 安装 homebrew 流程 以及 停在 Updating Homebrew等 常见错误解决方法
  9. Ubuntu安装时怎样分区
  10. 给xen虚拟机添加硬盘分区格式化