SVM(2)-算法

来源:互联网 发布:mac如何下载阿里旺旺 编辑:程序博客网 时间:2024/05/18 01:22

SVM原理

当训练数据线性可分时,通过硬间隔最大化,学习线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;
当训练数据近似线性可分时,通过软间隔最大化,学习线性分类器,即线性支持向量机,又称为软间隔支持向量机;
当训练数据线性不可分时,通过核技巧及软间隔最大化,学习非线性支持向量机。
函数间隔
定义训练数据集T,超平面(w,b),(wxi+b)可以表示样本点xi距离超平面的距离,对于二分类问题,yi{+1,1},此时yi(wxi+b)的正负可以表示分类是否正确,那么使用

r^i=yi(wxi+b)
便可表示分类的正确性以及确信程度,上式定义为函数间隔。
超平面(w,b)关于训练数据T的函数间隔为超平面(w,b)关于T中所有样本点的函数间隔的最小值定义为:
r^=min r^i
函数间隔中,当wb成比例增加时,超平面没有改变但是函数间隔却成比例增加了,为了避免这种情况,对超平面的法向量加以限制,引入几何间隔。
几何间隔
对于给定的训练数据集T和超平面(w,b),定义超平面(w,b)关于样本点(xi,yi)的几何间隔为
ri=yi(wxiw+bw)
定义超平面(w,b)关于训练数据T的函数间隔为超平面(w,b)关于T中所有样本点的函数间隔的最小值
r=min ri

线性可分支持向量机

线性可分支持向量机学习算法-最大间隔法
输入:线性可分训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)},其中,xiX=RN,yiY={1,+1},i=1,2,...,N;
输出:最大间隔分离超平面和分类决策函数

  1. 构建约束最优化问题
    minw,b 12w2s.t. yi(wxi+b)10,i=1,2,...,N(1)
  2. 求得最优解w,b.
  3. 由此得到分离超平面
    wx+b=0
  4. 分类决策函数为
    f(x)=sign(wx+b)

线性可分支持向量机的对偶算法
对于上式(1)中的不等式约束,引入拉格朗日乘子αi0,定义拉格朗日函数:

L(w,b,α)=12w2i=1Nαiyi(wxi+b)+i=1Nαi
这里,α=(α1,α2,...,αN)T为拉格朗日乘子向量。根据拉格朗日对偶性,原始问题的对偶问题为极大极小问题
maxα minw,b L(w,b,α)
minw,b L(w,b,α)L(w,b,α)分别对w,b求偏导数并令其等于0.
wL(w,b.α)=wi=1Nαiyixi=0
bL(w,b.α)=i=1Nαiyi=0
w=i=1Nαiyixi
Ni=1αiyi=0$将上式代入式中得到

minw,bL(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi

minw,bL(w,b,α)α的极大,可转化为如下的极小问题

minα  12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.  i=1Nαiyi=0αi=0,i=1,2,...,N(2)

解上述极小值问题可以得到α的解为α=(α1,α2,...,αN)T,从而求得
w=i=1Nαiyixib=yji=1Nαiyi(xixj)
即可以求得分离超平面和决策函数。

线性支持向量机

线性支持向量机学习算法-最大软间隔法
假设训练数据线性不可分,对于除去训练数据集中存在特异点后剩余的样本集合线性可分的情况,即某些样本点不能满足函数间隔大于等于1的约束条件,可以对每个样本点(xi,yi)引进一个松弛变量ξ0,使得函数间隔加上松弛变量大于等于1,同时,对每个松弛变量ξi支付一个代价ξi,此时的优化问题变为

minw,b,ξ 12w2+Ci=1Nξis.t  yi(wxi+b)1ξi , ξi0,i=1,2,...,N(3)
这里C>0为惩罚参数,其值表示对误分类的惩罚程度。

线性支持向量机的对偶算法
(3)中的最优化问题的拉格朗日函数是

L(w,b,ξ,α,μ)=12w2+Ci=1Nξii=1Nαi(yi(wxi+b)1+ξi)i=1Nμiξi
这里,αi0, μi0
对偶问题是拉格朗日函数的极大极小问题,先求L(w,b,ξ,α,μ)w,b,ξ的极小,由
wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξiL(w,b,ξ,α,μ)=Cαiμi=0
w=i=1Nαiyixii=1Nαiyi=0Cαiμi=0
将上述结果代入minw,b,ξ L(w,b,ξ,α,μ)=12Ni=1Nj=1αiαjyiyj(xixj)+Ni=1αi再对minw,b,ξ L(w,b,ξ,α,μ)α的极大,转换为对αminw,b,ξ L(w,b,ξ,α,μ)的极小值,整理可得对偶问题
minα 12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.  i=1Nαiyi=00αiC,i=1,2,...,N
至此可依次解得
α=(α1,α2,...,αN)Tw=i=1Nαiyixib=yji=1Nyiαi(xixj)

从而可以求得分类超平面和决策函数。

非线性支持向量机

非线性支持向量机学习算法
输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)},其中xiX=RN,yiY=1,+1,i=1,2,...,N;
输出:分类决策函数。

  1. 选择适当的核函数K(x,z)和适当的参数C,构造并求解最优化问题
    minα 12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαis.t. i=1Nαiyi=00αiC,i=1,2,...,N
    求得最优解α=(α1,α2,...,αN)T.
  2. 选择α的一个正分量0<αj<C,计算
    b=yji=1Nyiαi(xixj)
  3. 构造决策函数:
    f(x)=sign(i=1NαiyiK(xxi)+b)

    两层的SVM结构图

这里写图片描述

解决多分类的方法

求解方法(SMO)

回归预测

代码示例

0 0
原创粉丝点击