线性可分支持向量机--SVM(1)

线性可分支持向量机--SVM (1)
给定线性可分的数据集
假设输入空间(特征向量)为
,输出空间为
。
输入
表示实例的特征向量,对应于输入空间的点;
输出
表示示例的类别。
线性可分支持向量机的定义:
通过间隔最大化或者等价的求出相应的凸二次规划问题得到的分离超平面

以及决策函数:

*什么是间隔最大化呢?
首先需要定义间隔, 下面介绍了函数间隔和几何间隔,几何间隔可以理解为训练点到超平面的距离, 二维中就是点到直线的距离,我们要做的就是最小化几何间隔。
函数间隔和几何间隔
函数间隔
给定训练数据集T和超平面(w, b)
定义超平面(w,b)关于点(xi, yi)的函数间隔:

*函数间隔的理解:
描述了点x距离超平面的远近,对于正确分类的点来说,这个式子与函数间隔是相等的。因此,函数间隔可以表示分类预测的正确性和确信度。
但是,由于函数间隔会随着w, b 的改变而改变。例如,(w,b)和(2w, 2b)刻画的是同一个超平面,但是函数间隔却变为之前的2倍。因此要引入几何间隔的概念。
定义超平面(w,b)关于训练数据集T的函数间隔:
几何间隔
当样本点(xi, yi)被正确分类时,点xi与超平面(w,b)的距离可以表示为:

(可以联系二维空间中点到直线的距离来理解)
所以定义超平面(w,b)关于点(xi, yi)的几何间隔:

定义超平面(w,b)关于训练数据集T的几何间隔:

如图:

*几何间隔的理解:
几何间隔其实就是对函数间隔的规范化, 联系计算点到直线的公式, 几何间隔计算出来的就是欧几里得距离。
间隔最大化
间隔最大化可以写束最优化问题:

因为我们想要每一个最大化超平面(w,b)关于训练数据集的集合间隔
约束条件表示的是超平面(w, b)距离每个训练样本点的距离都至少是
代入函数间隔和几何间隔的关系, 得到:

不妨取
= 1,那么问题就变成了最大化
了,而

为什么取
呢?下面化简的时候就知道了。
那么我们得到凸二次规划问题如下:

*取
= 1的原因和影响:
原因就是上面说到的函数间隔会随着 w 的改变而改变,所以
的取值其实是不会影响最终的结果的,只需要优化 w 就可以了。
影响是, 如果取函数间隔
= 1, 那么满足
的点就是支持向量(最上面图中虚线上的两个点)
学习的对偶算法
将上面的二次规划问题转换成对偶问题(参考拉格朗日对偶性(Lagrange duality)),首先引入拉格朗日函数

原始问题是极小极大问题:

对偶问题是极大极小问题:

原理:
通过求对偶问题的最大值即可求得元问题的最小值
对偶问题的求解:
(1)求
对w,b求导得到:

得到Lagrange函数:

即:

(2)求
的极大,即是对偶问题:

即对偶问题为:

解出w, b
设求出了最优的一组解 
其中至少有一个
,可以求出最优的w, b
理由(反证法)(参考拉格朗日乘子(Lagrange multify)和KKT条件):
假如
,则由
可知,w = 0,这肯定不是最优解
因此, 至少有一个
, 求得最优的w, b:

分类决策函数可以写成:

算法的综述:

线性可分支持向量机--SVM(1)的更多相关文章
- 统计学习:线性可分支持向量机(SVM)
模型 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned} \tag{ ...
- 线性可分支持向量机与软间隔最大化--SVM(2)
线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...
- svm 之 线性可分支持向量机
定义:给定线性可分训练数据集,通过间隔最大化或等价的求解凸二次规划问题学习获得分离超平面和分类决策函数,称为线性可分支持向量机. 目录: • 函数间隔 • 几何间隔 • 间隔最大化 • 对偶算法 1. ...
- 统计学习2:线性可分支持向量机(Scipy实现)
1. 模型 1.1 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned ...
- 支持向量机(SVM)的推导(线性SVM、软间隔SVM、Kernel Trick)
线性可分支持向量机 给定线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习到的分离超平面为 \[w^{\ast }x+b^{\ast }=0\] 以及相应的决策函数 \[f\le ...
- 统计学习:线性支持向量机(SVM)
学习策略 软间隔最大化 上一章我们所定义的"线性可分支持向量机"要求训练数据是线性可分的.然而在实际中,训练数据往往包括异常值(outlier),故而常是线性不可分的.这就要求我们 ...
- 以图像分割为例浅谈支持向量机(SVM)
1. 什么是支持向量机? 在机器学习中,分类问题是一种非常常见也非常重要的问题.常见的分类方法有决策树.聚类方法.贝叶斯分类等等.举一个常见的分类的例子.如下图1所示,在平面直角坐标系中,有一些点 ...
- 机器学习之支持向量机—SVM原理代码实现
支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...
- 复习支持向量机(SVM)没空看书时,掌握下面的知识就够了
支持向量机(support vector machines, SVM)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器:支持向量机还包括核技巧,这使它成为实质上的非线性分类器. ...
随机推荐
- 【ABP】从零开始学习ABP_入门介绍
本文介绍自己入坑ABP的过程,一些ABP的相关文章.QQ群,以及ABP Zero示例项目的运行. 背景 作为一个半路出家学习编程的新人,之前工作中也断断续续写过一些代码,但底层核心一直没机会学习,所以 ...
- Redis 详解 (一) redis的简介和安装
目录 1.Redis 的简介 2.Redis 下载 3.安装环境 4.编译安装 5.启动Redis 6.关闭Redis 7.注意事项 工作中一直在用 Redis,但是一直没有进行系统的总结,这个系列的 ...
- x86平台inline hook原理和实现
概念 inline hook是一种通过修改机器码的方式来实现hook的技术. 原理 对于正常执行的程序,它的函数调用流程大概是这样的: 0x1000地址的call指令执行后跳转到0x3000地址处执行 ...
- 三十、SAP中的内置图标
一.选择[编辑]->[模式] 二.选中写入模式 三.选中图标 四.选择我们需要的图标 五.选中图标后,选择复制 六.点击之后,会回到代码界面,如下 七.执行结果如下,显示出了一个神奇的图标
- servlet 之 HttpServlet抽象类详解
Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口 ...
- hadoop的文件操作整理java
package dada; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; im ...
- Windows2008R2安装DNS和SQLServer200r2服务 (9.18第七天)
原文网址:https://www.cnblogs.com/yankaohaitaiwei/p/11538205.html 二.IIS搭建web服务器 1.格式化D盘,一定要选择NTFS!!!不然后面添 ...
- (转) Windows如何区分鼠标双击和两次单击
Windows如何区分鼠标双击和两次单击 http://lbsloveldm.blog.hexun.com/12212875_d.html 在Windows平台上,鼠标左键的按下.松开.快速的两次点击 ...
- 从华硕裁员、分拆业务看传统PC企业转型到底有多难?
近段时间,华硕的处境可谓"冰火两重天".一方面,华硕正式发布ROG游戏手机.这款手机以超强性能和华丽外观,让游戏玩家群体为之沸腾.即使最高售价高达12999元,还是有不少玩家趋之若 ...
- js中数字的4种遍历方式
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title> ...