机器学习笔记5 -- 支持向量机 SVM

SVM是最好的现成的分类器,不加修改即可直接使用。但调用 SVM 算法的测试准确度并不一定都很高。影响因素有数据预处理的效果、训练集的大小、特征值的选择、参数设置以及核函数的选择等因素。

整体概览
软间隔最大化
--点到超平面的距离并引入松弛变量(for outliers)

其中w,b分别为超平面的法向量和截距;ε为松弛变量 C 为惩罚参数,它的目的是使得目标变量最小即几何间隔最大,且使得松弛变量最小化。加入松弛变量的目标函数就是软间隔最大化。

拉格朗日对偶
--将目标函数和约束条件整合到拉格朗日函数中,方便求解最值问题
--原最优化问题直接求解很困难,利用拉格朗日对偶性,可通过求解原最优化问题的对偶问题得到原问题的最优解。

最优化问题求解
--对三个变量分别求偏导,带入拉格朗日函数:

核函数
--对于线性不可分问题,无法用超平面划分正负样本数据。如果换成超曲面则可以将正负样本正确分类。
通过坐标映射,可以将超曲面在新的坐标下表示为超平面。即二维空间下线性不可分转为多维空间下的线性可分问题。
核函数在低维空间中完成了映射到高维空间后的内积运算。运用核函数后,最优化问题的目标函数和约束条件变为:

序列最小优化SMO
--SMO 是在约束条件下对目标函数的优化求解算法。基本思想:
由于目标变量中自变量 alpha 有 N 个,为了便与求解,每次选出一对自变量 alpha,然后求目标函数关于其中一个 alpha 的偏导,这样就可以得到这一对 alpha 的新值。给这一对 alpha 赋上新值,然后不断重复选出下一对 alpha 并执行上述操作,直到达到最大迭代数或没有任何自变量 alpha 再发生变化为止。

什么样的函数可以使用对偶?
对偶函数:主问题的最优解的下确界
使用条件: 弱对偶定理 永远是成立的(即v*<=z*),所谓的能否 转化 成对偶问题主要是指 强对偶定理 是否成立(即是否有v*=z*),其中,v*为对偶问题最优解,z*为主问题最优解。强对偶成立条件如下:

  1. 拉格朗日函数中的 f(x)和gj(x) 都是凸函数;
  2. hi(x)(等式约束条件) 是仿射函数(即最高次数为1的多项式函数。常数项为零的仿射函数称为线性函数);
  3. 主问题可行域中至少有一点使得不等式约束严格成立。即存在 x,对所有 j,均有 gj(x)<0。
使用方法: 当强对偶性成立时,为了解决主问题,我们可以这样做:
  1. 构造拉格朗日函数,引入非负参数的拉格朗日算子去给目标函数加上限制;
  2. 求拉格朗日函数对主变量的极小——将拉格朗日函数对主变量求偏导,令其为零后得出主变量与对偶变量的数值关系,由此把对主变量进行极小化的拉格朗日函数转化为一个对偶变量的函数;
  3. 求上面第2步得出的函数对对偶变量的极大
对偶目的: 将求解主问题转化成了极大极小问题
深入理解详参: 深入理解SVM之对偶问题


核函数如何选取?
常用核函数有线性内核和径向基内核(RBF),线性核用于线性可分的情形,参数少,速度快,可以看作RBF的特殊情况;RBF
核主要用于线性不可分的情形。参数多而且依赖性强。默认参数下RBF核比线性核核效果差,但通过训练数据的交叉验证,进行大量的参数尝试能达到比线性核更好的结果。

优点
泛化错误率低,计算开销不大,结果易解释。
可以解决线性不可分的情况
计算复杂度仅取决于少量支持向量,对于数据量大的数据集计算复杂度低

缺点及优化方案
对参数调节和核函数的选择敏感。
原始分类器不加修改仅适用于处理二类问题,当用其解决多类问题时,需要额外的方法对其进行扩展。如 one-versus-rest 法
不支持类别型数据,需在预处理阶段将类别型数据转换成离散型数据。

猜你喜欢

转载自blog.csdn.net/zjl0105/article/details/81024788