SVM-线性可分支持向量机

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

函数间隔和几何间隔

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

w\*⋅x+b\*=0w\*⋅x+b\*=0

以及相应的分类决策函数

f(x)=sign(w\*⋅x+b\*)f(x)=sign(w\*⋅x+b\*)

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

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

γ^i=yi(w⋅xi+b)γ^i=yi(w⋅xi+b)

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

γ^=mini=1,...,Nγ^iγ^=mini=1,...,Nγ^i

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

γ^i=yi(w||w||⋅xi+b||w||)γ^i=yi(w||w||⋅xi+b||w||)

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

γ=mini=1,...,Nγiγ=mini=1,...,Nγi

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

γ=γ^i||w||γ=γ^i||w||

间隔最大化

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

最大化超平面可表示为:

maxw,bγs.t.yi(w||w||⋅xi+b||w||)≥γ,i=1,...,Nmaxw,bγs.t.yi(w||w||⋅xi+b||w||)≥γ,i=1,...,N

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

而函数间隔对于上述公式并没有影响,假设按比例改变为λwλw和λbλb,那么函数间隔改变为λγ^λγ^

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

maxw,bγ^||w||s.t.yi(w⋅xi+b)≥γ^,i=1,...,Nmaxw,bγ^||w||s.t.yi(w⋅xi+b)≥γ^,i=1,...,N

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

令γ^γ^=1,代入上式,最大化1||w||1||w||等价于最小化12||w||12||w||,从而得到线性可分支持向量机学习的最优化问题

minw,b12||w||2s.t.yi(w⋅xi+b)−1≥0,i=1,2,...,Nminw,b12||w||2s.t.yi(w⋅xi+b)−1≥0,i=1,2,...,N

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

支持向量

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

yi(w⋅xi+b)=1yi(w⋅xi+b)=1

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

H1:w⋅x+b=1H1:w⋅x+b=1

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

H2:w⋅x+b=−1H2:w⋅x+b=−1

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

对偶算法

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

定义拉格朗日函数:

L(w,b,α)=12||w||2−∑_i=0nα_iy_i(w⋅x_i+b)+∑_i=1Nα_iL(w,b,α)=12||w||2−∑_i=0nα_iy_i(w⋅x_i+b)+∑_i=1Nα_i

其中,α=(α_1,α_2,...,α_N)Tα=(α_1,α_2,...,α_N)T为拉格朗日乘子向量。

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

max_αmin_w,bL(w,b,α)max_αmin_w,bL(w,b,α)

  • min_w,bL(w,b,α)min_w,bL(w,b,α)

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

min_w,bL(w,b,α)=−12∑_i−=1N∑_j−=1Nα_iα_jy_iy_j(x_i⋅x_j)+∑_i=1Nα_imin_w,bL(w,b,α)=−12∑_i−=1N∑_j−=1Nα_iα_jy_iy_j(x_i⋅x_j)+∑_i=1Nα_i

  • 求min_w,bL(w,b,α)min_w,bL(w,b,α)对αα的极大

max_α−12∑_i−=1N∑_j−=1Nα_iα_jy_iy_j(x_i⋅x_j)+∑_i=1Nα_is.t.∑_i=1Nα_iy_i=0,α_i>0,i=1,2,...,Nmax_α−12∑_i−=1N∑_j−=1Nα_iα_jy_iy_j(x_i⋅x_j)+∑_i=1Nα_is.t.∑_i=1Nα_iy_i=0,α_i>0,i=1,2,...,N

等价于:

min_α12∑_i−=1N∑_j−=1Nα_iα_jy_iy_j(x_i⋅x_j)−∑_i=1Nα_is.t.∑_i=1Nα_iy_i=0,α_i>0,i=1,2,...,Nmin_α12∑_i−=1N∑_j−=1Nα_iα_jy_iy_j(x_i⋅x_j)−∑_i=1Nα_is.t.∑_i=1Nα_iy_i=0,α_i>0,i=1,2,...,N

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

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

min_α12∑_i−=1N∑_j−=1Nα_iα_jy_iy_j(x_i⋅x_j)−∑_i=1Nα_is.t.∑_i=1Nα_iy_i=0,α_i>0,i=1,2,...,Nmin_α12∑_i−=1N∑_j−=1Nα_iα_jy_iy_j(x_i⋅x_j)−∑_i=1Nα_is.t.∑_i=1Nα_iy_i=0,α_i>0,i=1,2,...,N

(2)计算

w\*=∑i=1Nα\*iyixiw\*=∑i=1Nαi\*yixi

并选择α\*α\*的一个正分量α\*jαj\*,计算

b\*=y_i−∑i=1Nα\*iyi(xi⋅xj)b\*=y_i−∑i=1Nαi\*yi(xi⋅xj)

(3)求得分离超平面

w\*⋅x+b\*=0w\*⋅x+b\*=0

分类决策函数

f(x)=sign(w\*⋅x+b∗\)f(x)=sign(w\*⋅x+b∗\)


本文 由 cococo点点 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:cococo点点 http://www.cnblogs.com/coder2012

时间: 2024-08-30 10:33:25

SVM-线性可分支持向量机的相关文章

svm-matlab编写SVM线性分类器,提示如下错误怎么办?求指导,菜鸟一枚

问题描述 matlab编写SVM线性分类器,提示如下错误怎么办?求指导,菜鸟一枚 Warning: The default trust-region-reflective algorithm does not solve problems with theconstraints you have specified. FMINCON will use the active-set algorithm instead. Forinformation on applicable algorithms

机器学习之深入理解SVM

在浏览本篇博客之前,最好先查看一下我写的另一篇文章机器学习之初识SVM(点击可查阅哦),这样可以更好地为了结以下内容做铺垫! 支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机.线性支持向量机及非线性支持向量机.当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机:当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机:当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非

BAT机器学习面试1000题系列

几点声明: 1.本文的内容全部来源于七月在线发布的BAT机器学习面试1000题系列: 2.文章中带斜体的文字代表是本人自己增加的内容,如有错误还请批评指正: 3.原文中有部分链接已经失效,故而本人重新加上了新的链接,如有不当,还请指正.(也已用斜体标出) 4.部分答案由于完全是摘抄自其它的博客,所以本人就只贴出答案链接,这样既可以节省版面,也可以使排版更加美观.点击对应的问题即可跳转. 最后,此博文的排版已经经过本人整理,公式已用latex语法表示,方便读者阅读.同时链接形式也做了优化,可直接跳

机器学习算法的python实现之svm支持向量机(1) 理论知识

1.背景 强烈推荐阅读(http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982639.html) 支持向量机SVM(support vector machines).SVM是一种二值分类器,是近些年比较流行的一种分类算法. 本文,首先要介绍一些基本的知识概念,在下一章将对SVM进行简单地代码实现. 2.基本概念 (1)线性可分 首先介绍一下什么叫线性可分,引用一张上一节的图.线性可分实际上就是可以用一条直线将两种不同的点区分开来.由此我们

机器学习——svm支持向量机的原理

前言     动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清楚,尽管网上已经有朋友写得不错了(见文末参考链接),但在描述数学公式的时候还是显得不够.得益于同学白石的数学证明,我还是想尝试写一下,希望本文在兼顾通俗易懂的基础上,真真正正能足以成为一篇完整概括和介绍支持向量机的导论性的文章.     本文在写的过程中,参考了不少资料,包括<支持向量机导论

机器学习——支持向量机SVM在R中的实现

支持向量机是一个相对较新和较先进的机器学习技术,最初提出是为了解决二类分类问题,现在被广泛用于解决多类非线性分类问题和回归问题.继续阅读本文,你将学习到支持向量机如何工作,以及如何利用R语言实现支持向量机. 支持向量机如何工作? 简单介绍下支持向量机是做什么的: 假设你的数据点分为两类,支持向量机试图寻找最优的一条线(超平面),使得离这条线最近的点与其他类中的点的距离最大.有些时候,一个类的边界上的点可能越过超平面落在了错误的一边,或者和超平面重合,这种情况下,需要将这些点的权重降低,以减小它们

考察数据科学家支持向量机(SVM)知识的25道题,快来测测吧

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud Introduction   机器学习强大如一座军械库,里面有各种威力惊人的武器,不过你首先得学会如何使用.举个栗子,回归(Regression)是一把能够有效分析数据的利剑,但它对高度复杂的数据却束手无策.支持向量机(Support Vector Machines,SVM)就好比一把锋利的小刀,特别是在小数据集上建模显得更为强大有力. 本套测试题专为SVM及其应用而设计,目前超过550人注册了这个测试(排行

支持向量机(SVM)笔记

SVM 1.概述 SVM全称Support_Vector_Machine,即支持向量机,是机器学习中的一种监督学习分类算法,一般用于二分类问题.对于线性可分的二分类问题,SVM可以直接求解,对于非线性可分问题,其也可以通过核函数将低维映射到高维空间从而转变为线性可分.对于多分类问题,SVM经过适当的转换,也能加以解决.相对于传统的分类算法如logistic回归,k近邻法,决策树,感知机,高斯判别分析法(GDA)等,SVM尤其独到的优势.相对于神经网络复杂的训练计算量,SVM在训练方面较少计算量的

支持向量机通俗导论(理解SVM的三层境界)

PS: 膜拜+跪拜 支持向量机通俗导论(理解SVM的三层境界) 作者:July :致谢:pluskid.白石.JerryLead.画儿.出处:结构之法算法之道blog. 前言     动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个东西也不好讲清楚,尽管网上已经有朋友写得不错了(见文末参考链接),但在描述数学公式的时候还是显得不够.得益于同学白石的数学证明,我还是想