样本(\(x_{i}\),\(y_{i}\))个数为\(m\):

\[\{x_{1},x_{2},x_{3}...x_{m}\}
\]

\[\{y_{1},y_{2},y_{3}...y_{m}\}
\]

其中\(x_{i}\)为\(n\)维向量:

\[x_{i}=\{x_{i1},x_{i2},x_{i3}...x_{in}\}
\]

其中\(y_i\)为类别标签:

\[y_{i}\in\{-1,1\}
\]

其中\(w\)为\(n\)维向量:

\[w=\{w_{1},w_{2},w_{3}...w_{n}\}
\]

函数间隔\(r_{fi}\):

\[r_{fi}=y_i(wx_i+b)
\]

几何间隔\(r_{di}\):

\[r_{di}=\frac{r_{fi}}{\left \| w \right \|}
=\frac{y_i(wx_i+b)}{\left \| w \right \|}
\]

最小函数间隔\(r_{fmin}\):

\[r_{fmin}=\underset{i}{min}\{y_i(wx_i+b)\}
\]

最小几何间隔\(r_{dmin}\):

\[r_{dmin}=\frac{r_{fmin}}{\left \| w \right \|}
=\frac{1}{\left \| w \right \|}*\underset{i}{min}\{y_i(wx_i+b)\}
\]

目标是最大化最小几何间隔\(r_{dmin}\):

\[max\{r_{dmin}\}=
\underset{w,b}{max}\{\frac{1}{\left \| w \right \|}*\underset{i}{min}\{y_i(wx_i+b)\}\}
\]

最小几何间隔的特点:等比例的缩放\(w,b\),最小几何间隔\(r_{dmin}\)的值不变。

因此可以通过等比例的缩放\(w,b\),使得最小函数间隔\(r_{fmin}\)=1,即:

\[\underset{i}{min}\{y_i(wx_i+b)\}=1
\]

此时会产生一个约束条件:

\[y_i(wx_i+b)\geq 1
\]

最终优化目标为:

\[\left\{\begin{matrix}
\underset{w,b}{max}\frac{1}{\left \| w \right \|}
\\
y_i(wx_i+b)\geq 1
\end{matrix}\right.
=
\left\{\begin{matrix}
\underset{w,b}{min}\frac{1}{2}{\left \| w \right \|}^2
\\
y_i(wx_i+b)\geq 1
\end{matrix}\right.
\]

支持向量机SVM推导的更多相关文章

  1. [转] 从零推导支持向量机 (SVM)

    原文连接 - https://zhuanlan.zhihu.com/p/31652569 摘要 支持向量机 (SVM) 是一个非常经典且高效的分类模型.但是,支持向量机中涉及许多复杂的数学推导,并需要 ...

  2. 以图像分割为例浅谈支持向量机(SVM)

    1. 什么是支持向量机?   在机器学习中,分类问题是一种非常常见也非常重要的问题.常见的分类方法有决策树.聚类方法.贝叶斯分类等等.举一个常见的分类的例子.如下图1所示,在平面直角坐标系中,有一些点 ...

  3. 机器学习之支持向量机—SVM原理代码实现

    支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...

  4. 一步步教你轻松学支持向量机SVM算法之案例篇2

    一步步教你轻松学支持向量机SVM算法之案例篇2 (白宁超 2018年10月22日10:09:07) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...

  5. OpenCV 学习笔记 07 支持向量机SVM(flag)

    1 SVM 基本概念 本章节主要从文字层面来概括性理解 SVM. 支持向量机(support vector machine,简SVM)是二类分类模型. 在机器学习中,它在分类与回归分析中分析数据的监督 ...

  6. 转:机器学习中的算法(2)-支持向量机(SVM)基础

    机器学习中的算法(2)-支持向量机(SVM)基础 转:http://www.cnblogs.com/LeftNotEasy/archive/2011/05/02/basic-of-svm.html 版 ...

  7. 【Supervised Learning】支持向量机SVM (to explain Support Vector Machines (SVM) like I am a 5 year old )

    Support Vector Machines 引言 内核方法是模式分析中非常有用的算法,其中最著名的一个是支持向量机SVM 工程师在于合理使用你所拥有的toolkit 相关代码 sklearn-SV ...

  8. OpenCV支持向量机SVM对线性不可分数据的处理

    支持向量机对线性不可分数据的处理 目标 本文档尝试解答如下问题: 在训练数据线性不可分时,如何定义此情形下支持向量机的最优化问题. 如何设置 CvSVMParams 中的参数来解决此类问题. 动机 为 ...

  9. 【机器学习】支持向量机SVM

    关于支持向量机SVM,这里也只是简单地作个要点梳理,尤其是要注意的是SVM的SMO优化算法.核函数的选择以及参数调整.在此不作过多阐述,单从应用层面来讲,重点在于如何使用libsvm,但对其原理算法要 ...

随机推荐

  1. LeetCode43,一题让你学会高精度算法

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode系列第22篇文章,今天讲的内容是高精度算法. 今天和大家讨论的算法是高精度,对应的LeetCode是第43题.题面其实 ...

  2. Shell 截取字符串方法

    原文链接 方法1 "${varible##*string}" 从左向右截取最后一个string后的字符串 e.g. exampleString="abc//888//ab ...

  3. cmdb客户端代码完善2

    目录: 1.面试提问 2.完善采集端代码 3.唯一标识的问题 4.API的验证 1.面试会问到的问题: # 1. 为啥要做CMDB?# - 实现运维自动化, 而CMDB是实现运维自动化的基石# - 之 ...

  4. 【2019牛客暑期多校第一场】E题ABBA

    题目链接 大致题意 有(n+m)(n + m)(n+m)个字母A和(n+m)(n + m)(n+m)个字母B,组成一个长度为 2∗(n+m)2*(n + m)2∗(n+m)的字符串,并且使得字符串中有 ...

  5. Serpent.AI - 游戏代理框架(Python)

    Serpent.AI - 游戏代理框架(Python) Serpent.AI是一个简单而强大的新颖框架,可帮助开发人员创建游戏代理.将您拥有的任何视频游戏变成一个成熟的实验的沙箱环境,所有这些都是熟悉 ...

  6. Spring - 数据库开发概述

      Spring 数据库开发 Spring 的 JDBC 模块负责数据库资源管理和镨误处理,大大简化了开发人员对数据库的操作,使得开发人员可以从繁琐的数据库操作中解脱出来,从而将更多的精力投入到编写业 ...

  7. TensorFlow报错module 'tensorflow' has no attribute 'xxx'解决办法

    原因:TensorFlow2.0版本修改了许多函数名字 tf.sub()更改为tf.subtract() tf.mul()更改为tf.multiply() tf.types.float32更改为tf. ...

  8. WiX 自定义

    WiX 允许用户做一些自定义操作 用户界面向导 对于安装界面,用户可以用自己的位图.图标和许可证文本替换默认的.它们的路径存储在变量中,您可以在命令行或直接在源代码中指定这些变量: <WixVa ...

  9. Python turtle库的应用——蛇

    turtle库介绍 1.Turtle中的turtle.setup()函数用于启动一个图形窗口,它有四个参数 turtle.setup(width, height, startx, starty) 分别 ...

  10. Babel快速入门

    作者:姜瑞涛 Github仓库:https://github.com/jruit/babel-tutorial 博客:姜瑞涛的官方网站 原文链接:https://www.jiangruitao.com ...