SVM简介
支持向量机SVM(support vector machines)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。间隔最大使它有别于感知机。SVM还包括核技巧,这使它成为实际上的非线性分类器。SVM的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。

SVM的的学习算法就是求解凸二次规划的最优化算法。


SVM相关定义

1、分离超平面

w ⋅ x + b = 0 w·x+b=0 w⋅x+b=0

分离超平面由法向量w和截距b决定,可用(w,b)表示。分离超平面将特征空间划分为正类、负类两部分。法向量指向的一侧为正类,另一侧为负类。

2、分离决策函数

f ( x ) = s i g n ( w ∗ ⋅ x + b ∗ ) f(x)=sign(w^*·x+b^*) f(x)=sign(w∗⋅x+b∗)

式中sign又叫sgn,是符号函数,用来提取一个数字的符号。此处用来提取出来1或者-1,分别对应正例和反例。

3、函数间隔

对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(xi,yi)的函数间隔为:
γ ^ i = y i ( w ⋅ x i + b ) \hatγ_i=y_i(w·x_i+b) γ^​i​=yi​(w⋅xi​+b)
y(w·x+b)来表示分类的正确性及确信度,这就是函数间隔(function margin)。

定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点(xi,yi)的函数间隔之最小值,即:
γ ^ = min ⁡ i = 1 , ⋅ ⋅ ⋅ , N γ ^ i \hatγ=\min\limits_{i=1,···,N}\ \hatγ_i γ^​=i=1,⋅⋅⋅,Nmin​ γ^​i​

4、几何间隔

函数间隔可以表示分类预测的正确性及确信度。但是选择分离超平面时,只有函数间隔还不够,因为只要成比例地改变w和b,例如将它们改为2w和2b,超平面并没有改变,但函数间隔却成为原来的2倍
因此我们需要对超平面的法向量加以约束,如令||w||=1,使得间隔是确定的。此时函数间隔成为几何间隔(geometric margin)。
给出超平面(w,b)和其法向量w。点A表示某一实例xi,其类标记为yi=±1。点A与超平面(w,b)的距离由线段AB给出,记作γi
(1)如果A在超平面正的一侧,即yi=+1,点与超平面的距离:
γ i = w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ γ_i = \frac{w}{||w||}·x_i + \frac{b}{||w||} γi​=∣∣w∣∣w​⋅xi​+∣∣w∣∣b​

(2)如果A在超平面负的一侧,因为距离是正的,而括号内得出的结果是负的。yi=-1,点与超平面的距离:
γ i = − ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) γ_i =-( \frac{w}{||w||}·x_i + \frac{b}{||w||} ) γi​=−(∣∣w∣∣w​⋅xi​+∣∣w∣∣b​)

(3)一般地,当样本点(xi,yi)与超平面(w,b)正确分类时,点xi与超平面(w,b)的距离:
γ i = y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) γ_i =y_i( \frac{w}{||w||}·x_i + \frac{b}{||w||} ) γi​=yi​(∣∣w∣∣w​⋅xi​+∣∣w∣∣b​)

与函数间隔类似,训练数据集T与超平面(w,b)的间隔为所有点到超平面的几何间隔的最小值,即:
γ = min ⁡ i = 1 , ⋅ ⋅ ⋅ , N γ i γ=\min\limits_{i=1,···,N}\ γ_i γ=i=1,⋅⋅⋅,Nmin​ γi​网页链接:函数间隔到几何间隔的推导过程
从上面可以看出函数间隔和几何间隔有下面的关系:
γ = γ ^ ∣ ∣ w ∣ ∣ γ = \frac{\hat γ}{||w||} γ=∣∣w∣∣γ^​​

从上面的高亮字体中我们了解到w和b同比例变化时导致的函数间隔的改变对超平面是没有影响的,因此我们令 γ ^ = 1 \hat γ=1 γ^​=1,带入上式得到 γ = 1 ∣ ∣ w ∣ ∣ γ=\frac{1}{||w||} γ=∣∣w∣∣1​。又因 γ ^ = 1 ∣ ∣ w ∣ ∣ \hat γ=\frac{1}{||w||} γ^​=∣∣w∣∣1​的最大化和 γ = 1 2 ∣ ∣ w ∣ ∣ 2 γ=\frac{1}{2}||w||^2 γ=21​∣∣w∣∣2的最小化是相同的,因此就得到了下面线性可分支持向量机学习的最优化问题:
min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 \min\limits_{w,b} \frac{1}{2}||w||^2 w,bmin​21​∣∣w∣∣2

s . t . y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , … , N s.t. \ \ \ \ y_i(w·x_i+b)-1≥0,i=1,2,…,N s.t.    yi​(w⋅xi​+b)−1≥0,i=1,2,…,N

5、支持向量和间隔边界


(1)在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例成为支持向量(support vector),支持向量是使上面约束条件式等号成立的。在上图中,落在H1和H2上面的点即为支持向量。
(2)我们可以看到H1和H2是平行的,没有实例点落在他们中间。H1和H2之间的距离称为间隔(margin),间隔依赖于分离超平面的法向量w,等于 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2​,H1和H2称为间隔边界

6、支持向量机

由于支持向量在确定分离超平面中起着决定性作用,所以将这种分类模型称为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的“重要的”训练样本确定。
支持向量机由简至繁包括三种:
(1)线性可分支持向量机Linear support vector machine in linearly separable case
(2)线性支持向量机Linear support vector machine
(3)非线性支持向量机Non-Linear support vector machine
上面我们介绍的就是第一种最简单的情况。


线性可分支持向量机举例
如下图所示的训练数据集,其正例点是x1=(3,3)T,x2=(4,3)T,x3=(1,1)T,试求最大间隔分离超平面。

可能刚看到答案有点懵,公式是 m i n 1 2 ∣ ∣ w ∣ ∣ 2 min \frac{1}{2}||w||^2 min21​∣∣w∣∣2为什么会有w1和w2两个w。注意看坐标系,横坐标为x(1),纵坐标为x(2),每个x对应一个w,因此构造出的公式为 min ⁡ w , b 1 2 ( w 1 2 + w 2 2 ) \min \limits_{w,b}\ \frac{1}{2}(w_1^2+w_2^2) w,bmin​ 21​(w12​+w22​)。至于这个最优化问题的解是怎么求的,画个图就很清晰了。


SVM(二):对偶算法、SMO算法

函数间隔到几何间隔的推导过程

SVM(一):SVM入门相关推荐

  1. MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测

    MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测 目录 输出结果 代码设计 输出结果 代码设计 load BreastTissue_data.m ...

  2. ML之SVM:SVM算法的简介、应用、经典案例之详细攻略

    ML之SVM:SVM算法的简介.应用.经典案例之详细攻略 目录 SVM算法的简介 1.SVM模型分类-线性可分.线性.非线性 2.SVM的决策边界 3.SVM中的核函数 4.SVM算法推导 1.1.S ...

  3. python svm 实战_opencv-python 入门实战:传统方法Hog+svm实现目标检测

    写在前面 相信大家学过语言的朋友们都有这样经验:学习编程语言最快的方式就是直接看别人的源代码.别人代码看通了,基本上这门编程语言也就入门了. 文末将附上我自己写的代码,比较初级,适合入门学习.大佬看到 ...

  4. 机器学习入门(十六):SVM——线性 SVM,间隔由硬到软

    从线性可分 SVM 到线性 SVM 从现实情况引出线性 SVM 线性可分 SVM,这种 SVM 学习的训练数据本身就是线性可分的--可以很清晰地在特征向量空间里分成正集和负集. 线性可分 SVM 正负 ...

  5. 系统学习机器学习之SVM(四)--SVM算法总结

     这边文章介绍的相当浅显易懂,写的很好.算是SVM总结吧. 转自:http://www.blogjava.net/zhenandaci/category/31868.html (一)SVM的简介 ...

  6. 西瓜书《支持向量机SVM》 原始形式推导+拉格朗日乘数法的SVM形式+SVM对偶形式推导+SMO算法推导

  7. matlab svm auc,SVM分类后如何绘制AUC曲线

    给你一个例子: 准备数据 1.data:一个表达谱数据矩阵,行为样本,列为基因 2.risk:一个向量,各样本的分类向量 library('e1071') library(ROCR) train_da ...

  8. 机器学习笔记(十)——入门支持向量机(SVM)

    一.SVM原理与模型数学推导 支持向量机,SVM(Support Vector Machine),其实就是一个线性分类器.在最初接到这个算法时,我们可能会一头雾水:这个名词好奇怪[问号脸],怎么&qu ...

  9. 机器学习算法与Python实践之(四)支持向量机(SVM)实现

    机器学习算法与Python实践之(四)支持向量机(SVM)实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考 ...

  10. 关于SVM,面试官们都怎么问

    作者 | WEIWEI  整理 | NewBeeNLP 公式较多,希望大家耐心慢慢理清楚  写在前面 持续准备面试中...准备的过程中,慢慢发现,如果死记硬背的话很难,可当推导一遍并且细细研究里面的缘 ...

最新文章

  1. Webpack 的 HtmlWebpackPlugin 如何控制某个 chunks 的 inject 位置?
  2. linux下 C编程改变输出字体颜色
  3. 【Qt】2D绘图之双缓冲绘图
  4. win10电脑黑屏只有鼠标箭头_win7开机黑屏只有鼠标怎么办,我来教你解决
  5. c++-串的模式匹配
  6. Josephus问题的Java解决方法
  7. 从头开始-02.C语言基础
  8. C#使用并行任务库(TPL)
  9. 视频联网云平台EasyCVR集成海康EHome协议系列——配置及协议介绍
  10. html播放器参数,Windows Media Player网页播放器及其参数含义
  11. IDEA中 Maven name group、artifact、package区别
  12. 达人实测:天玑1000和骁龙765g哪个好-天玑1000和骁龙765g对比跑分
  13. oppo手机出现android什么坏了,OPPO手机提示“停止运行”怎么办 oppo停止运行的解决方法...
  14. 跨链安全隐患大,区块链下一代的互操作性该如何应对?
  15. 加速Pytorch安装的速度
  16. 关于大象,冰箱和软件项目报价的故事
  17. Eclipse - Reset Perspective
  18. android把音乐存到sd卡上,将离线音乐移动到Spotify for Android到SD卡 | MOS86
  19. mc9s08dz60添加BootLoader实现CANboot下载更新功能
  20. 删除错误提交的bit 历史_软件错误的历史

热门文章

  1. linux开放7050端口,Linux操作系统内核启动参数详细解析
  2. hdu 6194string string string 后缀自动机
  3. 嵌入式Linux--根文件系统(一)简介
  4. 第二讲 Java语言概述
  5. 公众号文章留言评论功能开通方法(详解)
  6. S7-1200PLC CPU集成模拟量输入通道接线和编程
  7. /proc/sysrq-trigger文件的功能
  8. 【转】[Qt教程] Qt串口通信全新专题
  9. 【区块链】以太坊Solidity编写一个简单的Hello World合约
  10. 视频教程-红孩儿网狐Cocos经典棋牌开发教程-手游开发