您的位置:首页 > 其它

机器学习笔记之支持向量机1——支持向量机基础知识梳理即大概流程

2016-08-25 18:50 246 查看
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。
     支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力。

     支持向量机便于处理分辨黑白之类的问题,即判断数据集中两类不同数据点的问题。支持向量机构造一个超平面,利用超平面作为分类器,分开数据点。

以下为支持向量机理论基础知识:

       VC维:已知一个数据集,包含N个点,N个点分别用+\-标记,则有种可能的排布方式,如果对于每一种方式,分类器都可以将+-类分开,则分类器所能分开的最大数据集点数为分类器VC维。

       结构化风险:结构化风险=置信风险+经验风险

           风险:为预计解与真实解之间的差异
           一是经验风险,代表了分类器在给定样本上的误差;二是置信风险,代表了我们在多大程度上可以信任分类器在未知文本上分类的结果。
           置信风险与两个量有关,一是样本数量,显然给定的样本数量越大,我们的学习结果越有可能正确,此时置信风险越小;二是分类函数的VC维,显然VC维越大,推广能力越差,置信风险会变大。
     支持向量机(SVM)即为一种努力最小化结构化风险的算法。以下为SVM特点:
     小样本,并不是说样本的绝对数量少,而是说与问题的复杂度比起来,SVM算法要求的样本数是相对比较少的。
     非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也有人叫惩罚变量)和核函数技术来实现。关于文本分类这个问题究竟是不是线性可分的,尚没有定论,因此不能简单的认为它是线性可分的而作简化处理
SVM具体实现方法:
     设一个超平面为g(x)=wx+b,此超平面可以将数据集分类,其中:x为样本点的向量表示,w的是n维向量,随维度变化。高维度表达式为:g(x)= w1*x1+w2*x2+...+wn*xn+b
     将样本点代入超平面,wx+b大于0和小于0时,样本点处于不同的两类。而这样的超平面不是唯一的,支持向量机旨在寻找最好的分类器,即样本点到超平面的最小的几何间隔能取最大的超平面为最好的分类器。
     定义点到超平面间隔为:δi=yi(wxi+b)
     y为样本点标签,即为1类取值1,为2类取值-1.
     由前已知,wx+b为正时,为1类,y为1,则δ为正
     wx+b为负时,为2类,y为-1,也为正。
     对w、b做归一化:
    
即为几何间隔
||w||叫做向量w的范数,||w||=

几何间隔与样本的误分次数间存在关系:

其中的δ是样本集合到分类面的几何间隔,R=max ||xi|| i=1,...,n,R是所有样本中(xi是以向量表示的第i个样本)向量长度最长的值
所以要使得误分次数小,就要使δ大。

所以要求
为方便计算等价于
限制条件为yi[(w·xi)+b]≥1(i=1,2,…,l) (l是总的样本数)
即一个凸二次规划问题:

 
可用拉格朗日算法将限制条件代入,做dual变换。在满足KKT条件前提下,不断优化参数直到达到要求
以上是支持向量机的基础知识和大概过程。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息