支持向量机是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使他有别于感知机;支持向量机还包括核技巧,这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化。可形式化为一个求解凸二次规划的问题。算法
当训练数据线性可分时,经过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机ide
当训练数据近似线性可分的时候,经过软间隔最大化,也学习一个线性的分类器,即线性支持向量机函数
当训练数据线性不可分时,经过使用核技巧及软间隔最大化,学习非线性支持向量机。学习
核方法,核技巧就是使用核函数等于隐式地在高维的特征空间中学习线性支持向量机。优化
第一个问题:如何求出最大硬间隔字符串
即从支持点到超平面的距离最大,转换成一个有约束的优化问题,it
该约束问题又是一个凸二次规划问题。转换成朗格朗日问题,而后对偶函数,在能够利用KKT条件,求出w,bclass
第二个问题:如何求出最大软间隔变量
线性不可分意味着某些样本点 (x,y)不能知足函数间隔大于等于1的约束条件,为了解决这个问题技巧
须要在约束条件上加上松弛变量,由于有的支持向量机点是分错的。因此约束条件该成>=1-松弛变量(松弛变量》0)
而后继续经过罚函数法,目标函数加个系数,只要对误分类的惩罚增大,C值小时对误分类的惩罚减少
第三个问题核函数
对解线性分类问题,线性分类支持向量机是一种很是有效的的方法。可是有时分类问题是非线性的,这时能够使用非线性支持向量机。核函数就是将输入空间映射到特征空间,经过特征向量之间的内积,经过使用核函数能够学习非支持向量机
经常使用的核函数有:多项式核函数,高斯核函数,字符串核函数。
前面提到那个凸二次规划问题具备全局最优解,可是当训练样本容量很大时,这些算法每每很是低效。因此后人提出序列最小最优化(SMO)算法。