Duncan's Blog

支持向量机(Support Vector Machine)学习(补充)

SMO算法(Sequential Minimal Optimization)

1.定义

SMO算法用于训练SVM,将大优化问题分解为多个小优化问题。这些小优化问题往往很容易求解,并且对它们进行顺序求解的结构与将它们作为整体来求解的结果是完全一致。

2.目标及原理

SMO算法的工作目标是求出一系列alpha和b,一旦求出了这些alpha,就能求出权重向量w。

每次循环中选择两个alpha进行优化处理。一旦找到一对合适的alpha,那么就增大其中一个同时减少另一个。这里所谓的“合适”就是指两个alpha必须要符合一定的条件,条件之一就是这两个alpha必须在间隔边界之外,而其第二个条件则是这两个alpha还没有进行过区间化处理或者不在边界上。

3.调参

SVM中有两个参数CK1,其中C是惩罚系数,即对误差的宽容度。C越高,说明越不能容忍出误差,容易过拟合。C越小,容易欠拟合。

k1是参数是RBF函数作为核函数后,该函数自带的一个参数,隐含的决定了数据映射到新的特征空间后的分布,k1越大,支持向量越少,k1越小,支持向量越多。支持向量的个数影响训练与预测的速度。

分享