支持向量机

支持向量机

1.超平面公式

n 维空间中的超平面由下面的方程确定:

其中,和 都是 n 维列向量,x 为平面上的点,w 为平面上的法向量,决定了超平面的方向,b 是一个实数,代表超平面到原点的距离。且

       

2.距离公式

如果在二维空间中有直线Ax+By+C=0,(x0,y0)到该直线的距离为

如果在三维空间中有直线Ax+By+Cz+D=0,(x0,y0,z0)到该直线的距离为

距离公式在N维空间中的写法:

超平面f(x)=wx+b,则点xi到超平面的距离公式为

3.数据标签定义

对应数据集,X是样本,Y是标签值:(X1,Y1),(X2,Y2)...(Xn,Yn)

Y为样本的类别:当X为正例时Y=+1,当X为负例时Y=-1

则决策方程:

可以推导出预测值

4.支持向量机求解

通俗解释,找到一条线(w和b),使得离改线最近的点的距离能够最大,也即是求下式距离的最大值。

由于yi*y(xi)>0,将点到直线的距离化简得,既目标函数:

对于决策方程(w,b)可以通过放缩使得其结果值|Y|>=1,既yi(wx+b)>=1.

由于yi(wx+b)>=1,故只需考虑1/||w||的最大值即可。

得到当前的目标函数为1/||w||,约束条件yi(wx+b)>=1

将求解极大值问题转化为求解极小值问题w^2/2,利用拉格朗日乘子法求解得目标函数

,约束条件yi(wx+b)>=1

由对偶性质,现对w,b求最小值在对α求最大值等于先对α求最大值,在对w,b求最小值。

对上式w和b进行求偏导,

        

将w和b带人L(w,b,α)求解出式等于:

继续对α求极大值:

条件为

由极大值转化为求极小值得:

条件为

根据模型样本求得α,根据α求得的w和b的值带人f(x)=wx+b得到模型。

由超平面模型可知,真正发挥作用的数据点,是α的值为不为0的点,这些点则称为支持向量。

5.松弛因子

有时数据中存在噪音点,如果考虑噪音点会过于拟合模型,而泛化能力不强,为提高模型的泛化能力,引入松弛因子。

于是超平面模型为

新的目标函数,也即是最大间隔为:

当C很大时,意味着分类更近严格,不能有错误,而C趋近很小时,意味着可以容忍更大的错误,C是需要我们人工指定的参数。

软分类间隔问题求解

其实增加参数和松弛因子,和支持向量机通用求解方式相同,1.目标函数本身多出来的一个松弛因子。2.拉格朗日乘子法为新的约束条件引入的参数且这个参数需要人为指定。

拉格朗日求子法:

约束条件:同理支持向量机第4节求解得:

 

6.核变换

目标:找到一种变换方法,也即是φ(x),使低维不可分的问题,转化为高维可分的问题。

数据映射

令φ(x)为X映射后的特征向量,在特征空间中划分超平面的模型可以表示为:

类似于低维超平面寻找最优间隔,映射后的数据有:

 约束:

同理转化为对偶问题:

 约束:

核函数引入

上面的计算涉及到计算 φ(xi).T*φ(xj) ,这是xi,xj映射到高维空间后的内积,文章开头的数据是两维且数据量少,所以到三维就解决了问题,但现实生活中,我们遇到问题的可能包含多个属性,这时不是简单的升高一维就可以实现分类,甚至可能是无穷维,此时我们计算φ(xi).T*φ(xj)就很困难.

所以就想到有没有一个函数可以满足:

即在低维通过k(i,j)计算特征空间的内积,省去高维计算的复杂情况,这样就简化了问题.于是优化问题转化为:

 约束:

和之前的对偶问题解决方式一样,通过拉格朗日乘子引入与求导化简,这里我们可以得到:

          

         

这里的k(xi,x)就是核函数(Kernel Function),上式显示模型的最优间隔可以通过训练样本核函数展开,所以这个式子也称为支持向量展式.

核函数的数学要求 
核函数有严格的数学要求,所以设计一个核函数是很困难的。K(x,z)是正定核的充要条件是:K(x,z)对应的Gram矩阵实半正定矩阵。 
Gram矩阵:矩阵对应点的内积。KTK, KKT 
半正定矩阵:设A是实对称矩阵。如果对任意的实非零列矩阵X有XTAX≥0,就称A为半正定矩阵。 
当检验一个K是否为正定核函数,要对任意有限输入集{xi…}验证K对应的Gram矩阵实是否为半正定矩阵。

常用核函数

线性核(linear): 

多项式核(poly):

                                                                    

高斯核(rbf):最常用

                              

拉普拉斯核(laplace): 

                                             

Sigmoid核(sigmoid):

from:https://blog.csdn.net/BIT_666/article/details/79979580

核函数的选择:

1. 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
2. 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
3. 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况

针对每个核函数进行验证测试,那个效果好使用哪一个。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值