第一步:得到优化目标。
x是向量,样本属性的个数就是他的维数。如下图,画好正负样本,分割超平面与两个支撑超平面。假设wx+b=0是分割超平面(w与x都是向量,这个式子表示空间中的一个超平面——当有两个属性时它是2维平面中的一条线,当有三个属性时是三维空间中的一个面,超过三个属性后他就表示一个超平面。wx+b=0是线性的分割面,所以svm是一个线性的分类器),wx+b1=0与wx+b2=0分别是两个支撑超平面,支撑超平面的几何距离为D。由于这三个平面的系数w,b1与b2可以随意缩放(就是在这三个平面的表达式左右随便乘以一个数,它还是一样),它们还是同样表示这三个平面。现在规定|b1-b2|=2,理由是按比例缩放w,总有一种情况满足|b1-b2|=2。为什么要让它等于2,这样做是非常有必要的,理由如图。重新分配好比例关系后得到支撑超平面为wx+b=1与wx+b=-1。
三 ,解法 这里没有考虑松弛项(有离群点)。
四 ,优化是加上了松弛项的,C就是由松弛项带来的。
新的优化目标同样使用拉格朗日函数对偶方法求解得到最后的优化函数如下。
核函数:使用核函数后<x1,x2>就变成了k<x1,x2>。核方法的作用就是把数据从低的维度映射到高纬度,当属性的维度比较小的时候,要想映射后线性可分,映射的维度大小还能接受,当属性维度比较大的时候,再要想映射到线性可分的维度,这个维度是非常大的,有时候甚至可能是无穷维度。这个时候和函数就派上用场了,他能在原始维度就完成映射后的高纬度(包括无穷维度,例如高斯函数就是映射到无穷维度)的计算。一般使用的就是高斯核。当参数斯塔很大时,高次特征上的权重衰减的非常快,相当于是映射到较低的维度,当斯塔很小时,就映射到了无穷维度,映射到无穷维度后数据一定是线性可分的,但是会带来非常严重的过拟合问题,所以斯塔太小也不好,就需要在应用中来优化。另一个需要优化的参数是上式中的C是离群点的权重,C越大越考虑离群点,寻练样本分类的支撑超平面的间隔越小,C越小相当于越不考滤离群点,会使支撑超平面的间隔尽量增大。实际中根据测试样本误差来选择C。综上要优化的两个参数分别是高斯核的参数斯塔和C。
高斯核函数如下:
四 优化(SMO的解法)