支持向量机(SVM)

断断续续看了好多天,赶紧补上坑。

感谢july大神的 http://blog.csdn.net/v_july_v/article/details/7624837/

以及CSDN上淘的比较正规的SMO模板代码。

①最大化几何间隔。

如果数据能一道线切开的话,我们希望离这道线最近的点的距离越长越好,否则容易分类错误,这就是SVM的核心。

定义函数间隔di=y(wxi+b),其中y=1 or -1,问题在于2*di和di是等效的分隔平面,所以弃之。

所以又定义几何距离D=d/||w||。||w||=根号(w1^2+w2^2+...wn^2)

目标函数max D,约束条件di=y(wxi+b)>=d, 这里的d是取最小的函数间隔,保证离分割平面最近,且最大化距离。

化简处理:令w’=w/d, b’=b/d, 这样约束条件等式相当于两边被除了d,变成di=y(w’xi+b)>=1,

D也相当于变成1/||w||,为了方便,以后w’全部用w代替。

di=y(wxi+b)>=1, 这是个有趣的式子,由于y=±1,单独取出(wxi+b),那么±1的就是传说中里分隔平面最近的点了,称之为支持向量。

②探究规划问题

目标函数=max D=max 1/||w||,分式好讨厌,等效成min (数学原理不知道是啥=。=)

然后引入拉格朗日乘子α,把目标函数、约束条件捆在一起成一个式子。

这样有新的目标函数:

这个式子很容易被误解,它的max针对的是

min针对的是,注意看min/max底部,不要很矛盾地理解成对整个式子。

max部分是重点,引入变量α,成为拉格朗日乘子。max这部分的意义在于等效约束条件,

由于y(wxi+b)>=1,如果出现小于1的情况,那么减去的这部分就是一个负数,负负得正,会使前面的min黯然失色。至于大于1的情况,可以令α=0 踢掉它。

最理想的情况下,=min 

然而这个式子还是比较麻烦的,min规划是先决条件,然后还要考虑不定的乘子部分。

利用拉格朗日对偶性大法,逆转下两个条件,变成对偶规划问题。,要满足KKT条件,就有d*<=p*。

KKT条件说白了就是0<=α<=C. (define C 100)

这样就可以先定住max求min,最后再求max了。

③大道至简

min部分化简很神奇,最后w、b不见了,变成了

加上max以及min部分的约束条件之后

max部分由SMO算法完成,SMO每次抽取确定两个乘子,然后更新w、b

更新w:。

更新b:

时间: 2024-10-29 19:06:42

支持向量机(SVM)的相关文章

支持向量机(SVM)(二)-- 拉格朗日对偶(Lagrange duality)

简介: 1.在之前我们把要寻找最优的分割超平面的问题转化为带有一系列不等式约束的优化问题.这个最优化问题被称作原问题.我们不会直接解它,而是把它转化为对偶问题进行解决. 2.为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点.即拉格朗日函数,再通过这个函数来寻找最优点. 3.约束条件可以分成不等式约束条件和等式约束条件,只有等式约束条件的问题我们在高等数学课

支持向量机(SVM)(五)-- SMO算法详解

一.我们先回顾下SVM问题. A.线性可分问题 1.SVM基本原理: SVM使用一种非线性映射,把原训练            数据映射到较高的维.在新的维上,搜索最佳分离超平面,两个类的数据总可以被超平面分开. 2.问题的提出: 3.如何选取最优的划分直线f(x)呢? 4.求解:凸二次规划 建立拉格朗日函数: 求偏导数: B.线性不可分问题 1.核函数 如下图:横轴上端点a和b之间红色部分里的所有点定为正类,两边的黑色部分里的点定为负类. 设: g(x)转化为f(y)=<a,y> g(x)=

第八篇:支持向量机 (SVM)

前言 本文讲解如何使用R语言中e1071包中的SVM函数进行分类操作,并以一个关于鸢尾花分类的实例演示具体分类步骤. 分析总体流程 1. 载入并了解数据集:2. 对数据集进行训练并生成模型:3. 在此模型之上调用测试数据集进行分类测试:4. 查看分类结果:5. 进行各种参数的调试并重复2-4直至分类的结果让人满意为止. 参数调整策略 综合来说,主要有以下四个方面需要调整: 1. 选择合适的核函数:2. 调整误分点容忍度参数cost:3. 调整各核函数的参数:4. 调整各样本的权重. 其中,对于特

机器学习第7周-炼数成金-支持向量机SVM

支持向量机SVM 原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率源于Vapnik和Chervonenkis关于统计学习的早期工作(1971年),第一篇有关论文由Boser.Guyon.Vapnik发表在1992年(参考文档见韩家炜书9.10节)思想直观,但细节异常复杂,内容涉及凸分析算法,核函数,神经网络等高深的领域,几乎可以写成单独的大部头与著.大部分非与业人士会觉得难以理解.某名人评论:SVM是让应用数学家真正得到应用的一种算法 思路 简单情况,线性可分,把问题转化为一个

机器学习与数据挖掘-支持向量机(SVM)(一)

最近在看斯坦福大学的机器学习的公开课,学习了支持向量机,再结合网上各位大神的学习经验总结了自己的一些关于支持向量机知识. 一.什么是支持向量机(SVM)? 1.支持向量机(Support Vector Machine,常简称为SVM)是一种监督式学习的方法,可广泛地应用于统计分类以及回归分析.支持向量机属于一般化线性分类器,这族分类器的特点是他们能够同时最小化经验误差与最大化几何边缘区,因此支持向量机也被称为最大边缘区分类器. 2.支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个

支持向量机SVM的SMO方法实现

hdu 1163 Eddy's digital Roots Problem Description The digital root of a positive integer is found by summing the digits of the integer. If the resulting value is a single digit then that digit is the digital root. If the resulting value contains two

opencv 支持向量机SVM分类器

支持向量机SVM是从线性可分情况下的最优分类面提出的.所谓最优分类,就是要求分类线不但能够将两类无错误的分开,而且两类之间的分类间隔最大,前者是保证经验风险最小(为0),而通过后面的讨论我们看到,使分类间隔最大实际上就是使得推广性中的置信范围最小.推广到高维空间,最优分类线就成为最优分类面. 支持向量机是利用分类间隔的思想进行训练的,它依赖于对数据的预处理,即,在更高维的空间表达原始模式.通过适当的到一个足够高维的非线性映射,分别属于两类的原始数据就能够被一个超平面来分隔.如下图所示: 空心点和

【转载】支持向量机SVM(一)

支持向量机SVM(一) [转载请注明出处]http://www.cnblogs.com/jerrylead 1 简介 支持向量机基本上是最好的有监督学习算法了.最开始接触SVM是去年暑假的时候,老师要求交<统计学习理论>的报告,那时去网上下了一份入门教程,里面讲的很通俗,当时只是大致了解了一些相关概念.这次斯坦福提供的学习材料,让我重新学习了一些SVM知识.我看很多正统的讲法都是从VC 维理论和结构风险最小原理出发,然后引出SVM什么的,还有些资料上来就讲分类超平面什么的.这份材料从前几节讲的

【转载】支持向量机SVM(二)

支持向量机SVM(二) [转载请注明出处]http://www.cnblogs.com/jerrylead 6 拉格朗日对偶(Lagrange duality) 先抛开上面的二次规划问题,先来看看存在等式约束的极值问题求法,比如下面的最优化问题: 目标函数是f(w),下面是等式约束.通常解法是引入拉格朗日算子,这里使用来表示算子,得到拉格朗日公式为 L是等式约束的个数. 然后分别对w和求偏导,使得偏导数等于0,然后解出w和.至于为什么引入拉格朗日算子可以求出极值,原因是f(w)的dw变化方向受其

OpenCV支持向量机(SVM)介绍

支持向量机(SVM)介绍 目标 本文档尝试解答如下问题: 如何使用OpenCV函数 CvSVM::train 训练一个SVM分类器, 以及用 CvSVM::predict 测试训练结果. 什么是支持向量机(SVM)? 支持向量机 (SVM) 是一个类分类器,正式的定义是一个能够将不同类样本在样本空间分隔的超平面. 换句话说,给定一些标记(label)好的训练样本 (监督式学习), SVM算法输出一个最优化的分隔超平面. 如何来界定一个超平面是不是最优的呢? 考虑如下问题: 假设给定一些分属于两类