SVM-线性可分支持向量机

简介:

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

函数间隔和几何间隔

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

wx+b=0w∗⋅x+b∗=0

以及相应的分类决策函数

f(x)=sign(wx+b)f(x)=sign(w∗⋅x+b∗)

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

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

γ^i=yi(wxi+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(wxi+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||2 s.t.yi(wxi+b)10,i=1,2,...,Nminw,b12||w||2 s.t.yi(w⋅xi+b)−1≥0,i=1,2,...,N

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

支持向量

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

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

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

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

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

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

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

对偶算法

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

定义拉格朗日函数:

L(w,b,α)=12||w||2i=0nαiyi(wxi+b)+i=1NαiL(w,b,α)=12||w||2−∑i=0nαiyi(w⋅xi+b)+∑i=1Nαi

其中,α=(α1,α2,...,αN)Tα=(α1,α2,...,αN)T为拉格朗日乘子向量。

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

maxαminw,bL(w,b,α)maxαminw,bL(w,b,α)

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

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

minw,bL(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαiminw,bL(w,b,α)=−12∑i−=1N∑j−=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi

  • minw,bL(w,b,α)minw,bL(w,b,α)αα的极大

maxα12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi s.t.i=1Nαiyi=0,αi>0,i=1,2,...,Nmaxα−12∑i−=1N∑j−=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi s.t.∑i=1Nαiyi=0,αi>0,i=1,2,...,N

等价于:

minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi s.t.i=1Nαiyi=0,αi>0,i=1,2,...,Nminα12∑i−=1N∑j−=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi s.t.∑i=1Nαiyi=0,αi>0,i=1,2,...,N

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

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

minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi s.t.i=1Nαiyi=0,αi>0,i=1,2,...,Nminα12∑i−=1N∑j−=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαi s.t.∑i=1Nαiyi=0,αi>0,i=1,2,...,N

(2)计算

w=i=1Nαiyixiw∗=∑i=1Nαi∗yixi

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

b=yii=1Nαiyi(xixj)b∗=yi−∑i=1Nαi∗yi(xi⋅xj)

(3)求得分离超平面

wx+b=0w∗⋅x+b∗=0

分类决策函数

f(x)=sign(wx+b)

本文转自cococo点点博客园博客,原文链接:http://www.cnblogs.com/coder2012/p/4584673.html,如需转载请自行联系原作者

相关文章
|
2天前
|
算法
MATLAB最小二乘法:线性最小二乘、加权线性最小二乘、稳健最小二乘、非线性最小二乘与剔除异常值效果比较
MATLAB最小二乘法:线性最小二乘、加权线性最小二乘、稳健最小二乘、非线性最小二乘与剔除异常值效果比较
14 0
|
11月前
|
机器学习/深度学习
连载|详细推算SVM
连载|详细推算SVM
|
机器学习/深度学习 数据可视化 算法
分别用线性SVM和高斯核SVM预测对数据进行分类
分别用线性SVM和高斯核SVM预测对数据进行分类
105 0
|
机器学习/深度学习 Python
【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类
【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类
224 0
【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类
|
机器学习/深度学习 传感器 算法
【SVM分类】基于最小二乘支持向量机实现数据分类附matlab代码
【SVM分类】基于最小二乘支持向量机实现数据分类附matlab代码
|
机器学习/深度学习 资源调度 Serverless
核函数:RBF 是如何让线性 SVM 可以分类非线性数据的?
如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使得样本可分。
181 1
核函数:RBF 是如何让线性 SVM 可以分类非线性数据的?
|
机器学习/深度学习 算法
SVM(一):线性支持向量机
SVM(一):线性支持向量机
SVM(一):线性支持向量机
|
机器学习/深度学习 数据采集 传感器
基于最小二乘支持向量机(LS-SVM)进行分类、函数估计、时间序列预测和无监督学习附Matlab代码
基于最小二乘支持向量机(LS-SVM)进行分类、函数估计、时间序列预测和无监督学习附Matlab代码
|
机器学习/深度学习 算法 开发者
求解 SVM 分类超平面| 学习笔记
快速学习求解 SVM 分类超平面。
279 0
求解 SVM 分类超平面| 学习笔记
|
机器学习/深度学习
支持向量机(SVM)公式推导
支持向量机(SVM)公式推导
128 0