SVM-线性可分支持向量机

如果您想体验更好的阅读:请戳这里littlefish.top

函数间隔和几何间隔

给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为

$$w^* \cdot x+b^* =0 $$

以及相应的分类决策函数

$$f(x) = sign (w^* \cdot x + b^*)$$

称为线性可分支持向量机。

对于给定训练集合T和超平面$(w,b)$,定义超平面$(w,b)$关于样本点$(x _i,y_i)$的函数间隔为

$$\hat\gamma_i = y_i(w \cdot x_i + b)$$

定义超平面$(w,b)$关于训练数据集T的函数间隔为超平面$(w,b)$关于T中所有样本点$(x_i,y_i)$的函数间隔之最小值,

$$\hat\gamma = min_{i=1,...,N}\hat\gamma_i$$

对于给定的训练数据集和超平面$(w,b)$,定义超平面$(w,b)关于$样本$(x_i,y_i)$的几何间隔为

$$\hat\gamma_i = y_i(\frac w{||w||} \cdot x_i + \frac b{||w||})$$

定义超平面$(w,b)$关于训练数据集T的几何间隔为超平面$(w,b)$关于T中所有样本点$(x_i,y_i)$的几何间隔之最小值

$$\gamma = min_{i=1,...,N}\gamma_i$$

从而得到几何间隔和函数间隔的关系:

$$\gamma = \frac{\hat\gamma_i}{||w||}$$

间隔最大化

对数据集合找到几何间隔最大的超平面意味着以充分大的确信度来对训练数据进行分类。

最大化超平面可表示为:

$$max_{w,b} \quad {\gamma}\
s.t.\quad y_i(\frac w{||w||} \cdot x_i + \frac b{||w||}) \ge \gamma,\quad i=1,...,N$$

即最大化超平面$(w,b)$关于训练结合的间隔$\gamma$,约束条件表示的超平面$(w,b)$关于每个训练样本点的几何间隔至少为$\gamma$。

而函数间隔对于上述公式并没有影响,假设按比例改变为$\lambda w$和$\lambda b$,那么函数间隔改变为$\lambda \hat\gamma$

改变为相应的函数距离,如下

$$max_{w,b} \quad \frac{\hat\gamma}{||w||}\
s.t.\quad y_i(w \cdot x_i + b) \ge \hat\gamma,\quad i=1,...,N$$

由于分母和分子同时拥有$\lambda$,因此成比例改变并不会对函数间隔产生影响,从而对目标函数的优化也没有影响。

令$\hat\gamma$=1,代入上式,最大化$\frac1{||w||}$等价于最小化$\frac12||w||$,从而得到线性可分支持向量机学习的最优化问题

$$min_{w,b}\quad \frac12{||w||}^2\
s.t.\quad y_i(w\cdot x_i + b) - 1 \ge 0, \quad i=1,2,...,N$$

这是一个凸二次规划问题。

支持向量

在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量(support vector),即

$$y_i(w\cdot x_i+b) =1$$

对于y=+1的正例来说,支持向量在超平面

$$H_1:w\cdot x + b= 1$$

对于y=-1的负例来说,支持向量在超平面

$$H_2:w\cdot x + b = -1$$

如图中, H1和H2平行,之间形成一条长带,其宽度为$\frac 2 {||w||}$。在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用,如果移动支持向量改变所求的解,但是如果在间隔边界(H1和H2)以外移动其他实例点,解都不会发生改变。

对偶算法

为了求解线性可分支持向量机的最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到最优解。

定义拉格朗日函数:

$$L(w,b,\alpha) = \frac 1 2 {||w||}^2 - \sum_{i=0}^n \alpha_i y_i(w\cdot x_i + b) + \sum_{i=1}^N\alpha_i$$

其中,$\alpha = (\alpha_1, \alpha_2,...,\alpha_N)^T$为拉格朗日乘子向量。

根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题需要先求$L(w,b,\alpha)$对(w,b)求极小,再对$\alpha$求极大:

$$\max_\alpha \min_{w,b} L(w,b,\alpha)$$

  • $\min_{w,b} L(w,b,\alpha)$

分别对$w,b,\alpha$求偏导数,并令其等于0,将结果带入原公式中即得

$$\min_{w,b} L(w,b,\alpha) = -\frac 1 2 \sum_{i-=1}^N \sum_{j-=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum_{i=1}^N \alpha_i$$

  • 求$\min_{w,b} L(w, b, \alpha)$对$\alpha$的极大

$$\max_\alpha -\frac 1 2 \sum_{i-=1}^N \sum_{j-=1}^N \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) + \sum_{i=1}^N \alpha_i \
s.t.\quad \sum_{i=1}^N\alpha_i y_i=0, \quad \alpha_i > 0,i=1,2,...,N$$

等价于:

$$\min_\alpha \frac 1 2 \sum_{i-=1}^N \sum_{j-=1}^N \alpha_i \alpha_j y_i y_j(x_i \cdot x_j) - \sum_{i=1}^N \alpha_i \
s.t.\quad \sum_{i=1}^N\alpha_i y_i=0, \quad \alpha_i > 0, i=1,2,...,N$$

线性可分支持向量机学习算法

(1)构造并求解约束最优化问题

$$\min_\alpha \frac 1 2 \sum_{i-=1}^N \sum_{j-=1}^N \alpha_i \alpha_j y_i y_j(x_i \cdot x_j) - \sum_{i=1}^N \alpha_i \
s.t.\quad \sum_{i=1}^N\alpha_i y_i=0, \quad \alpha_i > 0, i=1,2,...,N$$

(2)计算

$$w^* = \sum_{i=1}^N \alpha_i^* y_i x_i$$

并选择$\alpha^*$的一个正分量$\alpha_j^*$,计算

$$b^* = y_i - \sum_{i=1}^N \alpha_i^*y_i(x_i \cdot x_j)$$

(3)求得分离超平面

$$w^* \cdot x + b^* = 0$$

分类决策函数

$$f(x) = sign(w^* \cdot x + b^*)$$

转载于:https://www.cnblogs.com/coder2012/p/4584673.html

SVM-线性可分支持向量机相关推荐

  1. 支持向量机(SVM):超平面及最大间隔化、支持向量机的数学模型、软间隔与硬间隔、线性可分支持向量机、线性支持向量机、非线性支持向量机、核函数、核函数选择、SMO算法、SVM vs LR、优缺点

    支持向量机(SVM):超平面及最大间隔化.支持向量机的数学模型.软间隔与硬间隔.线性可分支持向量机.线性支持向量机.非线性支持向量机.核函数.核函数选择.SMO算法.SVM vs LR.优缺点 目录

  2. SVM详解(一)线性可分支持向量机与硬间隔最大化

    文章目录 1. 引言 2. 函数间隔与几何间隔 3. 间隔最大化 4. 最大间隔分离超平面的存在唯一性 5. 支持向量和间隔边界 6. 学习的对偶算法 1. 引言 我们在介绍感知机的时候知道,对于线性 ...

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

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

  4. 【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类

    本文摘要 · 理论来源:[统计学习方法]第七章 SVM · 技术支持:pandas(读csv).numpy.sklearn.svm.svm思想.matplotlib.pyplot(绘图) · 代码目的 ...

  5. 统计学习方法笔记(五)-线性可分支持向量机原理及python实现

    支持向量机 支持向量机 线性可分支持向量机 最大间隔法 代码实现 案例地址 支持向量机 支持向量机(support vector machines,SVM)是一种二分类模型,它的基本类型是定义在特征空 ...

  6. 【机器学习基础】数学推导+纯Python实现机器学习算法8-9:线性可分支持向量机和线性支持向量机...

    Python机器学习算法实现 Author:louwill 前面两讲我们对感知机和神经网络进行了介绍.感知机作为一种线性分类模型,很难处理非线性问题.为了处理非线性的情况,在感知机模型的基础上有了两个 ...

  7. 【机器学习】SVM线性可分

    Introduction 支持向量机(Support Vector Machine,SVM)是定义在特征空间中的最大间隔线性分类器,对于非线性可分的数据,SVM引入核方法(kernel trick)使 ...

  8. 支持向量机——线性可分支持向量机

    文章目录 1 线性可分支持向量机 2 函数间隔和几何间隔 3 间隔最大化 4 学习的对偶算法 GitHub 简书 CSDN 1 线性可分支持向量机 支持向量机(Support vector machi ...

  9. 支持向量机之线性可分支持向量机(一)

    简介 支持向量机(support vector machines,SVM)是一种二分类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使得它有别于感知机:支持向量机还包括核技巧 ...

  10. 支持向量机(一)——线性可分支持向量机

    支持向量机(Support Vector Machine, SVM)是一种二分类模型.它的基本思想是间隔最大化. 1.线性可分支持向量机 给定训练集 T={(x1,y1),(x2,y2),...,(x ...

最新文章

  1. printf 格式控制符的完整格式
  2. UNIX环境高级编程笔记
  3. HL7数据类型分析(1)
  4. python---python基本算法的时间复杂度和空间复杂度
  5. c语言5名同学3门课程成绩,输入5名同学3门课程的成绩 求: 1)每门课程的平均成绩。2)找出最高分数所对应的学生和课程。...
  6. ODI接口开发案例:RMA(客户退货订单)同步
  7. 初为人师[/size]
  8. sketch插件导出html,Sketch插件根据命名导出HTML片段Sketch Emmet
  9. Radiology:影像组学:图像不仅仅是图片,它们还是数据
  10. 一文搞定计算机网络面试题
  11. java ice开发_ice开发流程(一)
  12. mysql练习-数据查询之嵌套查询
  13. 快速入门JavaScript
  14. 计算机英语词汇大全pdf,计算机英语(编程词汇大全).pdf
  15. iptables ipset详解
  16. 2.4G模块及SPI通讯
  17. Facebook因隐私设置获“老大哥”奖,有人想过它一直模仿的微信吗?
  18. 《全球互联网金融商业模式:格局与发展》——第1章,第2节互联网银行2.0
  19. springboot+vue计算机旅游管理系统 springboot+vue旅游网
  20. 铁路办公施工信息化管理系统软件平台

热门文章

  1. 前牙正常覆盖是多少_深覆合千万不要矫正?用图示告诉你深覆合深覆盖的区别是什么,有什么危害...
  2. getmethodid( android/widget/toast ),Android功能实现-Go语言中文社区
  3. pppoe路由桥混合模式_192.168.1.1路由器怎么设置和登陆
  4. sql server代理无法启动_DungProxy代理资源服务系统,
  5. Apache Jackrabbit Oak 1.12.0 发布,可扩展、高性能分层存储库
  6. spring boot入门之——2.0新特性以及模块化构建
  7. 114.maven+springmvc+spring+mybaties 项目整合
  8. kubernetes 升级到1.6
  9. 项目整理-支付宝的支付问题
  10. ORACLE 常用函数——日期/时间函数