支持向量机support vector machines
来源:互联网 发布:nginx生成ssl证书 编辑:程序博客网 时间:2024/05/21 04:39
本文是《统计学习方法》李航著学习笔记。
为了叙述方便,将support vector machines简称SVM。SVM是一种二类分类模型,利用SVM对预测实例点进行分类就是根据决策函数的符号划归正负类,下面论述过程主要是有关SVM的模型学习过程。
通常针对三种情况构建SVM学习模型:
1.)对线性可分数据集,构建硬间隔最大化的线性可分支持向量机
2.)对存在一些特异点的近似线性可分数据集,构建软间隔最大化的线性支持向量机
3.)对非线性可分数据集(只有利用非线性模型才能很好的进行分类),利用核技巧构建非线性支持向量机
SVM的建模过程主要在于利用凸优化的Lagrange对偶形式,对“间隔最大优化模型”的转化。SVM是对感知机模型的改进,感知机的内容参考http://blog.csdn.net/cymy001/article/details/77992416
—————————————————————————
在欧式空间中,点
参考点到直线的距离
函数间隔:
对给定的训练数据集
定义超平面
几何间隔:
对给定的训练数据集
定义超平面
线性可分支持向量机
定义:给定线性可分训练数据集,通过间隔最大化学习得到分离超平面
称相应的分类决策函数
为线性可分支持向量机。
区别于感知机模型,SVM模型的基本想法是用“一个点距离分离超平面的远近”表示“分类预测的确信程度”,即学习目标是求一个能正确划分训练数据集,并且几何间隔最大的分离超平面,以充分大的确信度对训练数据进行分类,这里点到分离超平面的距离即用几何间隔度量。
(1.)先考虑SVM的建模和问题转化:
基于以上想法,有如下的SVM学习目标
其等价表述为
考虑函数间隔和几何间隔的关系,以及函数间隔对距离影响的相对性,如果令
再将目标函数转化成其等价极小化形式
目标函数是二次型,约束条件是线性的,所以原始问题是典型的凸二次规划问题。有关原始问题凸二次规划解的存在唯一性在此不做证明,下面将利用对偶算法将SVM模型转化成更便于求解的对偶问题。
由原始问题可定义Lagrange函数:
这里
所以原始问题等价于
当存在实例点使
由于原始问题是广义拉格朗日函数的极小极大问题,故其对偶问题是广义拉格朗日函数的极大极小问题
先求内层函数:
由
代入
再考虑外层函数:
需要满足约束
从上式可见,对偶问题的约束条件相比原始问题更易于处理。
(2.)要求模型参数
A.如何求解对偶问题,解出
B.如何根据
对于A.问题,会在三种支持向量机模型都给出之后,进行叙述,即序列最小最优化方法sequential minimal optimization,SMO算法。
对于B.问题,是基于优化问题的一阶最优性必要条件——KKT条件推出的,具体过程如下。
由于最优超平面
从上式易解出:
从而可得分类决策函数
支持向量:
对应
—————————————————————————
线性支持向量机
对于给定的线性不可分的训练数据集,由于存在一些特异点,导致约束
不是对每个
这是,可以引入松弛变量
同时,对目标函数增加罚项
上式就是线性支持向量机的原始问题模型。可证明
类似线性可分支持向量机的学习过程,可以构建线性支持向量机原始问题的Lagrange函数
对偶问题是
即
至此,就完成了模型的转化工作。
当存在
利用以上KKT条件可求得模型参数
从而可得分类决策函数
对于线性支持向量机,实例点到分离超平面的距离为
—————————————————————————
非线性支持向量机
对非线性可分数据集(只有利用非线性模型才能很好的进行分类),利用核技巧构建非线性支持向量机,就是使用一个映射变换将输入空间
在线性支持向量机中,对偶问题模型及其分类决策函数涉及到的内积包含“训练实例点
基于定义在
由此可定义线性组合
所有形如
对于
可以验证运算
也就是,当存在从
可验证,对任意一组
是半正定时,
通常,使用的正定核有多项式核函数
利用核函数可得非线性支持向量机对偶问题的模型
对应的分类决策函数为
—————————————————————————
SMO算法
前面提到过,该算法主要是用于求解对偶问题。
首先,给定初始的
然后,利用约束条件可以将二次规划子问题转化成单变量求极值问题。
对于二次规划子问题的两个变量的选择标准:一个是违反KKT条件最严重的一个,另一个是使目标函数有足够下降的。
- SVM(Support Vector Machines):支持向量机
- 支持向量机 Support Vector Machines
- 支持向量机(support vector machines, SVM)
- 支持向量机(Support Vector machines)
- 支持向量机 Support Vector Machines (SVM)
- 支持向量机support vector machines
- Stanford ML - Support Vector Machines 支持向量机
- 支持向量机(Support Vector Machines SVM)基础学习
- Twin Support Vector Machines(孪生支持向量机)
- (五)Support Vector Machines[支持向量机]
- scikit-learn学习1.4. 支持向量机(Support Vector Machines)
- 机器学习之支持向量机: Support Vector Machines (SVM)
- 支持向量机(support vector machines)-SVM
- 支持向量机SVM(Support Vector Machines)介绍
- 支持向量机(Support Vector Machines, SVM)讲解
- Stanford Machine Learning: (5). Support Vector Machines(SVM支持向量机)
- Machine Learning - XII. Support Vector Machines支持向量机(Week 7)
- 海量数据挖掘MMDS week6: 支持向量机Support-Vector Machines,SVM
- 暑假总结(六)
- C语言初步-第43讲: 从文本文件中读入数据(成绩统计)
- Java中的溢出现象
- SpringBoot
- EasyPlayerPro(Windows)开发系列之采用ffmpeg进行录像
- 支持向量机support vector machines
- 暑假总结(七)
- 隐式数据类型转换
- Ubuntu安装Atom的activate-power-mode插件
- 算法----八皇后扩展
- Keras私房手册
- 停课总结(一)
- 图片下的阴影 box-shadow
- 文件自删除的一些资料与实现