1支持向量机分析与实例应用动态分析与测试期末汇报2汇报提纲1.支持向量机概述2.线性支持向量机3.非线性支持向量机4.支持向量机核函数支持向量机分析与应用1.支持向量机概述支持向量机(SVM,SupportVectorMachines)是由Vapnik等人提出的一种基于统计学习理论的机器学习算法。其基本思想为:通过寻找两个最优的分类线,使其能够正确的划分两类数据,并保证分类间隔最大。现有的支持向量机可分为两种:一种是支持向量分类机(SVC,SupportVectorClassification),主要用来解决分类问题;另一种是支持向量回归机(SVR,SupportVectorRegression)。1.支持向量机概述支持向量机是基于统计学习理论一种具有严格数学理论基础和直观集合解释的新型机器学习方法,在处理不均匀性、离散性、稀少性等特点突出的测录井小样本数据学习问题上具有独到的优越性。相比其他算法在以下几个方面具有更大优势:1.支持向量机结构简单,功能强大,运算之前不需要确定隐含层节点个数,可以根据实际问题的需要而自动调节规模。1.支持向量机概述2.支持向量机模型适用于样本数量有限的情况,它所求得的结果是在现有信息下的最优解,而不是样本数据无穷大时的最优解,故支持向量机更适合于数据有限的情况下进行聚类分析;3.支持向量机模型最终所需解决问题转化成为二次型寻优的问题,故其避免了在神经网络中的局部极值问题,求得的将是全局最优点,同时解决了由于工程或地质因素造成的非正常数据对最终聚类结果的影响;1.支持向量机概述4.支持向量机模型通过非线性变换将样本数据转换到高维的特征空间,通过在高维空间中构造线性判别函数来非线性判别函数,它的这一特殊性使得支持向量机模型具有较好的推广能力,并且其算法复杂度与样本数据维数无关,从而同时巧妙地解决了维数问题。2.线性支持向量机线性可分的情况:假如说,我们令黑色的点=-1,白色的点=+1,直线f(x)=w.x+b,这儿的x、w是向量,其实写成这种形式也是等价的f(x)=w1x1+w2x2…+wnxn+b,当向量x的维度=2的时候,f(x)表示二维空间中的一条直线,当x的维度=3的时候,f(x)表示3维空间中的一个平面,当x的维度=n3的时候,表示n维空间中的n-1维超平面。2.线性支持向量机我们令黑色白色两类的点分别为+1,-1,所以当有一个新的点x需要预测属于哪个分类的时候,我们用sgn(f(x)),就可以预测了,sgn表示符号函数,当f(x)0的时候,sgn(f(x))=+1,当f(x)0的时候sgn(f(x))=–1。但是在众多划分直线中应该如何取得最优的划分直线f(x)?2.线性支持向量机划分原则:让这条直线到给定样本中最近的点最远第一种分法:第二种分法:2.线性支持向量机这两种分法哪种更好呢?从直观上来说,就是分割的间隙越大越好,把两个类别的点分得越开越好。就像我们平时判断一个人是男还是女,就是很难出现分错的情况,这就是男、女两个类别之间的间隙非常的大导致的,让我们可以更准确的进行分类。在SVM中,称为MaximumMarginal,是SVM的一个理论基础之一。选择使得间隙最大的函数作为分割平面是由很多道理的,比如说从概率的角度上来说,就是使得置信度最小的点置信度最大(听起来很拗口),从实践的角度来说,这样的效果非常好,等等。2.线性支持向量机上图就是一个对之前说的类别中的间隙的一个描述。ClassifierBoundary就是f(x),红色和蓝色的线(plusplane与minusplane)就是supportvector所在的面,红色、蓝色线之间的间隙就是我们要最大化的分类间的间隙。2.线性支持向量机由两条平行线之间的距离公式可得:另外支持向量位于wx+b=1与wx+b=-1的直线上,我们在前面乘上一个该点所属的类别y,就可以得到支持向量的表达式为:y(wx+b)=1,这样就可以更简单的将支持向量表示出来了。故转化为在一定的约束条件下求极值的问题,即:3.非线性支持向量机针对上述的极值问题,我们可以采用拉格朗日乘子法求极值,这里直接作出这个式子的拉格朗日目标函数:求解这个式子的过程需要拉格朗日对偶性的相关知识,并且有一定的公式推导。经过一系列的数学推导之后便可得到最终的优化式子如下:线性不可分的情况:一种是用曲线去将其完全分开,曲线就是一种非线性的情况,跟之后将谈到的核函数有一定的关系,划分图形如下:3.非线性支持向量机另外一种还是用直线,不过不用去保证可分性,就是包容那些分错的情况,不过我们得加入惩罚函数,使得点分错的情况越合理越好。我们可以为分错的点加上一点惩罚,对一个分错的点的惩罚函数就是这个点到其正确位置的距离:3.非线性支持向量机在上图中,蓝色、红色的直线分别为支持向量所在的边界,绿色的线为决策函数,那些紫色的线表示分错的点到其相应的决策面的距离,这样我们可以在原函数上面加上一个惩罚函数,并且带上其限制条件为:公式中蓝色的部分为在线性可分问题的基础上加上的惩罚函数部分,当xi在正确一边的时候,ε=0,R为全部的点的数目,C是一个由用户去指定的系数,表示对分错的点加入多少的惩罚,当C很大的时候,分错的点就会更少,但是过拟合的情况可能会比较严重,当C很小的时候,分错的点可能会很多,不过可能由此得到的模型也会不太正确,所以如何选择C是有很多学问的,不过在大部分情况下就是通过经验尝试得到的。3.非线性支持向量机接下来就是同样的,求解一个拉格朗日对偶问题,得到一个原问题的对偶问题的表达式:蓝色的部分是与线性可分的对偶问题表达式的不同之处。在线性不可分情况下得到的对偶问题,不同的地方就是α的范围从[0,+∞),变为了[0,C],增加的惩罚ε没有为对偶问题增加什么复杂度。3.非线性支持向量机如果使用某些非线性的方法,可以得到将两个分类完美划分的曲线,比如核函数。我们可以让空间从原本的线性空间变成一个更高维的空间,在这个高维的线性空间下,再用一个超平面进行划分,这儿举个例子,来理解一下如何利用空间的维度变得更高来帮助我们分类的。下图是一个典型的线性不可分的情况:4.支持向量机核函数但是当我们把这两个类似于椭圆形的点映射到一个高维空间后,映射函数为:用这个函数可以将上图的平面中的点映射到一个三维空间(z1,z2,z3),并且对映射后的坐标加以旋转之后就可以得到一个线性可分的点集了。将上面的图形映射到高维空间后的图形如下图:4.支持向量机核函数4.支持向量机核函数4.支持向量机核函数回忆上面得到的对偶问题表达式:将红色这个部分进行改造,令:这个式子所做的事情就是将线性的空间映射到高维的空间,k(x,xj)有很多种,下面是比较典型的两种:4.支持向量机核函数上面这个核称为多项式核,下面这个核称为高斯核,高斯核甚至是将原始空间映射为无穷维空间,另外核函数有一些比较好的性质,比如说不会比线性条件下增加多少额外的计算量,等等。一般对于一个问题,不同的核函数可能会带来不同的结果,一般是需要尝试来得到的。除了上面所述的两种核函数之外,我们还常常使用如下函数作为支持向量机的核函数:线性核函数:Sigmoid核函数:4.支持向量机核函数在精度要求不高的情况下,我们可以采用上述核函数来作为支持向量机的核函数,但是,在某些特殊的情况下,我们为了提高支持向量机的分类精度,我们可以采用将更加高端的核函数与向量机结合来进行数学分类,比如小波核函数。经实验验证得知:使用小波核函数来作为向量机的核函数比使用其他核函数具有更好的分类效果。